From a8f1a98d2a633f3ed28e7db2b58b32baaa926f1b Mon Sep 17 00:00:00 2001 From: Reider745 Date: Thu, 1 May 2025 12:24:50 +0300 Subject: [PATCH] Fixed: nbt list fixed --- .../innercore/api/nbt/NativeListTag.java | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/zhekasmirnov/innercore/api/nbt/NativeListTag.java b/src/main/java/com/zhekasmirnov/innercore/api/nbt/NativeListTag.java index d7f3a167..72712098 100644 --- a/src/main/java/com/zhekasmirnov/innercore/api/nbt/NativeListTag.java +++ b/src/main/java/com/zhekasmirnov/innercore/api/nbt/NativeListTag.java @@ -131,43 +131,53 @@ public class NativeListTag { return tag != null ? new NativeListTag(tag) : null; } + private void add(int key, T value) { + if(tag == null) + return; + + if(key >= tag.size() + 1) + tag.add(value); + else + tag.add(key, value); + } + public void putByte(int key, int value) { - tag.add(key, new ByteTag(String.valueOf(key), value)); + add(key, new ByteTag(String.valueOf(key), value)); } public void putShort(int key, int value) { - tag.add(key, new ShortTag(String.valueOf(key), value)); + add(key, new ShortTag(String.valueOf(key), value)); } public void putInt(int key, int value) { - tag.add(key, new IntTag(String.valueOf(key), value)); + add(key, new IntTag(String.valueOf(key), value)); } public void putInt64(int key, long value) { - tag.add(key, new LongTag(String.valueOf(key), value)); + add(key, new LongTag(String.valueOf(key), value)); } public void putFloat(int key, float value) { - tag.add(key, new FloatTag(String.valueOf(key), value)); + add(key, new FloatTag(String.valueOf(key), value)); } public void putDouble(int key, double value) { - tag.add(key, new DoubleTag(String.valueOf(key), value)); + add(key, new DoubleTag(String.valueOf(key), value)); } public void putString(int key, String value) { - tag.add(key, new StringTag(String.valueOf(key), value)); + add(key, new StringTag(String.valueOf(key), value)); } public void putCompoundTag(int key, NativeCompoundTag childrenTag) { if (childrenTag != null) { - tag.add(key, childrenTag.tag.copy()); + add(key, childrenTag.tag.copy()); } } public void putListTag(int key, NativeListTag childrenTag) { if (childrenTag != null) { - tag.add(key, childrenTag.tag.copy()); + add(key, childrenTag.tag.copy()); } }