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

Помогите Не возвращается usage при return false

Метки:
Теги Теги
bukkit java
Статус
Закрыто для дальнейших ответов.

ZiEnTenIn

Активный участник
Пользователь
Баллы
61
Использовал код alexandrage http://rubukkit.org/threads/registriruem-komandy-bez-zapisi-v-plugin-yml.134239/ для регистрации команд.
Но возникла проблема, игроку не возвращается usage, когда я возвращаю false из executor'а.

Main:
Код:
String[] commands = getConfig().getString("private.commands").split(",");
for(int i = 0; i < commands.length; i++) {
    CommandRegister.reg(this, new Private(this), new String[] { commands[i].trim() }, "Send private message.", "Use /" + commands[I].trim() + " <recipient> <message>");
}

Private:
Код:
public class Private implements CommandExecutor {
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        //... govnocode
        if() {
            // еще куча if
            return true;
        }
        return false;
    }
}
 
Как ты команду регаешь ?... Это что такое вообще ?
 
Использовал код alexandrage http://rubukkit.org/threads/registriruem-komandy-bez-zapisi-v-plugin-yml.134239/ для регистрации команд.
Но возникла проблема, игроку не возвращается usage, когда я возвращаю false из executor'а.

Main:
Код:
String[] commands = getConfig().getString("private.commands").split(",");
for(int i = 0; i < commands.length; i++) {
    CommandRegister.reg(this, new Private(this), new String[] { commands[i].trim() }, "Send private message.", "Use /" + commands[I].trim() + " <recipient> <message>");
}

Private:
Код:
public class Private implements CommandExecutor {
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        //... govnocode
        if() {
            // еще куча if
            return true;
        }
        return false;
    }
}
Вот так сделай.
Код:
    @Override
    public boolean execute(CommandSender sender, String label, String[] args) {
        if (!this.testPermission(sender)) {
            return true;
        }
        if (this.owner.onCommand(sender, this, label, args)) {
            return true;
        } else {
            sender.sendMessage(this.usageMessage);
            return false;
        }
    }
 
Последнее редактирование:
Вот так сделай.
Код:
    @Override
    public boolean execute(CommandSender sender, String label, String[] args) {
        if (!this.testPermission(sender)) {
            return true;
        }
        if (this.owner.onCommand(sender, this, label, args)) {
            return true;
        } else {
            sender.sendMessage(this.usageMessage);
            return false;
        }
    }
По идее при return false ядро само должно usage отправлять. Почему не отправляет - ХЗ. Надо код смотреть.
Но как временное решение sendMessage() сойдёт, да
 
По идее при return false ядро само должно usage отправлять. Почему не отправляет - ХЗ. Надо код смотреть.
Но как временное решение sendMessage() сойдёт, да
Ну потому что собственный класс регистрируем и реализацию execute нужно самому написать.
 
Последнее редактирование:
Вот так сделай.
Код:
    @Override
    public boolean execute(CommandSender sender, String label, String[] args) {
        if (!this.testPermission(sender)) {
            return true;
        }
        if (this.owner.onCommand(sender, this, label, args)) {
            return true;
        } else {
            sender.sendMessage(this.usageMessage);
            return false;
        }
    }
Благодарю.
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх