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

  • Автор темы Автор темы Featixy
  • Дата начала Дата начала

Featixy

Участник
Баллы
31
Код:
Код:
    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;
    }
 
Код:
Код:
    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;
    }
Ну, с самого главного? В майн классе метод onEnable() существует? Ваш класс, где расположена команда зарегестрирована в onEnable()?
После наследования Player к sender'у у вас могут возникнуть некоторые неприятности с консолью.
Ну и напоследок, не эксперементировал с commandLabel (как-то до этого не доходило), но что-то мне подсказывает что так команда не исполнится. И да, в plugin.yml ваша команда зарегестрирована?
 
Java:
//Данный метод работает только в классах, которые либо расширяют 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; //И в итоге команда у нас никогда не выполнена.
}
Кек.
 
Java:
//Данный метод работает только в классах, которые либо расширяют 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; //И в итоге команда у нас никогда не выполнена.
}
Кек.
Во-первых раширяет == наследует. Во-вторых CommandExecutor нельзя наследовать, его можно реализовывать (implementation - (рус. реализация)).
 
Во-первых раширяет == наследует. Во-вторых CommandExecutor нельзя наследовать, его можно реализовывать (implementation - (рус. реализация)).
Бял, как обычно всё путаю. Спасибки за исправления.
 
Ну, с самого главного? В майн классе метод onEnable() существует? Ваш класс, где расположена команда зарегестрирована в onEnable()?
После наследования Player к sender'у у вас могут возникнуть некоторые неприятности с консолью.
Ну и напоследок, не эксперементировал с commandLabel (как-то до этого не доходило), но что-то мне подсказывает что так команда не исполнится. И да, в plugin.yml ваша команда зарегестрирована?
Забыл в plugin.yml записать. Спасибо. Всё работает, без регистрации в onEnable() - она нужна? И как её сделать?
 
Забыл в plugin.yml записать. Спасибо. Всё работает, без регистрации в onEnable() - она нужна? И как её сделать?
Ну, как бы:
Java:
public void on Enable()
{
    getCommand("твоя команда тут").setExecutor(new "твой ексекутор тут")(this));
}
 
Назад
Верх