项目名称的Java Bukkit API测试

时间:2016-01-29 07:22:25

标签: java api minecraft bukkit

我想测试玩家持有的物品是否具有某个名称。如果确实如此,我希望它能够执行以下操作:

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);

如果它没有,它应该返回类似于"错误名称的内容!"

1 个答案:

答案 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")) {
        ....
    }
}