This question already has answers here:
What is a NullPointerException, and how do I fix it?
(12个答案)
3年前关闭。
我遇到了这个错误,老实说我不知道该如何解决,我已经尽力了。
代码是检查玩家的行李箱插槽,看是否有钻石靴子,如果有,将其设置为空气,因为这是被禁止的项目。
错误:
太大,无法粘贴到这里,因此是:http://pastebin.com/zhzc3Hut
编码:
我在头盔,胸甲和绑腿插槽上也遇到了同样的错误。
预先感谢任何能够帮助我的人!对发生的事情的解释也将不胜感激!
@编辑
如The_Lone_Devil所提醒:
(...)这是因为库存中的空插槽是空的ItemStack,因此,如果引导插槽中没有空插槽,则返回的ItemStack为空。
(12个答案)
3年前关闭。
我遇到了这个错误,老实说我不知道该如何解决,我已经尽力了。
代码是检查玩家的行李箱插槽,看是否有钻石靴子,如果有,将其设置为空气,因为这是被禁止的项目。
错误:
太大,无法粘贴到这里,因此是: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 {
}
}
我在头盔,胸甲和绑腿插槽上也遇到了同样的错误。
预先感谢任何能够帮助我的人!对发生的事情的解释也将不胜感激!
最佳答案
您可能面临的问题是getBoots ItemStack实际上为空。
要解决该问题,我们应该先检查引导程序是否为空,然后再检查其类型。
ItemStack boots = player.getInventory().getBoots();
if (boots != null) {
if (boots.getType().equals(Material.DIAMOND_BOOTS) {
player.getInventory().setBoots(null);
}
}
@编辑
如The_Lone_Devil所提醒:
(...)这是因为库存中的空插槽是空的ItemStack,因此,如果引导插槽中没有空插槽,则返回的ItemStack为空。
10-04 21:47