From 3d5a48dabc20f754789905f322e13158cd1217a7 Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Wed, 28 Jul 2021 21:57:00 +0200 Subject: [PATCH] Added HARDCODED messages WHICH SHOULD BE IN CONFIG to alert the user their message was blocked and alert staff a message was blocked and what that message was. --- .../com/alttd/chat/listeners/ChatListener.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/galaxy/src/main/java/com/alttd/chat/listeners/ChatListener.java b/galaxy/src/main/java/com/alttd/chat/listeners/ChatListener.java index 5906a0c..f3d5885 100755 --- a/galaxy/src/main/java/com/alttd/chat/listeners/ChatListener.java +++ b/galaxy/src/main/java/com/alttd/chat/listeners/ChatListener.java @@ -13,6 +13,7 @@ import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.Template; import net.kyori.adventure.text.serializer.plain.PlainComponentSerializer; +import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -20,6 +21,7 @@ import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; +import java.util.Objects; public class ChatListener implements Listener, ChatRenderer { @@ -34,13 +36,25 @@ public class ChatListener implements Listener, ChatRenderer { Component input = event.message(); String message = PlainComponentSerializer.plain().serialize(input); + MiniMessage miniMessage = MiniMessage.get(); + message = RegexManager.replaceText(message); // todo a better way for this if(message == null) { event.setCancelled(true); + Bukkit.getOnlinePlayers().forEach(a ->{ + Component blockedNotification = miniMessage.parse("[Language] " + + Objects.requireNonNull(player.getCustomName()) + " tried to say: " + + PlainComponentSerializer.plain().serialize(input) + ""); + if (a.hasPermission("chat.alert-blocked")) { + a.sendMessage(blockedNotification);//TODO make configurable + } + }); + player.sendMessage(miniMessage.parse("The language you used in your message is not allowed, " + + "this constitutes as your only warning. Any further attempts at bypassing the filter will result in staff intervention.")); return; // the message was blocked } - MiniMessage miniMessage = MiniMessage.get(); + if(!player.hasPermission("chat.format")) { message = miniMessage.stripTokens(message); }