Java AsyncPlayerChatEvent setCancelled不';行不通 @EventHandler 公共无效onPlayerChat(AsyncPlayerChatEvent事件){ 字符串msg=event.getMessage(); List words=Main.plugin.getConfig().getStringList(“脏话”); for(int i=0;i

Java AsyncPlayerChatEvent setCancelled不';行不通 @EventHandler 公共无效onPlayerChat(AsyncPlayerChatEvent事件){ 字符串msg=event.getMessage(); List words=Main.plugin.getConfig().getStringList(“脏话”); for(int i=0;i,java,bukkit,Java,Bukkit,他确实给出了信息“你不允许骂人!”但他没有删除聊天信息我假设错误来自已取消的事件,因此我会在rgnt的评论旁边做另一件事,我也会忽略所有已取消的事件: 添加@EventHandler(priority=EventPriority.LOWEST,ignoreCancelled=true)使用事件优先级,@EventHandler(priority=EventPriority.LOWEST) @EventHandler public void onPlayerChat(Asy

他确实给出了信息“你不允许骂人!”但他没有删除聊天信息

我假设错误来自已取消的事件,因此我会在rgnt的评论旁边做另一件事,我也会忽略所有已取消的事件:


添加
@EventHandler(priority=EventPriority.LOWEST,ignoreCancelled=true)

使用事件优先级,
@EventHandler(priority=EventPriority.LOWEST)
      @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!");
              }
          }
      }