2013-08-04 95 views
-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(); 
} 

基本上有些東西會拋出一個零點錯誤。真是bamboo。。所有代碼正在嘗試打開基於split[0]數組的yaml文件。然後將yaml中的一個值更改爲字符串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循環。

+3

stacktrace指向哪一行?你可以發佈堆棧跟蹤嗎? – hexafraction

+2

你應該停止捕獲'NullPointerException'。結果輸出的信息比「未知的指針錯誤!」多得多,如果你發佈了輸出,我們可以真正回答你的問題。 – tbodt

+0

順便說一句,這是[se] api? – tbodt

回答

0

方法getDataFolder()正在返回null

然後您致電.listFiles()返回什麼,並繁榮。

+0

奇怪,因爲我已經在其他地方用循環,它工作正常...... – Scully

+0

也許這次環境是不同的。 – Bohemian

+1

@Scully,使用調試器進入'getDataFolder()'來查找問題。 –

相關問題