Plugins 在minecraft上的插件中发送错误消息的代码

Plugins 在minecraft上的插件中发送错误消息的代码,plugins,minecraft,Plugins,Minecraft,我正在开发插件,但当玩家在游戏中执行命令时,“发送者”会发送四条相同的消息 @EventHandler public void oncmd(PlayerCommandEvent预处理){ 列表块=数组。asList(“:”); block.forEach(全部->{ 如果(e.getMessage().toLowerCase().contains)(all.toLowerCase()){ e、 getPlayer().sendMessage(§8[§系统§8]§cYou不能使用此命令!”);

我正在开发插件,但当玩家在游戏中执行命令时,“发送者”会发送四条相同的消息

@EventHandler
public void oncmd(PlayerCommandEvent预处理){
列表块=数组。asList(“:”);
block.forEach(全部->{
如果(e.getMessage().toLowerCase().contains)(all.toLowerCase()){
e、 getPlayer().sendMessage(§8[§系统§8]§cYou不能使用此命令!”);
e、 setCancelled(真);
}
});
}

您可以使用不允许的字符创建字符数组。之后,您可以使用一个简单的for循环来迭代所有元素。在此循环内部,您现在可以检查命令是否包含此字符。

使用for each循环,而不是调用
forEach
函数。这将允许您添加一个
break
语句,该语句将在找到第一个坏字符后结束循环:

      @EventHandler
  public void oncmd(PlayerCommandPreprocessEvent e) {

      List<String> block = Arrays.asList(":");

      for(String all : block) {

         if(e.getMessage().toLowerCase().contains(all.toLowerCase())) {
             e.getPlayer().sendMessage("§8[§aSystem§8] §cYou can't use this command!");
             e.setCancelled(true);
             break;
         }
      }

  }
      @EventHandler
  public void oncmd(PlayerCommandPreprocessEvent e) {

      List<String> block = Arrays.asList(":");

      for(String all : block) {

         if(e.getMessage().toLowerCase().contains(all.toLowerCase())) {
             e.getPlayer().sendMessage("§8[§aSystem§8] §cYou can't use this command!");
             e.setCancelled(true);
             break;
         }
      }

  }
      @EventHandler
  public void oncmd(PlayerCommandPreprocessEvent e) {

      List<String> block = Arrays.asList(":");

      if(block.stream().anyMatch(all -> e.getMessage().toLowerCase().contains(all.toLowerCase()))) {

         e.getPlayer().sendMessage("§8[§aSystem§8] §cYou can't use this command!");
         e.setCancelled(true);
      }

  }