Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我会犯这个错误?org.bukkit.event.EventException:null_Java_Minecraft_Bukkit - Fatal编程技术网

Java 为什么我会犯这个错误?org.bukkit.event.EventException:null

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

我试图编码,如果我右键点击一个标志,我将传送到一个位置。它正在工作,但在控制台我得到一个错误和idk为什么。这是我的代码:

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条件,现在它正在工作。

请发布完整的错误详细信息,包括堆栈跟踪。请发布完整的错误详细信息,包括堆栈跟踪。