From f2a830083cf20222b65f7e542387d9757ba960b0 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Tue, 1 Jul 2025 05:17:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D1.20-1.21.3=E9=BC=A0=E6=A0=87?= =?UTF-8?q?=E4=B8=AD=E9=94=AE=E7=89=A9=E5=93=81=E4=B8=8E=E6=96=B9=E5=9D=97?= =?UTF-8?q?id=E4=B8=8D=E4=B8=80=E8=87=B4=E6=97=B6=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E7=89=A9=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bukkit/plugin/network/PacketConsumers.java | 10 +++++++--- gradle.properties | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java index bd5e020ea..4eff92918 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/network/PacketConsumers.java @@ -67,6 +67,7 @@ import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.ItemType; import org.bukkit.inventory.PlayerInventory; import org.bukkit.util.RayTraceResult; import org.bukkit.util.Vector; @@ -1323,9 +1324,12 @@ public class PacketConsumers { Key itemId = state.settings().itemId(); // no item available if (itemId == null) return; - BlockData data = BlockStateUtils.fromBlockData(state.vanillaBlockState().handle()); - // compare item - if (data == null || !data.getMaterial().equals(item.getType())) return; + Object vanillaBlock = FastNMS.INSTANCE.method$BlockState$getBlock(state.vanillaBlockState().handle()); + Object vanillaBlockItem = FastNMS.INSTANCE.method$Block$asItem(vanillaBlock); + if (vanillaBlockItem == null) return; + Key addItemId = KeyUtils.namespacedKey2Key(item.getType().getKey()); + Key blockItemId = KeyUtils.resourceLocationToKey(FastNMS.INSTANCE.method$Registry$getKey(MBuiltInRegistries.ITEM, vanillaBlockItem)); + if (!addItemId.equals(blockItemId)) return; ItemStack itemStack = BukkitCraftEngine.instance().itemManager().buildCustomItemStack(itemId, player); if (ItemUtils.isEmpty(itemStack)) { CraftEngine.instance().logger().warn("Item: " + itemId + " is not a valid item"); diff --git a/gradle.properties b/gradle.properties index 0a30eaf95..1ed35a3a0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -50,7 +50,7 @@ byte_buddy_version=1.17.5 ahocorasick_version=0.6.3 snake_yaml_version=2.4 anti_grief_version=0.18 -nms_helper_version=1.0.19 +nms_helper_version=1.0.20 evalex_version=3.5.0 reactive_streams_version=1.0.4 amazon_awssdk_version=2.31.23