-1
命令/組應輸出給定播放器的組。玩家保存在config.yml中。當我執行該命令時,我得到的只是一個未處理的異常。 它沒有給我任何具體的東西。我不知道,如果是由於這個事實,我使用外部類錯誤。我添加了一個簡單的sendMessage()來證明變量不會導致異常。我對Java很陌生。 也許,StackOverflow可以提供幫助。Bukkit - 未處理的異常
Stym.java(主):
import org.bukkit.plugin.java.JavaPlugin;
public class Stym extends JavaPlugin {
public String necessaryIronPlayers;
public String necessaryDiamondPlayers;
@Override
public void onEnable() {
getConfig().options().copyDefaults();
saveConfig();
necessaryIronPlayers = getConfig().getString("groups.iron");
necessaryDiamondPlayers = getConfig().getString("groups.diamond");
Group groupClass = new Group(this);
getCommand("GROUP").setExecutor(groupClass);
}
}
Group.java(外部命令文件):
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
public class Group implements CommandExecutor {
public String ironPlayers;
public String diamondPlayers;
Group(Stym stym) {
ironPlayers = stym.necessaryIronPlayers;
diamondPlayers = stym.necessaryDiamondPlayers;
}
@Override
public boolean onCommand(CommandSender sender, Command command,
String label, String[] arguments) {
//Testing starts
sender.sendMessage("Player:" + " " + arguments[0]);
sender.sendMessage("Irons:" + " " + ironPlayers);
sender.sendMessage("Diamond:" + " " + diamondPlayers);
//Testing stops
if(arguments.length == 1) {
if(!ironPlayers.contains(arguments[0])
&& !diamondPlayers.contains(arguments[0])) {
sender.sendMessage(arguments[0] + " " + "is made out of"
+ " " + "leather!");
} else if(ironPlayers.contains(arguments[0])
&& !diamondPlayers.contains(arguments[0])) {
sender.sendMessage(arguments[0] + " " + "is made out of"
+ " " + "iron!");
} else if(!ironPlayers.contains(arguments[0])
&& diamondPlayers.contains(arguments[0])) {
sender.sendMessage(arguments[0] + " " + "is made out of"
+ " " + "diamond!");
} else {
sender.sendMessage("Tell Krischon, that he has messed up!");
}
} else {
sender.sendMessage("Wrong usage!");
}
return true;
}
}
plugin.yml:
name: Stym
main: Stym
version: 1.3.3.7
commands:
group:
config.yml:
groups:
iron: Player, Another_Player
diamond: Rich_Player
控制檯輸出:
堆棧跟蹤:
[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)
我們能不能請參閱樣的錯誤你在控制檯收到(包括STRACK跟蹤等)? –
@AdrianSohn發佈更新。 – Reum12
'onCommand'中的'arguments'是空的 –