-2
try {
    float newRep = Float.parseFloat(split[1]);
    String target = split[0];
    for (File file : getDataFolder().listFiles()) {
        if (file.getName().equalsIgnoreCase(target + ".yml")) {
            File targetFile = file;
            try {
                FileConfiguration config = YamlConfiguration.loadConfiguration(targetFile);
                config.set("data.rep", newRep);
                config.save(targetFile);
                sender.sendMessage(ChatColor.GREEN + target + ChatColor.RED
                        + "'s rep is now set to " + ChatColor.GREEN + newRep);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
} catch (NumberFormatException ex) {
    sender.sendMessage(ChatColor.RED + "Must be a number!");
} catch (IllegalArgumentException e) {
    sender.sendMessage(ChatColor.RED + "Player not found!");
} catch (NullPointerException e) {
    sender.sendMessage("Unknown pointer error!");
    e.printStackTrace();
}

基本的に何かがヌルポイントエラーを投げています。本当にだまされた。コードが実行しているのは、配列に基づいて yaml ファイルを開こうとすることだけですsplit[0]。次に、yaml の値の 1 つを文字列split[1](float に渡される) に変更します。

スタック トレースは次のとおりです。

23:25:18 [SEVERE] java.lang.NullPointerException
23:25:18 [SEVERE]   at com.github.scullyking.reputation.Command_Set.onCommand(Command_Set.java:33)
23:25:18 [SEVERE]   at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
23:25:18 [SEVERE]   at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:191)
23:25:18 [SEVERE]   at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatchCommand(CraftServer.java:523)
23:25:18 [SEVERE]   at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatchServerCommand(CraftServer.java:512)
23:25:18 [SEVERE]   at net.minecraft.server.v1_6_R2.DedicatedServer.ar(DedicatedServer.java:262)
23:25:18 [SEVERE]   at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:227)
23:25:18 [SEVERE]   at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:486)
23:25:18 [SEVERE]   at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:419)
23:25:18 [SEVERE]   at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)'

33行目はforループです。

4

1 に答える 1

0

メソッドgetDataFolder()は を返しnullます。

次に、返されたものを呼び出し.listFiles()、ブームします。

于 2013-08-04T22:41:57.323 に答える