我想测试玩家持有的物品是否具有某个名称。如果确实如此,我希望它能够执行以下操作:
Egg egg = player.getWorld().spawn(player.getEyeLocation(), Egg.class);
egg.setVelocity(player.getLocation().getDirection().multiply(1.5));
egg.setShooter(player);
player.getWorld().playSound(player.getLocation(), Sound.DIG_WOOL, 15, 15);
如果它没有,它应该返回类似于"错误名称的内容!"
答案 0 :(得分:1)
Bukkit在getItemInHand()
上有一个名为PlayerInventory
的方法,您可以使用该方法获取项目。要获得PlayerInventory
,您可以在Player
对象上致电getInventory
。
然后,您可以对返回的对象执行检查,例如检查它是否为null,并检查其类型:
ItemStack item = player.getInventory().getItemInHand();
if(item != null && item.getType() == Material.EGG) {
if(item.hasItemMeta() &&
item.getItemMeta().hasDisplayName() &&
item.getItemMeta().getDisplayName().equals("PartyEgg")) {
....
}
}