AsyncPlayerChatEvent setCancelled не работает

#java #bukkit

#java #bukkit

Вопрос:

       @EventHandler
      public void onPlayerChat(AsyncPlayerChatEvent event){
          String msg = event.getMessage();
          List<String> words = Main.plugin.getConfig().getStringList("swear-words");
          for(int i = 0; i < words.size(); i  ){
              if(msg.contains(words.get(i))){
                  event.setCancelled(true);
                  event.getPlayer().sendMessage("You are not allowed to swear!");
              }
          }
      }
  

он выдает сообщение «Вам не разрешено ругаться!», Но он не удаляет сообщение чата

Комментарии:

1. Используйте приоритет события, @EventHandler(priority = EventPriority.LOWEST)

Ответ №1:

Я предполагаю, что ошибка возникает из-за уже отмененного события, поэтому я бы сделал еще кое-что рядом с комментарием rgnt, я бы также проигнорировал все отмененные события:

Добавить @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)