From 9d4f902594cb7d4e4c431f887209c39787ce5eec Mon Sep 17 00:00:00 2001 From: Term4 Date: Wed, 15 Jul 2026 12:29:50 -0500 Subject: [PATCH] Don't send legacy clients their own death event Clients up to 1.13.2 run the local death handling on their own entity death event, clearing their own inventory client-side (most visibly an emptied hotbar on the death screen, since modern servers don't resync the inventory on death). The death screen still shows from the health update. 1.14+ clients no longer clear the inventory. --- .../v1_14to1_13_2/rewriter/EntityPacketRewriter1_14.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/v1_14to1_13_2/rewriter/EntityPacketRewriter1_14.java b/common/src/main/java/com/viaversion/viabackwards/protocol/v1_14to1_13_2/rewriter/EntityPacketRewriter1_14.java index b4f904456..72170fbc1 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/v1_14to1_13_2/rewriter/EntityPacketRewriter1_14.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/v1_14to1_13_2/rewriter/EntityPacketRewriter1_14.java @@ -64,6 +64,12 @@ protected void registerPackets() { if (status != 3) return; EntityTracker tracker = tracker(wrapper.user()); + if (entityId == tracker.clientEntityId()) { + // Clients up to 1.13.2 run the local death handling on their own death event, clearing + // their own inventory; the death screen still shows from the health update + wrapper.cancel(); + return; + } EntityType entityType = tracker.entityType(entityId); if (entityType != EntityTypes1_14.PLAYER) return;