From ac01a98142374008f050b4adb4880108f1ab6aa5 Mon Sep 17 00:00:00 2001 From: jhqwqmc Date: Mon, 27 Oct 2025 04:50:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BF=BB=E8=AF=91=E6=A8=A1?= =?UTF-8?q?=E7=BB=84=E6=96=B9=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bukkit/plugin/network/BukkitNetworkManager.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java index 72fd85829..738f383f0 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/BukkitNetworkManager.java @@ -1943,6 +1943,10 @@ public class BukkitNetworkManager implements NetworkManager, Listener, PluginMes this.needsDowngrade = MiscUtils.ceilLog2(BlockStateUtils.vanillaBlockStateCount()) != MiscUtils.ceilLog2(blockRegistrySize); } + public int remapBlockState(int stateId, boolean enableMod) { + return enableMod ? this.modBlockStateMapper[stateId] : this.blockStateMapper[stateId]; + } + @Override public void onPacketSend(NetWorkUser user, ByteBufPacketEvent event) { BukkitServerPlayer player = (BukkitServerPlayer) user; @@ -1989,14 +1993,14 @@ public class BukkitNetworkManager implements NetworkManager, Listener, PluginMes } Palette palette = container.data().palette(); if (palette.canRemap()) { - if (palette.remapAndCheck(s -> this.blockStateMapper[s])) { + if (palette.remapAndCheck(s -> remapBlockState(s, user.clientModEnabled()))) { hasChangedAnyBlock = true; } } else { hasGlobalPalette = true; for (int j = 0; j < 4096; j++) { int state = container.get(j); - int newState = this.blockStateMapper[state]; + int newState = remapBlockState(state, user.clientModEnabled()); if (newState != state) { container.set(j, newState); hasChangedAnyBlock = true;