Помогите Как проверить написали ли нужную команду?

  • Автор темы Автор темы ItsWay
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Видимо ты не совсем понимаешь, что такое читабельность кода. В данном случае мы помогли с 1 методом, я не могу знать, будет ли он использовать далее args, если будет, то вписывая его везде, получая его - уже будет нечитабельно.
В твоем случае уместно это делать, я не спорю, но в данном случае мы один раз обратились к массиву args, поэтому нет никакого смысла создавать для него отдельное поле. Если ему нужно будет, то он сам это поле и создаст, ты сам говоришь, что не знаешь, будет ли он дальше использовать его или нет.

Перфекционизм перфекционизмом, но давай предположим ситуацию, с плагином на баны. В чат спамят рекламой, а у модератора был включен капслок. Человек максимально быстро реагирует на нарушения, вводя, допустим "/BAN *nick*" И что же ему выдаст твой перфекционизм? Ошибку, верно. Речь идет не о перфекционизме в данный момент, а о работоспособности и универсальности плагина.
Ну, возможно, ты и прав.

Упрощу задачу более адекватным и понятным кодом.
Код:
@EventHandler
public void onCommand (PlayerCommandPreprocessEvent e) {
    Player p = e.getPlayer();
    String[] args = e.getMessage().split(" ");
    if(args.lenght !=0) {
         if(args[0].equalsIgnoreCase("комманда") {
             e.setCancelled(true);
         }
    }
}
Даже если взять твой "более адекватный код", то давай так:
1. В методе getMessage() возвращается команда со слешем, поэтому args.length не может быть пустым, следовательно, мы имеем лишнюю проверку.
2. Хоть создание поля args и будет понятнее новичку, но оно в данном конкретном случае бессмысленно, так как мы обращаемся к нему только один раз.
 
Последнее редактирование:
В твоем случае уместно это делать, я не спорю, но в данном случае мы один раз обратились к массиву args, поэтому нет никакого смысла создавать для него отдельное поле. Если ему нужно будет, то он сам это поле и создаст, ты сам говоришь, что не знаешь, будет ли он дальше использовать его или нет.


Ну, возможно, ты и прав.


Даже если взять твой "более адекватный код", то давай так:
1. В методе getMessage() возвращается команда со слешем, поэтому args.length не может быть пустым, следовательно, мы имеем лишнюю проверку.
2. Хоть создание поля args и будет понятнее новичку, но оно в данном конкретном случае бессмысленно, так как мы обращаемся к нему только один раз.

Урыл получается) Но всеже, мы не знаем, что будет дальше у него в коде, вдруг он снова будет юзать args)
 
Можешь вот так:
Код:
    @EventHandler
    public void onStartCommands(PlayerCommandPreprocessEvent e) {
        Player p = e.getPlayer();

        if (e.getMessage().toLowerCase().startsWith("/start")) { // Если команда /start то
               p.sendMessage("Ого, ты написал команду /start");
        }
    }
ну так не работает.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх