From 54b6d1c21c176ebc9c29b3598ac8d2e23a4710c8 Mon Sep 17 00:00:00 2001 From: DaPorkchop_ Date: Wed, 14 Oct 2020 15:40:39 +0200 Subject: [PATCH] Fix entity attributes length prefix (#2136) --- .../protocol1_16to1_15_2/packets/EntityPackets.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_16to1_15_2/packets/EntityPackets.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_16to1_15_2/packets/EntityPackets.java index b3b91a35f..e93ea1114 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_16to1_15_2/packets/EntityPackets.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_16to1_15_2/packets/EntityPackets.java @@ -211,6 +211,7 @@ public class EntityPackets { handler(wrapper -> { wrapper.passthrough(Type.VAR_INT); int size = wrapper.passthrough(Type.INT); + int actualSize = size; for (int i = 0; i < size; i++) { // Attributes have been renamed and are now namespaced identifiers String key = wrapper.read(Type.STRING); @@ -218,7 +219,10 @@ public class EntityPackets { if (attributeIdentifier == null) { attributeIdentifier = "minecraft:" + key; if (!us.myles.ViaVersion.protocols.protocol1_13to1_12_2.data.MappingData.isValid1_13Channel(attributeIdentifier)) { - Via.getPlatform().getLogger().warning("Invalid attribute: " + key); + if (!Via.getConfig().isSuppressConversionWarnings()) { + Via.getPlatform().getLogger().warning("Invalid attribute: " + key); + } + actualSize--; wrapper.read(Type.DOUBLE); int modifierSize = wrapper.read(Type.VAR_INT); for (int j = 0; j < modifierSize; j++) { @@ -240,6 +244,9 @@ public class EntityPackets { wrapper.passthrough(Type.BYTE); } } + if (size != actualSize) { + wrapper.set(Type.INT, 0, actualSize); + } }); } });