diff --git a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_11_1to1_12/packets/ChangedPacketIds1_12.java b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_11_1to1_12/packets/ChangedPacketIds1_12.java index a93bc975..55ebd0ca 100644 --- a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_11_1to1_12/packets/ChangedPacketIds1_12.java +++ b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_11_1to1_12/packets/ChangedPacketIds1_12.java @@ -61,7 +61,6 @@ public class ChangedPacketIds1_12 extends Rewriter { protocol.cancelOutgoing(State.PLAY, 0x4C); // Advancements - protocol.registerOutgoing(State.PLAY, 0x4D, 0x4A); // Entity Properties protocol.registerOutgoing(State.PLAY, 0x4E, 0x4B); // Entity Effect // New incoming packet 0x01 - Prepare Crafting Grid diff --git a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_11_1to1_12/packets/EntityPackets1_12.java b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_11_1to1_12/packets/EntityPackets1_12.java index 7915a212..12c9f2d7 100644 --- a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_11_1to1_12/packets/EntityPackets1_12.java +++ b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_11_1to1_12/packets/EntityPackets1_12.java @@ -202,6 +202,46 @@ public class EntityPackets1_12 extends EntityRewriter { // Metadata packet registerMetadataRewriter(0x3B, 0x39, Types1_12.METADATA_LIST); + + // Entity Properties + protocol.registerOutgoing(State.PLAY, 0x4D, 0x4A, new PacketRemapper() { + @Override + public void registerMap() { + map(Type.VAR_INT); + map(Type.INT); + handler(wrapper -> { + int size = wrapper.get(Type.INT, 0); + int newSize = size; + for (int i = 0; i < size; i++) { + String key = wrapper.read(Type.STRING); + // Remove new attribute + if (key.equals("generic.flyingSpeed")) { + newSize--; + wrapper.read(Type.DOUBLE); + int modSize = wrapper.read(Type.VAR_INT); + for (int j = 0; j < modSize; j++) { + wrapper.read(Type.UUID); + wrapper.read(Type.DOUBLE); + wrapper.read(Type.BYTE); + } + } else { + wrapper.write(Type.STRING, key); + wrapper.passthrough(Type.DOUBLE); + int modSize = wrapper.passthrough(Type.VAR_INT); + for (int j = 0; j < modSize; j++) { + wrapper.passthrough(Type.UUID); + wrapper.passthrough(Type.DOUBLE); + wrapper.passthrough(Type.BYTE); + } + } + } + + if (newSize != size) { + wrapper.set(Type.INT, 0, newSize); + } + }); + } + }); } @Override diff --git a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_14_4to1_15/packets/EntityPackets1_15.java b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_14_4to1_15/packets/EntityPackets1_15.java index be6589a1..9076648b 100644 --- a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_14_4to1_15/packets/EntityPackets1_15.java +++ b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_14_4to1_15/packets/EntityPackets1_15.java @@ -234,10 +234,11 @@ public class EntityPackets1_15 extends EntityRewriter { if (entityType != Entity1_15Types.EntityType.BEE) return; int size = wrapper.get(Type.INT, 0); + int newSize = size; for (int i = 0; i < size; i++) { String key = wrapper.read(Type.STRING); if (key.equals("generic.flyingSpeed")) { - size--; + newSize--; wrapper.read(Type.DOUBLE); int modSize = wrapper.read(Type.VAR_INT); for (int j = 0; j < modSize; j++) { @@ -256,7 +257,10 @@ public class EntityPackets1_15 extends EntityRewriter { } } } - wrapper.set(Type.INT, 0, size); + + if (newSize != size) { + wrapper.set(Type.INT, 0, newSize); + } } }); }