diff --git a/src/main/java/net/minestom/server/entity/Entity.java b/src/main/java/net/minestom/server/entity/Entity.java index 20bb09947..07dddeaf0 100644 --- a/src/main/java/net/minestom/server/entity/Entity.java +++ b/src/main/java/net/minestom/server/entity/Entity.java @@ -27,6 +27,7 @@ import net.minestom.server.instance.InstanceManager; import net.minestom.server.instance.block.Block; import net.minestom.server.instance.block.BlockGetter; import net.minestom.server.instance.block.BlockHandler; +import net.minestom.server.network.packet.CachedPacket; import net.minestom.server.network.packet.server.ServerPacket; import net.minestom.server.network.packet.server.play.*; import net.minestom.server.permission.Permission; @@ -72,6 +73,8 @@ public class Entity implements Viewable, Tickable, TagHandler, PermissionHandler private static final Map ENTITY_BY_UUID = new ConcurrentHashMap<>(); private static final AtomicInteger LAST_ENTITY_ID = new AtomicInteger(); + private final CachedPacket destroyPacketCache = new CachedPacket(() -> new DestroyEntitiesPacket(getEntityId())); + protected Instance instance; protected Chunk currentChunk; protected Pos position; @@ -452,7 +455,7 @@ public class Entity implements Viewable, Tickable, TagHandler, PermissionHandler if (passenger != player) passenger.viewEngine.viewableOption.removal.accept(player); } } - player.sendPacket(new DestroyEntitiesPacket(getEntityId())); + player.sendPacket(destroyPacketCache.retrieve()); } @Override