From fb759d0fd00633406964a8ac850c0a2557fd7e84 Mon Sep 17 00:00:00 2001 From: RoccoDev Date: Wed, 30 Sep 2026 19:24:52 +0200 Subject: [PATCH] Save original int map ID if conversion is lossy --- .../rewriter/BlockItemPacketRewriter1_13.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/v1_13to1_12_2/rewriter/BlockItemPacketRewriter1_13.java b/common/src/main/java/com/viaversion/viabackwards/protocol/v1_13to1_12_2/rewriter/BlockItemPacketRewriter1_13.java index 3e587463e..30db834d0 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/v1_13to1_12_2/rewriter/BlockItemPacketRewriter1_13.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/v1_13to1_12_2/rewriter/BlockItemPacketRewriter1_13.java @@ -463,8 +463,12 @@ public Item handleItemToClient(UserConnection connection, Item item) { if (item.identifier() == 358) { // map Tag mapTag = tag.remove("map"); - if (!gotRawIdFromTag && mapTag instanceof NumberTag) { - item.setData(((NumberTag) mapTag).asShort()); + if (!gotRawIdFromTag && mapTag instanceof NumberTag numberTag) { + item.setData((short) (numberTag.asInt() & 0x7FFF)); + // Keep original ID if conversion is lossy + if (numberTag.asInt() > Short.MAX_VALUE) { + tag.put("map", numberTag); + } } } @@ -667,7 +671,9 @@ public Item handleItemToServer(UserConnection connection, Item item) { } if (item.identifier() == 358) { // map if (tag == null) item.setTag(tag = new CompoundTag()); - tag.putInt("map", item.data()); + if (!tag.contains("map")) { + tag.putInt("map", item.data()); + } } // NBT Changes