From 5b7eb6f656b0767a870c39919bb0678bd1806d0d Mon Sep 17 00:00:00 2001 From: Florian Reuth Date: Thu, 1 Oct 2026 16:30:19 +0200 Subject: [PATCH] Always backup canDestroyBlocksInCreative in 1.21.5->1.21.4 Signed-off-by: Florian Reuth --- .../rewriter/BlockItemPacketRewriter1_21_5.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/v1_21_5to1_21_4/rewriter/BlockItemPacketRewriter1_21_5.java b/common/src/main/java/com/viaversion/viabackwards/protocol/v1_21_5to1_21_4/rewriter/BlockItemPacketRewriter1_21_5.java index f3468cd97..541f75b81 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/v1_21_5to1_21_4/rewriter/BlockItemPacketRewriter1_21_5.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/v1_21_5to1_21_4/rewriter/BlockItemPacketRewriter1_21_5.java @@ -363,8 +363,8 @@ private String heightmapType(final int id) { protected void backupInconvertibleData(final UserConnection connection, final Item item, final StructuredDataContainer dataContainer, final CompoundTag backupTag) { super.backupInconvertibleData(connection, item, dataContainer, backupTag); final ToolProperties toolProperties = dataContainer.get(StructuredDataKey.TOOL1_21_5); - if (toolProperties != null && toolProperties.canDestroyBlocksInCreative()) { - backupTag.putBoolean("tool", true); + if (toolProperties != null && !toolProperties.canDestroyBlocksInCreative()) { + backupTag.putBoolean("tool", false); } final Equippable equippable = dataContainer.get(StructuredDataKey.EQUIPPABLE1_21_5); @@ -511,8 +511,9 @@ protected void restoreBackupData(final Item item, final StructuredDataContainer data.set(StructuredDataKey.TOOLTIP_DISPLAY, new TooltipDisplay(data.has(StructuredDataKey.HIDE_TOOLTIP), new IntLinkedOpenHashSet(hiddenComponentsTag.getValue()))); } - if (backupTag.getBoolean("tool")) { - data.replace(StructuredDataKey.TOOL1_20_5, StructuredDataKey.TOOL1_21_5, t -> new ToolProperties(t.rules(), t.defaultMiningSpeed(), t.damagePerBlock(), true)); + if (backupTag.contains("tool")) { + final boolean canDestroyBlocksInCreative = backupTag.getBoolean("tool"); + data.replace(StructuredDataKey.TOOL1_20_5, StructuredDataKey.TOOL1_21_5, t -> new ToolProperties(t.rules(), t.defaultMiningSpeed(), t.damagePerBlock(), canDestroyBlocksInCreative)); } if (backupTag.getBoolean("equippable")) {