1) Не надо проверять пермиты на команду в коде команды.
Потому что это конфигурякается в plugin.yml.
Проверку пермитов нужно делать только при сложной логике.
Если вы видели такой подход в туториалах -
забудьте, эта проверка лишняя.
2) Не надо проверять название команды.
Потому что это тоже конфигурякается в plugin.yml.
Имя команды и ее алиасы задаются в конфиге. Если код исполняется, значит он вызван по вашей команде или по алиасу.
Проверку имени команды надо делать только в случаях:
- если вам нужно отличать название команды или алиасов, что не требуется в 99% случаев.
- если вы говнокодите и вешаете один и тот же обработчик на две разных команды.
- если вы используете два разных инстанса одного класса как обработчики двух разных команд. Но тогда поведение должно зависеть от свойств инстанса, а не от названия команды.
Если вы видели такой подход в туториалах -
забудьте, эта проверка лишняя.
3) Player p = (Player) sender;
Всегда предусматривайте возможность того, что команду может исполнить не только игрок.
А вот тут точно нужна проверка класса. Или, если любите говнокодить, то try-catch
Простой вариант:
Код:
if (!(sender instanceof Player) return false)
4) public boolean onTest
Всё-таки
onCommand
И метод всегда должен возвращать булево:
true - наша команда отработала как надо, все ок.
false - произошла ошибка. Sender автоматически получит сообщение со справкой о команде.