From 46bd5814e38aed6e37c32e7797cff490749aca6a Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sat, 19 Feb 2022 10:14:15 +0100 Subject: [PATCH] Fix mutated dimension registry on old servers --- .../protocols/protocol1_16_2to1_16_1/data/MappingData.java | 2 +- .../protocol1_16to1_15_2/packets/EntityPackets.java | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_16_2to1_16_1/data/MappingData.java b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_16_2to1_16_1/data/MappingData.java index 40ec02632..b20e51d0c 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_16_2to1_16_1/data/MappingData.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_16_2to1_16_1/data/MappingData.java @@ -63,6 +63,6 @@ public class MappingData extends MappingDataBase { } public CompoundTag getDimensionRegistry() { - return dimensionRegistry; + return dimensionRegistry.clone(); } } diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_16to1_15_2/packets/EntityPackets.java b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_16to1_15_2/packets/EntityPackets.java index d05d547ba..9ea71341c 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_16to1_15_2/packets/EntityPackets.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_16to1_15_2/packets/EntityPackets.java @@ -39,6 +39,7 @@ import com.viaversion.viaversion.protocols.protocol1_16to1_15_2.ServerboundPacke import com.viaversion.viaversion.protocols.protocol1_16to1_15_2.metadata.MetadataRewriter1_16To1_15_2; import com.viaversion.viaversion.protocols.protocol1_16to1_15_2.storage.InventoryTracker1_16; +import java.util.Arrays; import java.util.UUID; public class EntityPackets { @@ -218,8 +219,8 @@ public class EntityPackets { map(Type.UNSIGNED_BYTE); // Gamemode handler(wrapper -> { wrapper.write(Type.BYTE, (byte) -1); // Previous gamemode, set to none - wrapper.write(Type.STRING_ARRAY, WORLD_NAMES); // World list - only used for command completion - wrapper.write(Type.NBT, DIMENSIONS_TAG); // Dimension registry + wrapper.write(Type.STRING_ARRAY, Arrays.copyOf(WORLD_NAMES, WORLD_NAMES.length)); // World list - only used for command completion + wrapper.write(Type.NBT, DIMENSIONS_TAG.clone()); // Dimension registry }); handler(DIMENSION_HANDLER); // Dimension map(Type.LONG); // Seed