From 7603bc0db6274a44d96bedfc7bef271b72689509 Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Thu, 29 Jul 2021 03:18:18 +0200 Subject: [PATCH] Send proper messages when blocking a message --- .../java/com/alttd/chat/util/Utility.java | 22 +++++++++++ .../com/alttd/chat/handler/ChatHandler.java | 38 +++++++++++-------- .../alttd/chat/listeners/ChatListener.java | 15 +------- .../alttd/chat/listeners/PlayerListener.java | 5 +++ 4 files changed, 51 insertions(+), 29 deletions(-) diff --git a/api/src/main/java/com/alttd/chat/util/Utility.java b/api/src/main/java/com/alttd/chat/util/Utility.java index dc10a3c..329be80 100755 --- a/api/src/main/java/com/alttd/chat/util/Utility.java +++ b/api/src/main/java/com/alttd/chat/util/Utility.java @@ -6,9 +6,12 @@ import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.TextColor; import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; +import net.kyori.adventure.text.serializer.plain.PlainComponentSerializer; import net.luckperms.api.LuckPerms; import net.luckperms.api.model.group.Group; import net.luckperms.api.model.user.User; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; import java.awt.*; import java.util.ArrayList; @@ -169,4 +172,23 @@ public class Utility { : miniMessage.parse(stringBuilder.toString()); } + + public static void sendBlockedNotification(String prefix, Player player, String input, String target) { + MiniMessage miniMessage = MiniMessage.get(); + Bukkit.getOnlinePlayers().forEach(a ->{ + Component blockedNotification = miniMessage.parse("[" + prefix + "] " + + getDisplayName(player.getUniqueId()) + + (target.isEmpty() ? " tried to say: " : " -> " + target + ": ") + + input + ""); + if (a.hasPermission("chat.alert-blocked")) { + a.sendMessage(blockedNotification);//TODO make configurable (along with all the messages) + } + }); + 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.")); + } + + public static void sendBlockedNotification(String prefix, Player player, Component input, String target) { + sendBlockedNotification(prefix, player, PlainComponentSerializer.plain().serialize(input), target); + } } diff --git a/galaxy/src/main/java/com/alttd/chat/handler/ChatHandler.java b/galaxy/src/main/java/com/alttd/chat/handler/ChatHandler.java index 89d7471..fc4c3f5 100755 --- a/galaxy/src/main/java/com/alttd/chat/handler/ChatHandler.java +++ b/galaxy/src/main/java/com/alttd/chat/handler/ChatHandler.java @@ -38,18 +38,21 @@ public class ChatHandler { public void privateMessage(Player player, String target, String message) { ChatUser user = ChatUserManager.getChatUser(player.getUniqueId()); user.setReplyTarget(target); - message = RegexManager.replaceText(message); // todo a better way for this - if(message == null) return; // the message was blocked - - if(!player.hasPermission("chat.format")) { - message = miniMessage.stripTokens(message); + String updatedMessage = RegexManager.replaceText(message); // todo a better way for this + if(updatedMessage == null) { + Utility.sendBlockedNotification("DM Language", player, message, target); + return; // the message was blocked } - if(message.contains("[i]")) - message = message.replace("[i]", "<[i]>"); + if(!player.hasPermission("chat.format")) { + updatedMessage = miniMessage.stripTokens(updatedMessage); + } + + if(updatedMessage.contains("[i]")) + updatedMessage = updatedMessage.replace("[i]", "<[i]>"); List