mirror of
https://github.com/Xiao-MoMi/craft-engine.git
synced 2025-12-30 12:29:15 +00:00
修复1.20-1.21.3鼠标中键物品与方块id不一致时无法获取物品
This commit is contained in:
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user