我收到了这个错误,老实说我不知道该怎么做才能修复它,我已经尝试了我能想到的一切。
代码是检查玩家的启动槽,看看他是否有钻石靴,如果有钻石靴,则将其设置为空气,因为它是禁用物品。
错误:
要粘贴到此处太大,所以这里是:http://pastebin.com/zhzc3Hut
代码:
@EventHandler
public void onInventoryClickBoots(InventoryClickEvent event) {
Player player = (Player) event.getWhoClicked();
if(player.getInventory().getBoots().getType().equals(Material.DIAMOND_BOOTS)){
player.getInventory().setBoots(new ItemStack(Material.AIR));
}
else {
}
}
我也是头盔,胸甲和绑腿插槽的重复错误。
提前感谢任何有能力帮助我的人!对于所发生的事情的解释也将不胜感激!
答案 0 :(得分:1)
您可能遇到的问题是getBoots ItemStack实际上是空的。
要解决这个问题,我们首先应检查靴子是否为空,然后再检查它的类型。
ItemStack boots = player.getInventory().getBoots();
if (boots != null) {
if (boots.getType().equals(Material.DIAMOND_BOOTS) {
player.getInventory().setBoots(null);
}
}
@Edit
由The_Lone_Devil提醒:
(...)这是因为库存中的空槽是空的ItemStack,因此如果它们在引导槽中没有任何内容,则返回的ItemStack为空。