diff --git a/MCStructs-snbt/src/main/java/net/lenni0451/mcstructs/snbt/impl/v1_12/SNbtDeserializer_v1_12.java b/MCStructs-snbt/src/main/java/net/lenni0451/mcstructs/snbt/impl/v1_12/SNbtDeserializer_v1_12.java index 851d33c..2a55603 100644 --- a/MCStructs-snbt/src/main/java/net/lenni0451/mcstructs/snbt/impl/v1_12/SNbtDeserializer_v1_12.java +++ b/MCStructs-snbt/src/main/java/net/lenni0451/mcstructs/snbt/impl/v1_12/SNbtDeserializer_v1_12.java @@ -95,10 +95,28 @@ public class SNbtDeserializer_v1_12 implements ISNbtDeserializer { reader.read(); reader.skipWhitespaces(); if (!reader.canRead()) throw this.makeException(reader, "Expected value"); - else if (c == 'B') return new ByteArrayTag(this.readPrimitiveList(reader, ByteTag.class, ByteArrayTag.class)); - else if (c == 'L') return new LongArrayTag(this.readPrimitiveList(reader, LongTag.class, LongArrayTag.class)); - else if (c == 'I') return new IntArrayTag(this.readPrimitiveList(reader, IntTag.class, IntArrayTag.class)); - else throw new SNbtDeserializeException("Invalid array type '" + c + "' found"); + else if (c == 'B') { + final ListTag tags = this.readPrimitiveList(reader, ByteTag.class, ByteArrayTag.class); + final byte[] array = new byte[tags.size()]; + for (int i = 0; i < tags.size(); i++) { + array[i] = tags.get(i).value(); + } + return new ByteArrayTag(array); + } else if (c == 'L') { + final ListTag tags = this.readPrimitiveList(reader, LongTag.class, LongArrayTag.class); + final long[] array = new long[tags.size()]; + for (int i = 0; i < tags.size(); i++) { + array[i] = tags.get(i).value(); + } + return new LongArrayTag(array); + } else if (c == 'I') { + final ListTag tags = this.readPrimitiveList(reader, IntTag.class, IntArrayTag.class); + final int[] array = new int[tags.size()]; + for (int i = 0; i < tags.size(); i++) { + array[i] = tags.get(i).value(); + } + return new IntArrayTag(array); + } else throw new SNbtDeserializeException("Invalid array type '" + c + "' found"); } protected Tag readValue(final StringReader_v1_12 reader) throws SNbtDeserializeException { diff --git a/MCStructs-text/src/test/java/net/lenni0451/mcstructs/text/serializer/TextComponentCodecTest.java b/MCStructs-text/src/test/java/net/lenni0451/mcstructs/text/serializer/TextComponentCodecTest.java index b252411..80d3a81 100644 --- a/MCStructs-text/src/test/java/net/lenni0451/mcstructs/text/serializer/TextComponentCodecTest.java +++ b/MCStructs-text/src/test/java/net/lenni0451/mcstructs/text/serializer/TextComponentCodecTest.java @@ -61,9 +61,9 @@ class TextComponentCodecTest { @Test void legacyItemDeserialization() throws SNbtSerializeException { - CompoundTag legacyNbt = new CompoundTag() - .put("id", "stone") - .putByte("Count", (byte) 5); + CompoundTag legacyNbt = new CompoundTag(); + legacyNbt.put("id", new StringTag("stone")); + legacyNbt.putByte("Count", (byte) 5); ATextComponent legacyComponent = new StringComponent("test") .setStyle(new Style() .setHoverEvent(new TextHoverEvent(HoverEventAction.SHOW_ITEM, new StringComponent(SNbtSerializer.LATEST.serialize(legacyNbt)))) @@ -80,10 +80,10 @@ class TextComponentCodecTest { @Test void legacyEntityDeserialization() throws SNbtSerializeException { UUID randomUUID = UUID.randomUUID(); - CompoundTag legacyNbt = new CompoundTag() - .put("name", "{\"text\":\"test\"}") - .put("type", "cow") - .put("id", randomUUID.toString()); + CompoundTag legacyNbt = new CompoundTag(); + legacyNbt.put("name", new StringTag("{\"text\":\"test\"}")); + legacyNbt.put("type", new StringTag("cow")); + legacyNbt.put("id", new StringTag(randomUUID.toString())); ATextComponent legacyComponent = new StringComponent("test") .setStyle(new Style() .setHoverEvent(new TextHoverEvent(HoverEventAction.SHOW_ENTITY, new StringComponent(SNbtSerializer.LATEST.serialize(legacyNbt)))) @@ -100,19 +100,31 @@ class TextComponentCodecTest { @Test void arrayWithTag() { - ListTag tags = new ListTag<>() - .add(new CompoundTag() - .putString("translate", "test") - .addByteArray("with", (byte) 1, (byte) 2, (byte) 3)) - .add(new CompoundTag() - .putString("translate", "test") - .addIntArray("with", 1, 2, 3)) - .add(new CompoundTag() - .putString("translate", "test") - .addLongArray("with", 1, 2, 3)) - .add(new CompoundTag() - .putString("translate", "test") - .addList("with", 1, 2, 3)); + CompoundTag translateWithByteArray = new CompoundTag(); + translateWithByteArray.putString("translate", "test"); + translateWithByteArray.put("with", new ByteArrayTag(new byte[]{1, 2, 3})); + + CompoundTag translateWithIntArray = new CompoundTag(); + translateWithIntArray.putString("translate", "test"); + translateWithIntArray.put("with", new IntArrayTag(new int[]{1, 2, 3})); + + CompoundTag translateWithLongArray = new CompoundTag(); + translateWithLongArray.putString("translate", "test"); + translateWithLongArray.put("with", new LongArrayTag(new long[]{1, 2, 3})); + + CompoundTag translateWithList = new CompoundTag(); + ListTag numberList = new ListTag<>(IntTag.class); + numberList.add(new IntTag(1)); + numberList.add(new IntTag(2)); + numberList.add(new IntTag(3)); + translateWithList.putString("translate", "test"); + translateWithList.put("with", numberList); + + ListTag tags = new ListTag<>(CompoundTag.class); + tags.add(translateWithByteArray); + tags.add(translateWithIntArray); + tags.add(translateWithLongArray); + tags.add(translateWithList); ATextComponent component = new TranslationComponent("test", (byte) 1, (byte) 2, (byte) 3) .append(new TranslationComponent("test", 1, 2, 3)) .append(new TranslationComponent("test", 1L, 2L, 3L)) diff --git a/build.gradle b/build.gradle index 62daf4c..382f00b 100644 --- a/build.gradle +++ b/build.gradle @@ -49,17 +49,17 @@ subprojects { publishing { repositories { maven { - name = "reposilite" - def releasesUrl = "https://maven.lenni0451.net/releases" - def snapshotsUrl = "https://maven.lenni0451.net/snapshots" - url = project.maven_version.endsWith("SNAPSHOT") ? snapshotsUrl : releasesUrl - - credentials(PasswordCredentials) + name = "Via" + url = uri("https://repo.viaversion.com/") + credentials { + username = System.getenv("via_username") + password = System.getenv("via_password") + } authentication { - basic(BasicAuthentication) + create(BasicAuthentication) } } - maven { + /*maven { name = "ossrh" def releasesUrl = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/" def snapshotsUrl = "https://s01.oss.sonatype.org/content/repositories/snapshots/" @@ -69,7 +69,7 @@ subprojects { authentication { basic(BasicAuthentication) } - } + }*/ } publications { maven(MavenPublication) { diff --git a/settings.gradle b/settings.gradle index 678ff0b..dd6c9cc 100644 --- a/settings.gradle +++ b/settings.gradle @@ -7,13 +7,6 @@ pluginManagement { rootProject.name = "MCStructs" -include(":MCStructs-all") -include(":MCStructs-data") -include(":MCStructs-enchantments") include(":MCStructs-core") -include(":MCStructs-inventory") -include(":MCStructs-items") -include(":MCStructs-nbt") -include(":MCStructs-recipes") include(":MCStructs-snbt") include(":MCStructs-text")