2013-08-04 96 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()'来查找问题。 –

相关问题