From 6083b702f91c1fdbe651364a5819b70c05c4eb4c Mon Sep 17 00:00:00 2001 From: altrisi Date: Sun, 18 Apr 2021 12:47:43 +0200 Subject: [PATCH] Make NBT's get() always return a list if requested item ends with [] --- src/main/java/carpet/script/value/NBTSerializableValue.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/carpet/script/value/NBTSerializableValue.java b/src/main/java/carpet/script/value/NBTSerializableValue.java index 9c26f252..346cdbb7 100644 --- a/src/main/java/carpet/script/value/NBTSerializableValue.java +++ b/src/main/java/carpet/script/value/NBTSerializableValue.java @@ -569,13 +569,14 @@ public class NBTSerializableValue extends Value implements ContainerValueInterfa @Override public Value get(Value value) { - NbtPathArgumentType.NbtPath path = cachePath(value.getString()); + String valString = value.getString(); + NbtPathArgumentType.NbtPath path = cachePath(valString); try { List tags = path.get(getTag()); if (tags.size()==0) return Value.NULL; - if (tags.size()==1) + if (tags.size()==1 && !valString.endsWith("[]")) return NBTSerializableValue.decodeTag(tags.get(0)); return ListValue.wrap(tags.stream().map(NBTSerializableValue::decodeTag).collect(Collectors.toList())); }