diff --git a/plugin/src/main/java/net/elytrium/limboapi/protocol/packets/s2c/ChunkDataPacket.java b/plugin/src/main/java/net/elytrium/limboapi/protocol/packets/s2c/ChunkDataPacket.java index c75cee60..f7ea6b02 100644 --- a/plugin/src/main/java/net/elytrium/limboapi/protocol/packets/s2c/ChunkDataPacket.java +++ b/plugin/src/main/java/net/elytrium/limboapi/protocol/packets/s2c/ChunkDataPacket.java @@ -184,8 +184,12 @@ public void encode(ByteBuf buf, Direction direction, ProtocolVersion version) { buf.writeBytes(data); if (version.compareTo(ProtocolVersion.MINECRAFT_1_9_4) >= 0) { List blockEntityEntries = this.chunk.getBlockEntityEntries(); - ProtocolUtils.writeVarInt(buf, blockEntityEntries.size()); - for (VirtualBlockEntity.Entry blockEntityEntry : blockEntityEntries) { + // Filter block entities to only include those supported on this version + List supportedEntries = blockEntityEntries.stream() + .filter(entry -> entry.getBlockEntity().isSupportedOn(version)) + .toList(); + ProtocolUtils.writeVarInt(buf, supportedEntries.size()); + for (VirtualBlockEntity.Entry blockEntityEntry : supportedEntries) { CompoundBinaryTag blockEntityNbt = blockEntityEntry.getNbt(); if (version.compareTo(ProtocolVersion.MINECRAFT_1_18) >= 0) { buf.writeByte(((blockEntityEntry.getPosX() & 15) << 4) | (blockEntityEntry.getPosZ() & 15));