diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_19_1to1_19_3/packets/EntityPackets1_19_3.java b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_19_1to1_19_3/packets/EntityPackets1_19_3.java index 994a6ab4b..de50ffb32 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_19_1to1_19_3/packets/EntityPackets1_19_3.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/protocol1_19_1to1_19_3/packets/EntityPackets1_19_3.java @@ -96,7 +96,17 @@ public void registerMap() { public void registerMap() { map(Type.STRING); // Dimension map(Type.STRING); // World + map(Type.LONG); // Seed + map(Type.UNSIGNED_BYTE); // Gamemode + map(Type.BYTE); // Previous gamemode + map(Type.BOOLEAN); // Debug + map(Type.BOOLEAN); // Flat handler(worldDataTrackerHandlerByKey()); + handler(wrapper -> { + // Old clients will always keep entity data (packed here as 0x02), nothing we can do there + final byte keepDataMask = wrapper.read(Type.BYTE); + wrapper.write(Type.BOOLEAN, (keepDataMask & 1) != 0); // Keep attributes + }); } });