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 20150b906..de45c5ed7 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 @@ -361,9 +361,6 @@ public class BukkitFurnitureManager implements FurnitureManager { int collisionEntityId = (int) Reflections.method$Entity$getId.invoke(collisionEntity); this.furnitureByCollisionEntitiesId.put(collisionEntityId, loadedFurniture); this.furnitureByEntityId.put(collisionEntityId, loadedFurniture); - for (HitBox hitBox : loadedFurniture.placement().hitBoxes()) { - loadedFurniture.hitBoxes().put(collisionEntityId, hitBox); - } } catch (IllegalAccessException | InvocationTargetException e) { throw new RuntimeException(e); } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/LoadedFurniture.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/LoadedFurniture.java index 7f2f9c3e0..36b7e93c6 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/LoadedFurniture.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/LoadedFurniture.java @@ -99,6 +99,7 @@ public class LoadedFurniture { } for (HitBox hitBox : placement.hitBoxes()) { int[] ids = hitBox.acquireEntityIds(Reflections.instance$Entity$ENTITY_COUNTER::incrementAndGet); + int lastEntityId = -1; for (int entityId : ids) { fakeEntityIds.add(entityId); mainEntityIds.add(entityId); @@ -109,6 +110,11 @@ public class LoadedFurniture { } }); this.hitBoxes.put(entityId, hitBox); + lastEntityId = entityId; + } + // 预测添加一个CollisionEntity + if (lastEntityId != -1) { + this.hitBoxes.put(lastEntityId + 1, hitBox); } } try { 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 1669ce1c3..c3782a22c 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 @@ -690,7 +690,6 @@ public class PacketConsumers { Object actionType = Reflections.method$ServerboundInteractPacket$Action$getType.invoke(action); if (actionType == null) return; LoadedFurniture furniture = BukkitFurnitureManager.instance().getLoadedFurnitureByEntityId(entityId); - player.sendMessage("Interact with " + entityId + " " + actionType + " " + furniture); if (furniture == null) return; Location location = furniture.baseEntity().getLocation(); BukkitServerPlayer serverPlayer = (BukkitServerPlayer) user;