Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Стартап /del

Статус
Закрыто для дальнейших ответов.

ShitCoder

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
TheLastGapple
del
 
Последнее редактирование:
/del
 
Последнее редактирование:
/del
 
Последнее редактирование:
/del
 
Последнее редактирование:
Код:
        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);
                }
            }
            }
не работает
А ты сделай проверку, есть ли вообще этот args[1], ведь игрок тупо может не вводить второй аргумент.
 
/del
 
Последнее редактирование:
Код:
          if(number != null && number.equals("1")) {
Так?
Ну нет, что-то такое:
Код:
if(args.length <= 1 || args.length >= 3) {
    sender.sendMessage("Usage: /mycommand help me");
    return true;
}
Этот вариант пойдет, только если команда должна работать именно с двумя аргументами.
 
/del
 
Последнее редактирование:
Код:
        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);
                }
            }
С таким кодом работает, но когда вводишь допустим /quests dasdsad asdsad - выводит An internal error occured while attempting to perform this command
Ошибку в консоли кидай тогда.
 
/del
 
Последнее редактирование:
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-
Нужно проверку было поставить перед String number = args[1].... То есть:
Код:
        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);
                }
            }
 
Статус
Закрыто для дальнейших ответов.

Поделиться этой страницей

Назад
Верх