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

Помогите Перехват команды

Iggi

Старожил
Пользователь
Баллы
103
Имя в Minecraft
iggi666
Всем привет. Нужно блокировать команду /rg addowner. Удалить ее из прав не предлагайте, нужно, чтобы выводилось сообщение.
Кое-что я наклепал, но тут не понятно - что писать в plugin.yml, чтобы блокировать не всю ветку команд. Была идея выпилить команду из самого WG. Но там в plugin.yml их почему-то нет.
Код:
@Override
  public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  if((command.getName().equalsIgnoreCase("rg") || command.getName().equalsIgnoreCase("region")) && args[0].equalsIgnoreCase("addowner")){
 sender.sendMessage(ChatColor.DARK_RED + "Внимание! Из-за частых случаев кражи домов данная команда запрещена.");
         sender.sendMessage(ChatColor.DARK_RED + "Рекомендуется добавлять в мемберов (/rg addmember)");
         return true;
  }
  return false;
  }
 
Лови ее эвентом. PlayerCommandPreprocessEvent исполняется перед выполнением команды.

Спасибо, я попробую.
Лови ее эвентом. PlayerCommandPreprocessEvent исполняется перед выполнением команды.
Можете еще подсказать? Поскольку команды каждый раз разные (в зависимости от названия региона), то, как я понял, надо действовать через IndexOf.
Прочитал, что если IndexOf не находит строку, то возвращает -1.
В моем случае ничего не работает, ни
event.getMessage().indexOf("addowner") != -1;
ни
event.getMessage().indexOf("addowner") > 0;
 
Спасибо, я попробую.

Можете еще подсказать? Поскольку команды каждый раз разные (в зависимости от названия региона), то, как я понял, надо действовать через IndexOf.
Прочитал, что если IndexOf не находит строку, то возвращает -1.
В моем случае ничего не работает, ни
event.getMessage().indexOf("addowner") != -1;
ни
event.getMessage().indexOf("addowner") > 0;
советы говнокодера​
Можно засплитить event.getMessage() и уже сверять второе значение с "addowner"
 
Спасибо, я попробую.

Можете еще подсказать? Поскольку команды каждый раз разные (в зависимости от названия региона), то, как я понял, надо действовать через IndexOf.
Прочитал, что если IndexOf не находит строку, то возвращает -1.
В моем случае ничего не работает, ни
event.getMessage().indexOf("addowner") != -1;
ни
event.getMessage().indexOf("addowner") > 0;

Я ловлю обычно так: event.getMessage().startsWith ("/rg addowner")
 

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

Назад
Верх