Команда/группа должна выводить группу данного игрока. Игроки сохраняются внутри config.yml. Когда я выполняю эту команду, все, что я получаю, является необработанным исключением. Это не дает мне ничего конкретного. Я не знаю, если это вызвано тем фактом, что я неправильно использую внешние классы. Я добавил простой метод sendMessage(), чтобы доказать, что переменная не вызывает исключения. Я довольно новичок в Java. Возможно, StackOverflow может помочь.Bukkit - Необработанное исключение
Stym.java (Main):
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
Консоль вывода:
StackTrace:
[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
'arguments' пуст в' onCommand' –