0

放置任何其他项目而不是我定义的项目时,或者从牛奶桶中喝水时,我得到一个 NPE(空指针异常)。我尝试将 isCanceled() == false 添加到我的 EventHandler 中,但它破坏了我的 RIGHT_CLICK_AIR 操作。对不起,听起来有点复杂,可以提供更多信息,提前谢谢!

@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerInteract(PlayerInteractEvent event) {
    Player p = event.getPlayer();
    Location location = p.getLocation();
    ItemStack item = event.getItem();
if(event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK && event.hasItem() != false || event.isCancelled() == true) {
4

1 回答 1

0

我认为这是因为这条线:

ItemStack item = event.getItem();

当玩家没有持有物品时,它返回 null。尝试空检查以查看他们手中是否有物品。

if (event.getItem() != null)){
   //do stuff
}
else{
   //don't do it
}
于 2013-07-23T18:09:18.847 回答