From ff7da2d9428e37d14b4e04a7e2210547f62c4ffc Mon Sep 17 00:00:00 2001 From: jhqwqmc <2110242767@qq.com> Date: Wed, 2 Apr 2025 15:51:50 +0800 Subject: [PATCH] =?UTF-8?q?fix(bukkit):=20=E9=98=BB=E6=AD=A2=E5=8F=91?= =?UTF-8?q?=E9=80=81=E4=BB=85=E5=AE=9E=E4=BD=93=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bukkit/entity/furniture/BukkitFurnitureManager.java | 4 ++++ .../bukkit/plugin/network/BukkitNetworkManager.java | 1 + .../craftengine/bukkit/plugin/network/PacketConsumers.java | 3 +++ 3 files changed, 8 insertions(+) diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurnitureManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurnitureManager.java index 3066082fb..d2d48310d 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurnitureManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurnitureManager.java @@ -277,6 +277,10 @@ public class BukkitFurnitureManager implements FurnitureManager { return this.furnitureByCollisionEntitiesId.get(entityId); } + public boolean isFurnitureCollisionEntity(int entityId) { + return this.furnitureByCollisionEntitiesId.containsKey(entityId); + } + protected void handleBaseFurnitureUnload(Entity entity) { int id = entity.getEntityId(); LoadedFurniture furniture = this.furnitureByBaseEntityId.remove(id); diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java index c87622e84..b5f4b4db2 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java @@ -450,6 +450,7 @@ public class BukkitNetworkManager implements NetworkManager, Listener, PluginMes NMSPacketEvent event = new NMSPacketEvent(packet); onNMSPacketSend(player, event, packet); if (event.isCancelled()) return; + System.out.println("Packet sent: " + packet); super.write(context, packet, channelPromise); channelPromise.addListener((p) -> { for (Runnable task : event.getDelayedTasks()) { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java index c8ec39fe2..388c8553f 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java @@ -644,6 +644,9 @@ public class PacketConsumers { if (BukkitFurnitureManager.instance().isFurnitureBaseEntity(entityId)) { event.setCancelled(true); } + if (BukkitFurnitureManager.instance().isFurnitureCollisionEntity(entityId)) { + event.setCancelled(true); + } } catch (Exception e) { CraftEngine.instance().logger().warn("Failed to handle ClientboundEntityPositionSyncPacket", e); }