Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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 IllegalArgumentException,插件不能为null_Java_Minecraft_Bukkit - Fatal编程技术网

Java IllegalArgumentException,插件不能为null

Java IllegalArgumentException,插件不能为null,java,minecraft,bukkit,Java,Minecraft,Bukkit,当我在其他类的顶部初始化插件时,插件的主类返回null: java.lang.IllegalArgumentException: Plugin cannot be null 在BeforeGame类中初始化: Main instance; public BeforeGame(Main instance) { this.instance = instance; } 在主要课堂上: 公共类Main扩展JavaPlugin实现监听器{ private Main instance;

当我在其他类的顶部初始化插件时,插件的主类返回null:

java.lang.IllegalArgumentException: Plugin cannot be null
在BeforeGame类中初始化:

    Main instance;
public BeforeGame(Main instance) {
    this.instance = instance;
}
在主要课堂上:

公共类Main扩展JavaPlugin实现监听器{

private Main instance;
public Main getInstance(){
    return instance;
}

@Override
public void onEnable() {
    instance = this;
    Bukkit.getServer().getPluginManager().registerEvents(new LobbyHandlers(this), this);
    Bukkit.getServer().getPluginManager().registerEvents(new GameListener(this), this);
    BeforeGame bfGame = new BeforeGame(this);
    LobbyCountdown lobbyCountdown = new LobbyCountdown(this);
}

@Override
public void onDisable() {
    instance = null;
}
} 出现错误的部分代码:

public void loadWaiter(World w){
    List<Player> players = w.getPlayers();
    BukkitTask waitplz = new BukkitRunnable(){
        @Override
        public void run() {
            for(Player p : players){
                p.sendTitle(ChatColor.YELLOW + "Wait", ChatColor.YELLOW + "loading other players!", 0, 40, 10);
                p.getInventory().clear();
                blocksSet(players);

            }
        }
    }.runTaskLater(instance, 50);
}
错误是:

[23:38:05 WARN]: [BridgeBattle_Reworked] Task #36 for 
BridgeBattle_Reworked v0.1 generated an exception 
java.lang.IllegalArgumentException: Plugin cannot be null at 
org.apache.commons.lang.Validate.notNull(Validate.java:192) ~[spigot. 
jar:git-Spigot-dcd1643-e60fc34] at 
org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.validate(Cra 
ftScheduler.java:410) ~[spigot.jar:git-Spigot-dcd1643-e60fc34] at 
org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.runTaskTimer 
(CraftScheduler.java:130) ~[spigot.jar:git-Spigot-dcd1643-e60fc34] at 
org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.runTaskLater 
(CraftScheduler.java:113) ~[spigot.jar:git-Spigot-dcd1643-e60fc34] at 
org.bukkit.scheduler.BukkitRunnable.runTaskLater(BukkitRunnable.java: 75) 
~[spigot.jar:git-Spigot-dcd1643-e60fc34] at 
ru.vladis.bridgebattle.game.BeforeGame.loadWaiter(BeforeGame.java:39) ~ 
[?:?] at 
ru.vladis.bridgebattle.countdowns.LobbyCountdown$1.run(LobbyCountdown 
.java:51) ~[?:?] at 
org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftTask.run(CraftTask.jav 
a:76) ~[spigot.jar:git-Spigot-dcd1643-e60fc34] at 
org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.mainThreadHe 
artbeat(CraftScheduler.java:361) [spigot.jar:git-Spigot-dcd1643-e60fc34] 
at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java: 
739) [spigot.jar:git-Spigot-dcd1643-e60fc34] at 
net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java: 406) 
[spigot.jar:git-Spigot-dcd1643-e60fc34] at 
net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java: 679) 
[spigot.jar:git-Spigot-dcd1643-e60fc34] at 
net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.jav 
a:577) [spigot.jar:git-Spigot-dcd1643-e60fc34] at 
java.lang.Thread.run(Unknown Source) [?:1.8.0_191]

在onEnable()方法中定义实例以及在构造函数中执行的所有其他操作。
这样做的原因是因为Bukkit会清除变量,但由于java类加载器的限制,不会在每次重新加载服务器时创建主类的新实例。

我声明了一个主实例不在onEnable()中,并将其定义为instance=this;但它仍然不起作用,请在onEnable()方法中执行它
[23:38:05 WARN]: [BridgeBattle_Reworked] Task #36 for 
BridgeBattle_Reworked v0.1 generated an exception 
java.lang.IllegalArgumentException: Plugin cannot be null at 
org.apache.commons.lang.Validate.notNull(Validate.java:192) ~[spigot. 
jar:git-Spigot-dcd1643-e60fc34] at 
org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.validate(Cra 
ftScheduler.java:410) ~[spigot.jar:git-Spigot-dcd1643-e60fc34] at 
org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.runTaskTimer 
(CraftScheduler.java:130) ~[spigot.jar:git-Spigot-dcd1643-e60fc34] at 
org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.runTaskLater 
(CraftScheduler.java:113) ~[spigot.jar:git-Spigot-dcd1643-e60fc34] at 
org.bukkit.scheduler.BukkitRunnable.runTaskLater(BukkitRunnable.java: 75) 
~[spigot.jar:git-Spigot-dcd1643-e60fc34] at 
ru.vladis.bridgebattle.game.BeforeGame.loadWaiter(BeforeGame.java:39) ~ 
[?:?] at 
ru.vladis.bridgebattle.countdowns.LobbyCountdown$1.run(LobbyCountdown 
.java:51) ~[?:?] at 
org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftTask.run(CraftTask.jav 
a:76) ~[spigot.jar:git-Spigot-dcd1643-e60fc34] at 
org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.mainThreadHe 
artbeat(CraftScheduler.java:361) [spigot.jar:git-Spigot-dcd1643-e60fc34] 
at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java: 
739) [spigot.jar:git-Spigot-dcd1643-e60fc34] at 
net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java: 406) 
[spigot.jar:git-Spigot-dcd1643-e60fc34] at 
net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java: 679) 
[spigot.jar:git-Spigot-dcd1643-e60fc34] at 
net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.jav 
a:577) [spigot.jar:git-Spigot-dcd1643-e60fc34] at 
java.lang.Thread.run(Unknown Source) [?:1.8.0_191]