Bukkit Java编码,禁用无效

时间:2015-03-09 00:46:49

标签: java minecraft bukkit

嘿所以我搜索了很多地方但什么都没找到,所以我决定问为什么在这里,出于某种原因,我一直在插件中使用onDisable方法出错。它只需要保存3个团队的HashMaps并将其放入配置中。这就是它:

    @Override
    public void onDisable() {
            // *********************Saving Human Team**************************
            List<String> h = getConfig().getStringList("humanTeam");

            for (Player p : humanTeam.keySet()) {
                    h.add(p.getName());
            }

            getConfig().set("humanTeam", h);
            // ****************************************************************

            // *********************Saving Monster Team************************
            List<String> m = getConfig().getStringList("monsterTeam");

            for (Player p : monsterTeam.keySet()) {
                    h.add(p.getName() + ":" + monsterTeam.get(p));
            }

            getConfig().set("monsterTeam", m);
            // ****************************************************************

            // *********************Saving Monster Team************************
            List<String> r = getConfig().getStringList("runnerRole");

            for (Player p : runnerRole.keySet()) {
                    r.add(p.getName());
            }

            getConfig().set("runnerRole", r);
            // ****************************************************************

            saveConfig();

    }

以下是来自服务器的错误:

[20:20:48 INFO]: [MineRunner] Disabling MineRunner v1.0
[20:20:48 ERROR]: Error occurred while disabling MineRunner v1.0 (Is it up to da
te?)
java.lang.NullPointerException
        at me.joejoethemonkey.MineRunner.onDisable(MineRunner.java:70) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:323) ~[c
raftbukkit.jar:git-Bukkit-33d5de3]
        at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoade
r.java:351) [craftbukkit.jar:git-Bukkit-33d5de3]
        at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManag
er.java:423) [craftbukkit.jar:git-Bukkit-33d5de3]
        at org.bukkit.plugin.SimplePluginManager.disablePlugins(SimplePluginMana
ger.java:416) [craftbukkit.jar:git-Bukkit-33d5de3]
        at org.bukkit.plugin.SimplePluginManager.clearPlugins(SimplePluginManage
r.java:457) [craftbukkit.jar:git-Bukkit-33d5de3]
        at org.bukkit.craftbukkit.v1_8_R1.CraftServer.reload(CraftServer.java:69
4) [craftbukkit.jar:git-Bukkit-33d5de3]
        at org.bukkit.Bukkit.reload(Bukkit.java:543) [craftbukkit.jar:git-Bukkit
-33d5de3]
        at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:
25) [craftbukkit.jar:git-Bukkit-33d5de3]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:14
0) [craftbukkit.jar:git-Bukkit-33d5de3]
        at org.bukkit.craftbukkit.v1_8_R1.CraftServer.dispatchCommand(CraftServe
r.java:625) [craftbukkit.jar:git-Bukkit-33d5de3]
        at net.minecraft.server.v1_8_R1.PlayerConnection.handleCommand(PlayerCon
nection.java:1058) [craftbukkit.jar:git-Bukkit-33d5de3]
        at net.minecraft.server.v1_8_R1.PlayerConnection.a(PlayerConnection.java
:919) [craftbukkit.jar:git-Bukkit-33d5de3]
        at net.minecraft.server.v1_8_R1.PacketPlayInChat.a(SourceFile:37) [craft
bukkit.jar:git-Bukkit-33d5de3]
        at net.minecraft.server.v1_8_R1.PacketPlayInChat.a(SourceFile:9) [craftb
ukkit.jar:git-Bukkit-33d5de3]
        at net.minecraft.server.v1_8_R1.PacketHandleTask.run(SourceFile:13) [cra
ftbukkit.jar:git-Bukkit-33d5de3]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [
?:1.8.0_31]
        at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_31]
        at net.minecraft.server.v1_8_R1.MinecraftServer.z(MinecraftServer.java:6
56) [craftbukkit.jar:git-Bukkit-33d5de3]
        at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:2
84) [craftbukkit.jar:git-Bukkit-33d5de3]
        at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:6
09) [craftbukkit.jar:git-Bukkit-33d5de3]
        at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java
:517) [craftbukkit.jar:git-Bukkit-33d5de3]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_31]`enter code here`

1 个答案:

答案 0 :(得分:1)

这里有一些可能出错的事情。首先,您可能知道,NullPointerException意味着某些内容为null。没有任何设定。 这可能是由您使用的get config方法引起的。当你得到一个配置选项时,我建议用if语句(h == null)测试你放入它的变量。如果它为null,您将需要检查您的配置和Bukkit文档以确保您已正确使用它。

根据你在第70行的异常信息,可以知道错误的来源。由于你只向我展示了一种方法,我无法确定哪一行。

接下来我看到你在for循环中使用Player来获取一个充满字符串的列表。我不太了解bukkkit,但我不确定它们是否可以这样初始化。如果我错了,那就没关系。但也许你的循环中的一个玩家是null,所以一定要检查p == null。

你可以输入bukkkit控制台,告诉你if语句是否为空。它可能只适用于一个玩家并且只要你在非空时使用它们就会被忽略

让我知道它是怎么回事。