From 4ac743fda68c527e6f11e9ac6f5a1659e3b8f82b Mon Sep 17 00:00:00 2001 From: RaphiMC <50594595+RaphiMC@users.noreply.github.com> Date: Sat, 9 Dec 2023 15:04:57 +0100 Subject: [PATCH] Improved NbtConverter --- .../raphimc/vialegacy/util/NbtConverter.java | 75 ++++++++++--------- 1 file changed, 39 insertions(+), 36 deletions(-) diff --git a/src/main/java/net/raphimc/vialegacy/util/NbtConverter.java b/src/main/java/net/raphimc/vialegacy/util/NbtConverter.java index a0e416c..6dfcdd8 100644 --- a/src/main/java/net/raphimc/vialegacy/util/NbtConverter.java +++ b/src/main/java/net/raphimc/vialegacy/util/NbtConverter.java @@ -24,44 +24,45 @@ public class NbtConverter { - public static Tag mcStructsToVia(final INbtTag tag) { - if (tag == null) return null; + public static Tag mcStructsToVia(final INbtTag nbtTag) { + if (nbtTag == null) return null; - if (tag instanceof net.lenni0451.mcstructs.nbt.tags.ByteTag) { - return new ByteTag(tag.asByteTag().getValue()); - } else if (tag instanceof net.lenni0451.mcstructs.nbt.tags.ShortTag) { - return new ShortTag(tag.asShortTag().getValue()); - } else if (tag instanceof net.lenni0451.mcstructs.nbt.tags.IntTag) { - return new IntTag(tag.asIntTag().getValue()); - } else if (tag instanceof net.lenni0451.mcstructs.nbt.tags.LongTag) { - return new LongTag(tag.asLongTag().getValue()); - } else if (tag instanceof net.lenni0451.mcstructs.nbt.tags.FloatTag) { - return new FloatTag(tag.asFloatTag().getValue()); - } else if (tag instanceof net.lenni0451.mcstructs.nbt.tags.DoubleTag) { - return new DoubleTag(tag.asDoubleTag().getValue()); - } else if (tag instanceof net.lenni0451.mcstructs.nbt.tags.ByteArrayTag) { - return new ByteArrayTag(tag.asByteArrayTag().getValue()); - } else if (tag instanceof net.lenni0451.mcstructs.nbt.tags.StringTag) { - return new StringTag(tag.asStringTag().getValue()); - } else if (tag instanceof net.lenni0451.mcstructs.nbt.tags.ListTag) { + if (nbtTag instanceof net.lenni0451.mcstructs.nbt.tags.ByteTag) { + return new ByteTag(((net.lenni0451.mcstructs.nbt.tags.ByteTag) nbtTag).getValue()); + } else if (nbtTag instanceof net.lenni0451.mcstructs.nbt.tags.ShortTag) { + return new ShortTag(((net.lenni0451.mcstructs.nbt.tags.ShortTag) nbtTag).getValue()); + } else if (nbtTag instanceof net.lenni0451.mcstructs.nbt.tags.IntTag) { + return new IntTag(((net.lenni0451.mcstructs.nbt.tags.IntTag) nbtTag).getValue()); + } else if (nbtTag instanceof net.lenni0451.mcstructs.nbt.tags.LongTag) { + return new LongTag(((net.lenni0451.mcstructs.nbt.tags.LongTag) nbtTag).getValue()); + } else if (nbtTag instanceof net.lenni0451.mcstructs.nbt.tags.FloatTag) { + return new FloatTag(((net.lenni0451.mcstructs.nbt.tags.FloatTag) nbtTag).getValue()); + } else if (nbtTag instanceof net.lenni0451.mcstructs.nbt.tags.DoubleTag) { + return new DoubleTag(((net.lenni0451.mcstructs.nbt.tags.DoubleTag) nbtTag).getValue()); + } else if (nbtTag instanceof net.lenni0451.mcstructs.nbt.tags.ByteArrayTag) { + return new ByteArrayTag(((net.lenni0451.mcstructs.nbt.tags.ByteArrayTag) nbtTag).getValue()); + } else if (nbtTag instanceof net.lenni0451.mcstructs.nbt.tags.StringTag) { + return new StringTag(((net.lenni0451.mcstructs.nbt.tags.StringTag) nbtTag).getValue()); + } else if (nbtTag instanceof net.lenni0451.mcstructs.nbt.tags.ListTag) { final ListTag list = new ListTag(); - for (INbtTag e : tag.asListTag()) { - list.add(mcStructsToVia(e)); + for (INbtTag t : ((net.lenni0451.mcstructs.nbt.tags.ListTag) nbtTag).getValue()) { + list.add(mcStructsToVia(t)); } return list; - } else if (tag instanceof net.lenni0451.mcstructs.nbt.tags.CompoundTag) { + } else if (nbtTag instanceof net.lenni0451.mcstructs.nbt.tags.CompoundTag) { + final Map values = ((net.lenni0451.mcstructs.nbt.tags.CompoundTag) nbtTag).getValue(); final CompoundTag compound = new CompoundTag(); - for (Map.Entry e : tag.asCompoundTag().getValue().entrySet()) { - compound.put(e.getKey(), mcStructsToVia(e.getValue())); + for (Map.Entry entry : values.entrySet()) { + compound.put(entry.getKey(), mcStructsToVia(entry.getValue())); } return compound; - } else if (tag instanceof net.lenni0451.mcstructs.nbt.tags.IntArrayTag) { - return new IntArrayTag(tag.asIntArrayTag().getValue()); - } else if (tag instanceof net.lenni0451.mcstructs.nbt.tags.LongArrayTag) { - return new LongArrayTag(tag.asLongArrayTag().getValue()); + } else if (nbtTag instanceof net.lenni0451.mcstructs.nbt.tags.IntArrayTag) { + return new IntArrayTag(((net.lenni0451.mcstructs.nbt.tags.IntArrayTag) nbtTag).getValue()); + } else if (nbtTag instanceof net.lenni0451.mcstructs.nbt.tags.LongArrayTag) { + return new LongArrayTag(((net.lenni0451.mcstructs.nbt.tags.LongArrayTag) nbtTag).getValue()); + } else { + throw new IllegalArgumentException("Unsupported tag type: " + nbtTag.getClass().getName()); } - - throw new IllegalArgumentException("Unsupported tag type: " + tag.getClass().getName()); } public static INbtTag viaToMcStructs(final Tag tag) { @@ -85,22 +86,24 @@ public static INbtTag viaToMcStructs(final Tag tag) { return new net.lenni0451.mcstructs.nbt.tags.StringTag(((StringTag) tag).getValue()); } else if (tag instanceof ListTag) { final net.lenni0451.mcstructs.nbt.tags.ListTag list = new net.lenni0451.mcstructs.nbt.tags.ListTag<>(); - for (Tag e : ((ListTag) tag)) { - list.add(viaToMcStructs(e)); + for (Tag t : ((ListTag) tag).getValue()) { + list.add(viaToMcStructs(t)); } return list; } else if (tag instanceof CompoundTag) { + final Map values = ((CompoundTag) tag).getValue(); final net.lenni0451.mcstructs.nbt.tags.CompoundTag compound = new net.lenni0451.mcstructs.nbt.tags.CompoundTag(); - for (Map.Entry e : ((CompoundTag) tag).entrySet()) { - compound.add(e.getKey(), viaToMcStructs(e.getValue())); + for (Map.Entry entry : values.entrySet()) { + compound.add(entry.getKey(), viaToMcStructs(entry.getValue())); } return compound; } else if (tag instanceof IntArrayTag) { return new net.lenni0451.mcstructs.nbt.tags.IntArrayTag(((IntArrayTag) tag).getValue()); } else if (tag instanceof LongArrayTag) { return new net.lenni0451.mcstructs.nbt.tags.LongArrayTag(((LongArrayTag) tag).getValue()); + } else { + throw new IllegalArgumentException("Unsupported tag type: " + tag.getClass().getName()); } - - throw new IllegalArgumentException("Unsupported tag type: " + tag.getClass().getName()); } + }