From c9172496f2bcf918dbb14b4335a5fec61e2ca55e Mon Sep 17 00:00:00 2001 From: Boy Date: Tue, 30 Jan 2024 16:20:26 +0100 Subject: [PATCH] fix: unsend all hitboxes when player changes world --- .../blocky/listeners/BlockyFurnitureListener.kt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/kotlin/com/mineinabyss/blocky/listeners/BlockyFurnitureListener.kt b/src/main/kotlin/com/mineinabyss/blocky/listeners/BlockyFurnitureListener.kt index ee7a1ecb..c435974a 100644 --- a/src/main/kotlin/com/mineinabyss/blocky/listeners/BlockyFurnitureListener.kt +++ b/src/main/kotlin/com/mineinabyss/blocky/listeners/BlockyFurnitureListener.kt @@ -35,6 +35,7 @@ import org.bukkit.event.EventHandler import org.bukkit.event.EventPriority import org.bukkit.event.Listener import org.bukkit.event.block.Action +import org.bukkit.event.player.PlayerChangedWorldEvent import org.bukkit.event.player.PlayerInteractEvent import org.bukkit.event.player.PlayerQuitEvent import org.bukkit.util.Vector @@ -86,6 +87,16 @@ class BlockyFurnitureListener : Listener { FurniturePacketHelpers.removeLightPacket(entity) } + @EventHandler + fun PlayerChangedWorldEvent.onChangeWorld() { + from.entities.filterIsInstance().forEach { + FurniturePacketHelpers.removeInteractionHitboxPacket(it, player) + FurniturePacketHelpers.removeHitboxOutlinePacket(it, player) + FurniturePacketHelpers.removeCollisionHitboxPacket(it, player) + FurniturePacketHelpers.removeLightPacket(it, player) + } + } + @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) fun PlayerInteractEvent.prePlacingFurniture() { val (block, item, hand) = (clickedBlock ?: return) to (item ?: return) to (hand ?: return)