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

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

Discussion in 'Разработка плагинов для новичков' started by Rbiter, Feb 4, 2016.

Thread Status:
Not open for further replies.
  1. Автор темы
    Rbiter

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

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

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


    Code:
    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;
    }
    
    Заработает ли? Просто сейчас нахожусь довольно далеко от дома и не могу проверить :(
     
    Last edited: Feb 4, 2016
  2. Хостинг MineCraft
    <
  3. LaoTheLizard

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

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

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

    Trophy Points:
    31
    Имя в Minecraft:
    Rbiter
    а от essentials можно как ни будь отключить стандартное сообщение, ну или скрыть?[DOUBLEPOST=1454589836,1454589357][/DOUBLEPOST]
    Code:
      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 Старожил Пользователь

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

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

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

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

    Trophy Points:
    31
    Имя в Minecraft:
    Rbiter

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

    Attached Files:

Thread Status:
Not open for further replies.

Share This Page