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

Помогите Не работает onCommand()

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

  1. Автор темы
    Featixy

    Featixy Участник

    Trophy Points:
    31
    Код:
    Code:
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
            Player player = (Player) sender;
            if(commandLabel.equalsIgnoreCase("sendme")){
                player.sendMessage(ChatColor.GOLD + "Sent");
            }
            return false;
        }
     
  2. Хостинг MineCraft
    <
  3. CoolBoy

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

    Trophy Points:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Ну, с самого главного? В майн классе метод onEnable() существует? Ваш класс, где расположена команда зарегестрирована в onEnable()?
    После наследования Player к sender'у у вас могут возникнуть некоторые неприятности с консолью.
    Ну и напоследок, не эксперементировал с commandLabel (как-то до этого не доходило), но что-то мне подсказывает что так команда не исполнится. И да, в plugin.yml ваша команда зарегестрирована?
     
  4. Dereku

    Dereku Старожил

    Trophy Points:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Code:
    //Данный метод работает только в классах, которые либо расширяют JavaPlugin, либо наследуют CommandExecutor
    public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
        Player player = (Player) sender; //Не проверяем sender'a на игрока
        if(commandLabel.equalsIgnoreCase("sendme")){ //Мда.
            player.sendMessage(ChatColor.GOLD + "Sent");
        }
        return false; //И в итоге команда у нас никогда не выполнена.
    }
    Кек.
     
  5. CraftCoder

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

    Trophy Points:
    108
    Имя в Minecraft:
    CraftCoderr
    Во-первых раширяет == наследует. Во-вторых CommandExecutor нельзя наследовать, его можно реализовывать (implementation - (рус. реализация)).
     
  6. Dereku

    Dereku Старожил

    Trophy Points:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Бял, как обычно всё путаю. Спасибки за исправления.
     
  7. Автор темы
    Featixy

    Featixy Участник

    Trophy Points:
    31
    Забыл в plugin.yml записать. Спасибо. Всё работает, без регистрации в onEnable() - она нужна? И как её сделать?
     
  8. CoolBoy

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

    Trophy Points:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Ну, как бы:
    Code:
    public void on Enable()
    {
        getCommand("твоя команда тут").setExecutor(new "твой ексекутор тут")(this));
    }
     

Share This Page