From a57d806f8c0d1002de4cb38293502bd15dd3a321 Mon Sep 17 00:00:00 2001 From: Kyllian Warmerdam Date: Wed, 14 Oct 2026 12:34:26 +0200 Subject: [PATCH] Cancel own-player equipment packets in 1.9->1.8 --- .../v1_9to1_8/rewriter/EntityPacketRewriter1_9.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/com/viaversion/viarewind/protocol/v1_9to1_8/rewriter/EntityPacketRewriter1_9.java b/common/src/main/java/com/viaversion/viarewind/protocol/v1_9to1_8/rewriter/EntityPacketRewriter1_9.java index 6247023e6..40a0e40ed 100644 --- a/common/src/main/java/com/viaversion/viarewind/protocol/v1_9to1_8/rewriter/EntityPacketRewriter1_9.java +++ b/common/src/main/java/com/viaversion/viarewind/protocol/v1_9to1_8/rewriter/EntityPacketRewriter1_9.java @@ -412,9 +412,11 @@ public void register() { public void register() { map(Types.VAR_INT); // Entity id handler(wrapper -> { - // todo check if this is correct for the own player + // 1.8 clients write their own equipment to armorInventory[slot] without the -1 offset, + // shifting armor up one slot; the window 0 set slot packets already carry it. + final int entityId = wrapper.get(Types.VAR_INT, 0); int slot = wrapper.read(Types.VAR_INT); - if (slot == 1) { + if (slot == 1 || entityId == wrapper.user().getEntityTracker(protocol).clientEntityId()) { wrapper.cancel(); } else if (slot > 1) { slot -= 1;