diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurniture.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurniture.java index 1d13954b2..3d32f683c 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurniture.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurniture.java @@ -144,7 +144,7 @@ public class BukkitFurniture extends Furniture { @SuppressWarnings("deprecation") @Override - protected void refresh() { + public void refresh() { ItemDisplay itemDisplay = this.metaEntity.get(); if (itemDisplay == null) return; Object removePacket = FastNMS.INSTANCE.constructor$ClientboundRemoveEntitiesPacket(MiscUtils.init(new IntArrayList(), l -> l.add(itemDisplay.getEntityId()))); @@ -156,6 +156,17 @@ public class BukkitFurniture extends Furniture { } } + @Override + public void refresh(net.momirealms.craftengine.core.entity.player.Player player) { + ItemDisplay itemDisplay = this.metaEntity.get(); + if (itemDisplay == null) return; + Object removePacket = FastNMS.INSTANCE.constructor$ClientboundRemoveEntitiesPacket(MiscUtils.init(new IntArrayList(), l -> l.add(itemDisplay.getEntityId()))); + Object addPacket = FastNMS.INSTANCE.constructor$ClientboundAddEntityPacket(itemDisplay.getEntityId(), itemDisplay.getUniqueId(), + itemDisplay.getX(), itemDisplay.getY(), itemDisplay.getZ(), itemDisplay.getPitch(), itemDisplay.getYaw(), MEntityTypes.ITEM_DISPLAY, 0, CoreReflections.instance$Vec3$Zero, 0); + player.sendPacket(removePacket, false); + player.sendPacket(addPacket, false); + } + @Override public void destroy() { Optional.ofNullable(this.metaEntity.get()).ifPresent(Entity::remove); diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/Furniture.java b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/Furniture.java index 06df59f84..d810996bf 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/Furniture.java +++ b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/Furniture.java @@ -79,7 +79,9 @@ public abstract class Furniture implements Cullable { public abstract CompletableFuture moveTo(WorldPosition position, boolean force); - protected abstract void refresh(); + public abstract void refresh(); + + public abstract void refresh(Player player); protected void clearColliders() { if (this.colliders != null) {