From 986b5984bc0d3e5d825ffcfecd1c208e8bbbde91 Mon Sep 17 00:00:00 2001 From: jhqwqmc Date: Tue, 28 Oct 2025 08:39:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=8F=91=E9=80=81=E7=9A=84?= =?UTF-8?q?=E7=BD=91=E7=BB=9C=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../payload/protocol/VisualBlockStatePacket.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/payload/protocol/VisualBlockStatePacket.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/payload/protocol/VisualBlockStatePacket.java index 75984e6c5..42a626a9e 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/payload/protocol/VisualBlockStatePacket.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/payload/protocol/VisualBlockStatePacket.java @@ -2,7 +2,6 @@ package net.momirealms.craftengine.bukkit.plugin.network.payload.protocol; import net.momirealms.craftengine.bukkit.block.BukkitBlockManager; import net.momirealms.craftengine.bukkit.util.BlockStateUtils; -import net.momirealms.craftengine.bukkit.util.RegistryUtils; import net.momirealms.craftengine.core.block.ImmutableBlockState; import net.momirealms.craftengine.core.plugin.config.Config; import net.momirealms.craftengine.core.plugin.network.ModPacket; @@ -35,11 +34,13 @@ public record VisualBlockStatePacket(int[] data) implements ModPacket { } public static VisualBlockStatePacket create() { - int[] mappings = new int[RegistryUtils.currentBlockRegistrySize()]; - for (int i = 0; i < Config.serverSideBlocks(); i++) { - ImmutableBlockState state = BukkitBlockManager.instance().getImmutableBlockStateUnsafe(i + BlockStateUtils.vanillaBlockStateCount()); + int vanillaBlockStateCount = BlockStateUtils.vanillaBlockStateCount(); + int serverSideBlockCount = Config.serverSideBlocks(); + int[] mappings = new int[serverSideBlockCount]; + for (int i = 0; i < serverSideBlockCount; i++) { + ImmutableBlockState state = BukkitBlockManager.instance().getImmutableBlockStateUnsafe(i + vanillaBlockStateCount); if (state.isEmpty()) continue; - mappings[state.customBlockState().registryId()] = state.vanillaBlockState().registryId(); + mappings[state.customBlockState().registryId() - vanillaBlockStateCount] = state.vanillaBlockState().registryId(); } return new VisualBlockStatePacket(mappings); }