diff --git a/src/main/java/carpet/script/bundled/FileModule.java b/src/main/java/carpet/script/bundled/FileModule.java index 8c32034e..4684b0fa 100644 --- a/src/main/java/carpet/script/bundled/FileModule.java +++ b/src/main/java/carpet/script/bundled/FileModule.java @@ -76,9 +76,14 @@ public class FileModule extends Module } catch (IOException e) { - try + // Copy of NbtIo.read(File) because that's now client-side only + if (!file.exists()) { - return NbtIo.read(file); + return null; + } + try (DataInputStream in = new DataInputStream(new FileInputStream(file))) + { + return NbtIo.read(in); } catch (IOException ioException) { diff --git a/src/main/java/carpet/script/language/DataStructures.java b/src/main/java/carpet/script/language/DataStructures.java index 90d02d99..59418de5 100644 --- a/src/main/java/carpet/script/language/DataStructures.java +++ b/src/main/java/carpet/script/language/DataStructures.java @@ -57,7 +57,7 @@ public class DataStructures { if (lv.size() == 1) { hwat = lv.get(0); - delimiter = StringValue.EMPTY; + delimiter = null; } else if (lv.size() == 2) { diff --git a/src/main/java/carpet/script/value/ListValue.java b/src/main/java/carpet/script/value/ListValue.java index c3b23438..7fd693eb 100644 --- a/src/main/java/carpet/script/value/ListValue.java +++ b/src/main/java/carpet/script/value/ListValue.java @@ -350,6 +350,11 @@ public class ListValue extends AbstractListValue implements ContainerValueInterf @Override public Value split(Value delimiter) { ListValue result = new ListValue(); + if (delimiter == null) + { + this.forEach(item -> result.items.add(of(item))); + return result; + } int startIndex = 0; int index = 0; for (Value val : this.items) diff --git a/src/main/java/carpet/script/value/Value.java b/src/main/java/carpet/script/value/Value.java index b9ac965c..5f228c7d 100644 --- a/src/main/java/carpet/script/value/Value.java +++ b/src/main/java/carpet/script/value/Value.java @@ -193,7 +193,11 @@ public abstract class Value implements Comparable, Cloneable public Value split(Value delimiter) { - try + if (delimiter == null) + { + delimiter = StringValue.EMPTY; + } + try { return ListValue.wrap(Arrays.stream(getString().split(delimiter.getString())).map(StringValue::new).collect(Collectors.toList())); }