diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/v1_16to1_15_2/rewriter/BlockItemPacketRewriter1_16.java b/common/src/main/java/com/viaversion/viabackwards/protocol/v1_16to1_15_2/rewriter/BlockItemPacketRewriter1_16.java index a5976495..d8d31154 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/v1_16to1_15_2/rewriter/BlockItemPacketRewriter1_16.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/v1_16to1_15_2/rewriter/BlockItemPacketRewriter1_16.java @@ -148,9 +148,9 @@ protected void registerPackets() { do { slot = wrapper.read(Types.BYTE); Item item = handleItemToClient(wrapper.user(), wrapper.read(Types.ITEM1_13_2)); - int rawSlot = slot & 0x7F; + int rawSlot = slot & Byte.MAX_VALUE; equipmentData.add(new EquipmentData(rawSlot, item)); - } while ((slot & 0xFFFFFF80) != 0); + } while ((slot & Byte.MIN_VALUE) != 0); // Send first data in the current packet EquipmentData firstData = equipmentData.get(0); diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/v1_20_2to1_20/rewriter/BlockItemPacketRewriter1_20_2.java b/common/src/main/java/com/viaversion/viabackwards/protocol/v1_20_2to1_20/rewriter/BlockItemPacketRewriter1_20_2.java index f2baf774..cc266d6c 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/v1_20_2to1_20/rewriter/BlockItemPacketRewriter1_20_2.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/v1_20_2to1_20/rewriter/BlockItemPacketRewriter1_20_2.java @@ -26,7 +26,6 @@ import com.viaversion.viabackwards.protocol.v1_20_2to1_20.provider.AdvancementCriteriaProvider; import com.viaversion.viaversion.api.Via; import com.viaversion.viaversion.api.connection.UserConnection; -import com.viaversion.viaversion.api.data.ParticleMappings; import com.viaversion.viaversion.api.data.entity.EntityTracker; import com.viaversion.viaversion.api.minecraft.ChunkPosition; import com.viaversion.viaversion.api.minecraft.blockentity.BlockEntity; @@ -193,7 +192,7 @@ public void register() { do { slot = wrapper.passthrough(Types.BYTE); wrapper.write(Types.ITEM1_13_2, handleItemToClient(wrapper.user(), wrapper.read(Types.ITEM1_20_2))); - } while ((slot & 0xFFFFFF80) != 0); + } while ((slot & Byte.MIN_VALUE) != 0); }); } }); diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/v1_20_5to1_20_3/rewriter/EntityPacketRewriter1_20_5.java b/common/src/main/java/com/viaversion/viabackwards/protocol/v1_20_5to1_20_3/rewriter/EntityPacketRewriter1_20_5.java index 4104f7c8..968a3557 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/v1_20_5to1_20_3/rewriter/EntityPacketRewriter1_20_5.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/v1_20_5to1_20_3/rewriter/EntityPacketRewriter1_20_5.java @@ -77,9 +77,12 @@ public void registerPackets() { do { slot = wrapper.read(Types.BYTE); final Item item = protocol.getItemRewriter().handleItemToClient(wrapper.user(), wrapper.read(Types1_20_5.ITEM)); + final int rawSlot = slot & Byte.MAX_VALUE; + + if (rawSlot == 6) { + final boolean lastSlot = (slot & Byte.MIN_VALUE) == 0; + slot = (byte) (lastSlot ? 4 : 4 | Byte.MIN_VALUE); // Map body slot index to chest slot index for horses, also wolves - if (slot == 6) { - slot = 4; // Map body slot index to chest slot index for horses, also wolves if (type != null && type.isOrHasParent(EntityTypes1_20_5.LLAMA)) { // Cancel equipment and set correct entity data instead wrapper.cancel(); @@ -89,7 +92,7 @@ public void registerPackets() { wrapper.write(Types.BYTE, slot); wrapper.write(Types.ITEM1_20_2, item); - } while (slot < 0); + } while ((slot & Byte.MIN_VALUE) != 0); }); protocol.registerClientbound(ClientboundPackets1_20_5.HORSE_SCREEN_OPEN, wrapper -> {