Помогите Проверка сообщения на наличие строки

  • Автор темы Автор темы Fan_
  • Дата начала Дата начала

Fan_

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
Fan_V
Привет, хочу сделать такую штуку чтоб если игрок отправляет сообщение и в нем содержится определенная строка то действие отменяется. Но почему-то не отменяется

Код:
  @EventHandler
  public void onChat(AsyncPlayerChatEvent event)
  {
     Player p = event.getPlayer();
    String newMessage = event.getMessage().replace(":)", "☺").replace(">:)", "ಠ‿ಠ").replace(">:)", "ಠ‿ಠ").replace(";-;", "ಥ﹏ಥ").replace(":I", "☺").replace(":3", "°ω°").replace("l:", "°ﺑ°").replace(":D", "ᐛ").replace(":I", "☺");

    event.setMessage(newMessage);
    if(event.getMessage().contains(":255") || event.getMessage().contains("mc.") || event.getMessage().contains("play.") || event.getMessage().contains("школо") || event.getMessage().contains(".ru") || event.getMessage().contains(".fun") || event.getMessage().contains("fun") || event.getMessage().contains("188."))  {
        event.setCancelled(true);
        
    }
  }
 
event.getRecipients().clear();
 
https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/event/player/AsyncPlayerChatEvent.html
Почитай, событие может быть как асинхронным так и синхронным, по этому может не отменятся
Может оно преспокойно отменяться.
Привет, хочу сделать такую штуку чтоб если игрок отправляет сообщение и в нем содержится определенная строка то действие отменяется. Но почему-то не отменяется

Код:
  @EventHandler
  public void onChat(AsyncPlayerChatEvent event)
  {
     Player p = event.getPlayer();
    String newMessage = event.getMessage().replace(":)", "☺").replace(">:)", "ಠ‿ಠ").replace(">:)", "ಠ‿ಠ").replace(";-;", "ಥ﹏ಥ").replace(":I", "☺").replace(":3", "°ω°").replace("l:", "°ﺑ°").replace(":D", "ᐛ").replace(":I", "☺");

    event.setMessage(newMessage);
    if(event.getMessage().contains(":255") || event.getMessage().contains("mc.") || event.getMessage().contains("play.") || event.getMessage().contains("школо") || event.getMessage().contains(".ru") || event.getMessage().contains(".fun") || event.getMessage().contains("fun") || event.getMessage().contains("188."))  {
        event.setCancelled(true);
       
    }
  }
Уверен, что событие априори вызывается? Заменяются ли смайлы в чате?
 
Привет, хочу сделать такую штуку чтоб если игрок отправляет сообщение и в нем содержится определенная строка то действие отменяется. Но почему-то не отменяется

Код:
  @EventHandler
  public void onChat(AsyncPlayerChatEvent event)
  {
     Player p = event.getPlayer();
    String newMessage = event.getMessage().replace(":)", "☺").replace(">:)", "ಠ‿ಠ").replace(">:)", "ಠ‿ಠ").replace(";-;", "ಥ﹏ಥ").replace(":I", "☺").replace(":3", "°ω°").replace("l:", "°ﺑ°").replace(":D", "ᐛ").replace(":I", "☺");

    event.setMessage(newMessage);
    if(event.getMessage().contains(":255") || event.getMessage().contains("mc.") || event.getMessage().contains("play.") || event.getMessage().contains("школо") || event.getMessage().contains(".ru") || event.getMessage().contains(".fun") || event.getMessage().contains("fun") || event.getMessage().contains("188."))  {
        event.setCancelled(true);
      
    }
  }
Покажи как вызываешь и в общем сам класс + работает ли плагин
 
Назад
Верх