在放置除我定义的项目之外的任何其他项目或从牛奶桶中饮用时,我得到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) {
答案 0 :(得分:0)
我认为这是因为这一行:
ItemStack item = event.getItem();
当玩家没有持有物品时,它会返回null。尝试空检查,看看手中是否有物品。
if (event.getItem() != null)){
//do stuff
}
else{
//don't do it
}