- Баллы
- 76
- Имя в Minecraft
- TheLastGapple
del
Последнее редактирование:
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
args[1]а можно ли как то сделать 2 аргумента? например /mission getreward first
А ты сделай проверку, есть ли вообще этот args[1], ведь игрок тупо может не вводить второй аргумент.не работаетКод:String number = args[1]; String arg = args[0]; if(arg.equals("reward")) { if(number.equals("mission")) { if(Main.instance.blocksConfig.getInt(String.valueOf(p.getName()) + ".DIRT") >= 10) { p.sendMessage("Вы выполнили миссию!"); Main.econ.depositPlayer(p.getName(), 5); } else { int dirt = 10 - Main.instance.blocksConfig.getInt(String.valueOf(p.getName()) + ".DIRT"); p.sendMessage("Вы ещё не выполнили условие! Вам осталось сломать: " + dirt); } } }
Ну нет, что-то такое:Так?Код:if(number != null && number.equals("1")) {
if(args.length <= 1 || args.length >= 3) {
sender.sendMessage("Usage: /mycommand help me");
return true;
}
Ошибку в консоли кидай тогда.С таким кодом работает, но когда вводишь допустим /quests dasdsad asdsad - выводит An internal error occured while attempting to perform this commandКод:if(cmd.getName().equals("quests")) { if(args.length == 0) { p.sendMessage("Сломать 100 блоков земли! / Прогресс: " + Main.instance.blocksConfig.getInt(String.valueOf(p.getName()) + ".DIRT") + "/100"); return true; } String number = args[1]; String arg = args[0]; if(args.length <= 1 || args.length >= 3) { p.sendMessage("Usage: /quests reward <number>"); return true; } if(arg.equals("reward")) if(number.equals("1")) if(Main.instance.blocksConfig.getInt(String.valueOf(p.getName()) + ".DIRT") >= 100) { p.sendMessage("Вы выполнили квест!"); } else { int dirt = 100 - Main.instance.blocksConfig.getInt(String.valueOf(p.getName()) + ".DIRT"); p.sendMessage("Вы ещё не выполнили условие! Вам осталось сломать: " + dirt); } }
Нужно проверку было поставить перед String number = args[1].... То есть:PHP:org.bukkit.command.CommandException: Unhandled exception executing command 'quests' in plugin PrisonQuests v0.1 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1162) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:997) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [spigot.jar:git-Spigot-db6de12-18fbb24] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_171] at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_171] at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot.jar:git-Spigot-db6de12-18fbb24] at java.lang.Thread.run(Unknown Source) [?:1.8.0_171] Caused by: java.lang.ArrayIndexOutOfBoundsException: 1 at ru.style.quests.Commands.onCommand(Commands.java:49) ~[?:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot.jar:git-
if(cmd.getName().equals("quests")) {
if(args.length == 0) {
p.sendMessage("Сломать 100 блоков земли! / Прогресс: " + Main.instance.blocksConfig.getInt(String.valueOf(p.getName()) + ".DIRT") + "/100");
return true;
}
if(args.length <= 1 || args.length >= 3) {
p.sendMessage("Usage: /quests reward <number>");
return true;
}
String number = args[1];
String arg = args[0];
if(arg.equals("reward"))
if(number.equals("1"))
if(Main.instance.blocksConfig.getInt(String.valueOf(p.getName()) + ".DIRT") >= 100) {
p.sendMessage("Вы выполнили квест!");
}
else {
int dirt = 100 - Main.instance.blocksConfig.getInt(String.valueOf(p.getName()) + ".DIRT");
p.sendMessage("Вы ещё не выполнили условие! Вам осталось сломать: " + dirt);
}
}
лучше сравнивать подкоманды через equalsIgnoreCaseВместо:
number == "getreward"
Напиши
number.equals("getreward")
Лучше их вообще делать в отдельных классах.лучше сравнивать подкоманды через equalsIgnoreCase