Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

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

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

    Rbiter Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    Rbiter
    Суть: Если игрок ввел команду money то ему выдается сообщение тип: ваш баланс 1000$. Эту же команду исп Essentials. Так вот нужно седлать так что бы при вводе команды /money скрывалось сообщение от essentials а отображалось сообщение плагина.

    Надеюсь описал понятно)


    Код:
    public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
        if(cmd.getName().equalsIgnoreCase("money")){
                    sender.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + " " + this.YouHaveMoneyMSG + ChatColor.GREEN + this.money + ChatColor.RESET + this.VaultSimvol));
            return true;
        }
        return false;
    }
    
    Заработает ли? Просто сейчас нахожусь довольно далеко от дома и не могу проверить :(
     
    Последнее редактирование: 4 фев 2016
  2. Хостинг MineCraft
    <
  3. LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    Нет, это не то. Тебе нужен эвент PlayerCommandPreprocessEvent. Обработать и отменить, чтоб Essentials не рыпался.
     
  4. Автор темы
    Rbiter

    Rbiter Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    Rbiter
    а от essentials можно как ни будь отключить стандартное сообщение, ну или скрыть?[DOUBLEPOST=1454589836,1454589357][/DOUBLEPOST]
    Код:
      public void onMoneyCommand(PlayerCommandPreprocessEvent event) {
            if(event.getMessage().startsWith("/money") {
                sender.sendMessage(ChatColor.translateAlternateColorCodes('&', prefix + " " + this.YouHaveMoneyMSG + ChatColor.GREEN + this.money + ChatColor.RESET + this.VaultSimvol));
            }
        }
    Примерно так?
     
  5. LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    Да. И после выполнения твоего кода нужно отменить команду так, я думаю: event.setCanceled(true);
     
  6. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Всё зависит от того, кто позднее выставит на команду свой экзекутор.
     
  7. Автор темы
    Rbiter

    Rbiter Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    Rbiter

    Щя на облаке нашел исходники плагина (бэкап делал :В) и на планшете запустил (он на Windows 10). Все пашет)
    Вместо сообщений о состоянии баланса поставил сообщение о убийстве паука :D... Спасиб, все пашет)
     

    Вложения:

Статус темы:
Закрыта.

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