1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем ZiEnTenIn, 16 фев 2022.

Метки:
Статус темы:
Закрыта.
  1. Автор темы
    ZiEnTenIn

    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;
        }
    }
    
     
  2. ZDCoder

    ZDCoder Активный участник Пользователь

    Баллы:
    76
    Как ты команду регаешь ?... Это что такое вообще ?
     
  3. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Вот так сделай.
    Код:
        @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;
            }
        }
    
     
    Последнее редактирование: 17 фев 2022
  4. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    По идее при return false ядро само должно usage отправлять. Почему не отправляет - ХЗ. Надо код смотреть.
    Но как временное решение sendMessage() сойдёт, да
     
  5. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Ну потому что собственный класс регистрируем и реализацию execute нужно самому написать.
     
    Последнее редактирование: 17 фев 2022
  6. Автор темы
    ZiEnTenIn

    ZiEnTenIn Активный участник Пользователь

    Баллы:
    61
    Благодарю.
     
Статус темы:
Закрыта.

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