Java Bukkit-未处理的异常

Java Bukkit-未处理的异常,java,bukkit,unhandled-exception,Java,Bukkit,Unhandled Exception,命令/组应该输出给定玩家的组。播放器保存在config.yml中。当我执行该命令时,我得到的只是一个未处理的异常。 它没有给我任何具体的信息。我不知道,这是否是由于我使用外部类错误造成的。我添加了一个简单的sendMessage()来证明变量不会导致异常。我对Java还很陌生。 也许StackOverflow能帮上忙 Stym.java(主): java(外部命令文件): plugin.yml: name: Stym main: Stym version: 1.3.3.7 commands:

命令/组应该输出给定玩家的组。播放器保存在config.yml中。当我执行该命令时,我得到的只是一个未处理的异常。 它没有给我任何具体的信息。我不知道,这是否是由于我使用外部类错误造成的。我添加了一个简单的sendMessage()来证明变量不会导致异常。我对Java还很陌生。 也许StackOverflow能帮上忙

Stym.java(主):

java(外部命令文件):

plugin.yml:

name: Stym
main: Stym
version: 1.3.3.7
commands:
  group:
config.yml:

groups:
  iron: Player, Another_Player
  diamond: Rich_Player
控制台输出:

堆栈跟踪:


你的问题就在这里:

sender.sendMessage("Player:" + " " + arguments[0]);
arguments[0]
获取arguments数组中的第一个元素。但是,由于您只键入/group,因此没有参数,因此它会抛出一个
ArrayIndexOutOfBoundsException:0
,因为它试图访问数组中的第0个元素,但它甚至不存在

要解决此问题,您需要首先检查命令中是否有任何参数。您可以通过获取
arguments.length
并检查它是否大于0或等于您希望有多少个参数来实现这一点

例如:

if(arguments.length > 0){
    sender.sendMessage("Player:" + " " + arguments[0]);
    //Do other stuff
}else{
    sender.sendMessage(ChatColor.RED + "That is not how you run the command!");
}

AdrianSohn Post已更新。
参数
onCommand
@cricket\u 007中为空。我现在非常困惑。我只是将“测试”行移到if(arguments.length==1)行后面。然后它成功了。现在我删除了“测试”行,它将不再工作。请你(或其他人)发布整个组。java?@cricket\u 007好吧,我现在开始运行了。我认为这实际上与plugin.yml的格式错误有关,因为我并没有在Group.java中真正更改任何内容。我想,我现在要继续读我的Java书了!:-)
[19:46:48] [Server thread/WARN]: java.lang.ArrayIndexOutOfBoundsException: 0
[19:46:48] [Server thread/WARN]:  at Group.onCommand(Group.java:24)
[19:46:48] [Server thread/WARN]:  at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
[19:46:48] [Server thread/WARN]:  at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:140)
[19:46:48] [Server thread/WARN]:  at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:620)
[19:46:48] [Server thread/WARN]:  at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchServerCommand(CraftServer.java:606)
[19:46:48] [Server thread/WARN]:  at net.minecraft.server.v1_8_R3.DedicatedServer.aO(DedicatedServer.java:372)
[19:46:48] [Server thread/WARN]:  at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:336)
[19:46:48] [Server thread/WARN]:  at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:629)
[19:46:48] [Server thread/WARN]:  at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:537)
[19:46:48] [Server thread/WARN]:  at java.lang.Thread.run(Unknown Source)
sender.sendMessage("Player:" + " " + arguments[0]);
if(arguments.length > 0){
    sender.sendMessage("Player:" + " " + arguments[0]);
    //Do other stuff
}else{
    sender.sendMessage(ChatColor.RED + "That is not how you run the command!");
}