Java 为什么我会犯这个错误?org.bukkit.event.EventException:null
我试图编码,如果我右键点击一个标志,我将传送到一个位置。它正在工作,但在控制台我得到一个错误和idk为什么。这是我的代码:Java 为什么我会犯这个错误?org.bukkit.event.EventException:null,java,minecraft,bukkit,Java,Minecraft,Bukkit,我试图编码,如果我右键点击一个标志,我将传送到一个位置。它正在工作,但在控制台我得到一个错误和idk为什么。这是我的代码: public class schildJNR implements Listener { @EventHandler public void schildKlickEvent(PlayerInteractEvent event) { Player player = event.getPlayer(); if(event.getPlayer() instan
public class schildJNR implements Listener {
@EventHandler
public void schildKlickEvent(PlayerInteractEvent event) {
Player player = event.getPlayer();
if(event.getPlayer() instanceof Player && event != null) {
if (event.getClickedBlock().getType() == Material.SPRUCE_WALL_SIGN) {
Sign sign = (Sign) event.getClickedBlock().getState();
if (sign.getLine(0).equalsIgnoreCase("Die Schlucht")) {
player.teleport(new Location(Bukkit.getWorld("world"), 295.14f, 69, 46.54f, -90.1f, 0.9f));
} else if (sign.getLine(0).equalsIgnoreCase("Schatzsuche")) {
player.teleport(new Location(Bukkit.getWorld("world"), 74.59f, 63, 237.51f, -91.4f, 1.3f));
} else if (sign.getLine(0).equalsIgnoreCase("Fichtenwald")) {
player.teleport(new Location(Bukkit.getWorld("world"), -5.43f, 78, 172.57f, 179.7f, 1.6f));
}
}
} else {
player.sendMessage("ERROR");
}
}
错误是:org.bukkit.event.EventException:null[…],原因是:java.lang.NullPointerException我做错了什么?如果您在if中的表达式顺序不正确,您需要首先检查它是否为null,然后检查它是否为player的instanceof
if(event != null && event.getPlayer() instanceof Player) {
if中表达式的顺序不正确,需要先检查它是否为null,然后检查它是否为player的instanceof
if(event != null && event.getPlayer() instanceof Player) {
好的,我修好了。我试图执行'getClickedBlock()'方法,但如果我在空中打孔,则将执行'PlayerInteractEvent',然后代码尝试执行此操作:'if(event.getClickedBlock().getType()==Material.SPRUCE\u WALL\u SIGN){'但是我没有klick一个块,所以会有错误。我添加了一个if条件,现在它正在工作。好的,我修复了它。我尝试执行'getClickedBlock()'方法,但是如果我在空中打孔,将执行'PlayerInteractEvent',然后代码尝试执行这个:'if(event.getClickedBlock().getType()==Material.SPRUCE\u WALL\u SIGN){'但我没有勾选块,因此会出现错误。我添加了if条件,现在它正在工作。请发布完整的错误详细信息,包括堆栈跟踪。请发布完整的错误详细信息,包括堆栈跟踪。