mcstructs-viafier/patch.patch

318 lines
16 KiB
Diff

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<CompoundTag> {
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<ByteTag> 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<LongTag> 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<IntTag> 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/main/java/net/lenni0451/mcstructs/text/events/hover/impl/EntityHoverEvent.java b/MCStructs-text/src/main/java/net/lenni0451/mcstructs/text/events/hover/impl/EntityHoverEvent.java
index fd93efd..8125838 100644
--- a/MCStructs-text/src/main/java/net/lenni0451/mcstructs/text/events/hover/impl/EntityHoverEvent.java
+++ b/MCStructs-text/src/main/java/net/lenni0451/mcstructs/text/events/hover/impl/EntityHoverEvent.java
@@ -117,10 +117,10 @@ public class EntityHoverEvent extends AHoverEvent {
@Override
public String toString() {
return ToString.of(this)
- .put("action", this.action)
- .put("entityType", this.entityType)
- .put("uuid", this.uuid)
- .put("name", this.name, Objects::nonNull)
+ .add("action", this.action)
+ .add("entityType", this.entityType)
+ .add("uuid", this.uuid)
+ .add("name", this.name, Objects::nonNull)
.toString();
}
diff --git a/MCStructs-text/src/main/java/net/lenni0451/mcstructs/text/events/hover/impl/ItemHoverEvent.java b/MCStructs-text/src/main/java/net/lenni0451/mcstructs/text/events/hover/impl/ItemHoverEvent.java
index 3fed9a3..7d9f356 100644
--- a/MCStructs-text/src/main/java/net/lenni0451/mcstructs/text/events/hover/impl/ItemHoverEvent.java
+++ b/MCStructs-text/src/main/java/net/lenni0451/mcstructs/text/events/hover/impl/ItemHoverEvent.java
@@ -119,10 +119,10 @@ public class ItemHoverEvent extends AHoverEvent {
@Override
public String toString() {
return ToString.of(this)
- .put("action", this.action)
- .put("item", this.item)
- .put("count", this.count, count -> count != 1)
- .put("nbt", this.nbt, Objects::nonNull)
+ .add("action", this.action)
+ .add("item", this.item)
+ .add("count", this.count, count -> count != 1)
+ .add("nbt", this.nbt, Objects::nonNull)
.toString();
}
diff --git a/MCStructs-text/src/main/java/net/lenni0451/mcstructs/text/utils/JsonNbtConverter.java b/MCStructs-text/src/main/java/net/lenni0451/mcstructs/text/utils/JsonNbtConverter.java
index 8ef3051..9af7730 100644
--- a/MCStructs-text/src/main/java/net/lenni0451/mcstructs/text/utils/JsonNbtConverter.java
+++ b/MCStructs-text/src/main/java/net/lenni0451/mcstructs/text/utils/JsonNbtConverter.java
@@ -25,23 +25,15 @@ public class JsonNbtConverter {
@Nullable
public static JsonElement toJson(@Nullable final Tag tag) {
if (tag == null) return null;
- switch (tag) {
- case END:
- return null;
- case BYTE:
- case SHORT:
- case INT:
- case LONG:
- case FLOAT:
- case DOUBLE:
+ if (tag instanceof NumberTag) {
return new JsonPrimitive(((NumberTag) tag).getValue());
- case BYTE_ARRAY:
+ } else if (tag instanceof ByteArrayTag) {
JsonArray byteArray = new JsonArray();
for (byte b : ((ByteArrayTag) tag).getValue()) byteArray.add(b);
return byteArray;
- case STRING:
+ } else if (tag instanceof StringTag) {
return new JsonPrimitive(((StringTag) tag).getValue());
- case LIST:
+ } else if (tag instanceof ListTag<?>) {
JsonArray list = new JsonArray();
ListTag<Tag> listTag = ((ListTag) tag);
for (Tag tagInList : listTag.getValue()) {
@@ -55,19 +47,19 @@ public class JsonNbtConverter {
list.add(toJson(tagInList));
}
return list;
- case COMPOUND:
+ } else if (tag instanceof CompoundTag) {
JsonObject compound = new JsonObject();
- for (Map.Entry<String, Tag> entry : ((CompoundTag) tag).getValue().entrySet()) compound.put(entry.getKey(), toJson(entry.getValue()));
+ for (Map.Entry<String, Tag> entry : ((CompoundTag) tag).getValue().entrySet()) compound.add(entry.getKey(), toJson(entry.getValue()));
return compound;
- case INT_ARRAY:
+ } else if (tag instanceof IntArrayTag) {
JsonArray intArray = new JsonArray();
for (int i : ((IntArrayTag) tag).getValue()) intArray.add(i);
return intArray;
- case LONG_ARRAY:
+ } else if (tag instanceof LongArrayTag) {
JsonArray longArray = new JsonArray();
for (long l : ((LongArrayTag) tag).getValue()) longArray.add(l);
return longArray;
- default:
+ } else {
throw new IllegalArgumentException("Unknown Nbt type: " + tag);
}
}
@@ -90,31 +82,37 @@ public class JsonNbtConverter {
JsonArray array = element.getAsJsonArray();
List<Tag> nbtTags = new ArrayList<>();
Tag listType = null;
+ boolean mixedList = false;
for (JsonElement arrayElement : array) {
Tag tag = toNbt(arrayElement);
nbtTags.add(tag);
listType = getListType(listType, tag);
+ if (listType == null) mixedList = true;
}
if (listType == null) {
return new ListTag<>();
- } else if (listType == Tag.END) { //Mixed list
+ } else if (mixedList) { //Mixed list
ListTag<CompoundTag> list = new ListTag<>();
for (Tag tag : nbtTags) {
if (tag instanceof CompoundTag) list.add(((CompoundTag) tag));
- else list.add(new CompoundTag().put("", tag));
+ else {
+ final CompoundTag entries = new CompoundTag();
+ entries.put("", tag);
+ list.add(entries);
+ }
}
return list;
- } else if (listType == Tag.BYTE) {
+ } else if (listType instanceof ByteTag) {
byte[] bytes = new byte[nbtTags.size()];
- for (int i = 0; i < nbtTags.size(); i++) bytes[i] = nbtTags.get(i).asByteTag().byteValue();
+ for (int i = 0; i < nbtTags.size(); i++) bytes[i] = ((NumberTag) nbtTags.get(i)).asByte();
return new ByteArrayTag(bytes);
- } else if (listType == Tag.INT) {
+ } else if (listType instanceof IntTag) {
int[] ints = new int[nbtTags.size()];
- for (int i = 0; i < nbtTags.size(); i++) ints[i] = nbtTags.get(i).asIntTag().intValue();
+ for (int i = 0; i < nbtTags.size(); i++) ints[i] = ((NumberTag) nbtTags.get(i)).asInt();
return new IntArrayTag(ints);
- } else if (listType == Tag.LONG) {
+ } else if (listType instanceof LongTag) {
long[] longs = new long[nbtTags.size()];
- for (int i = 0; i < nbtTags.size(); i++) longs[i] = nbtTags.get(i).asIntTag().intValue();
+ for (int i = 0; i < nbtTags.size(); i++) longs[i] = ((NumberTag) nbtTags.get(i)).asLong();
return new LongArrayTag(longs);
} else {
return new ListTag<>(nbtTags);
@@ -148,7 +146,7 @@ public class JsonNbtConverter {
private static Tag getListType(final Tag current, final Tag tag) {
if (current == null) return tag;
- if (current != tag) return Tag.END; //Placeholder for mixed lists
+ if (current != tag) return null; //Placeholder for mixed lists
return current;
}
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 503878a..00572d9 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<Tag> 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<IntTag> 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<CompoundTag> 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 8782dd6..dd6c9cc 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -7,9 +7,6 @@ pluginManagement {
rootProject.name = "MCStructs"
-include(":MCStructs-all")
-include(":MCStructs-data")
include(":MCStructs-core")
-include(":MCStructs-nbt")
include(":MCStructs-snbt")
include(":MCStructs-text")