diff --git a/src/main/java/com/comphenix/protocol/reflect/cloning/BukkitCloner.java b/src/main/java/com/comphenix/protocol/reflect/cloning/BukkitCloner.java index 2ddf8123..14af6d42 100644 --- a/src/main/java/com/comphenix/protocol/reflect/cloning/BukkitCloner.java +++ b/src/main/java/com/comphenix/protocol/reflect/cloning/BukkitCloner.java @@ -82,6 +82,7 @@ public class BukkitCloner implements Cloner { fromWrapper(MinecraftReflection::getNBTBaseClass, NbtFactory::fromNMS); fromWrapper(MinecraftReflection::getIChatBaseComponentClass, WrappedChatComponent::fromHandle); fromWrapper(WrappedVillagerData::getNmsClass, WrappedVillagerData::fromHandle); + fromConverter(MinecraftReflection::getSectionPositionClass, BukkitConverters.getSectionPositionConverter()); try { fromManual(ComponentConverter::getBaseComponentArrayClass, source -> diff --git a/src/main/java/com/comphenix/protocol/utility/MinecraftReflection.java b/src/main/java/com/comphenix/protocol/utility/MinecraftReflection.java index 867eee84..b4407fbe 100644 --- a/src/main/java/com/comphenix/protocol/utility/MinecraftReflection.java +++ b/src/main/java/com/comphenix/protocol/utility/MinecraftReflection.java @@ -1872,6 +1872,10 @@ public class MinecraftReflection { return getCraftBukkitClass("CraftSound"); } + public static Class getSectionPositionClass() { + return getMinecraftClass("SectionPosition"); + } + // ---- ItemStack conversions private static Object itemStackAir = null; private static Method asNMSCopy = null; diff --git a/src/test/java/com/comphenix/protocol/events/PacketContainerTest.java b/src/test/java/com/comphenix/protocol/events/PacketContainerTest.java index 3251c92d..9e99f7c0 100644 --- a/src/test/java/com/comphenix/protocol/events/PacketContainerTest.java +++ b/src/test/java/com/comphenix/protocol/events/PacketContainerTest.java @@ -560,6 +560,9 @@ public class PacketContainerTest { packet.getSectionPositions().writeSafely(0, new BlockPosition(42, 43, 44)); assertEquals(new BlockPosition(42, 43, 44), packet.getSectionPositions().readSafely(0)); + + PacketContainer clone = packet.deepClone(); + assertNotSame(clone, packet); } /**