diff --git a/build.gradle b/build.gradle index a77776e8..e9d8510e 100644 --- a/build.gradle +++ b/build.gradle @@ -278,7 +278,7 @@ dependencies { } embed "gg.essential:loader-launchwrapper:1.0.2" - implementation "gg.essential:Essential:1229-${mcVersion}-SNAPSHOT" + implementation "gg.essential:essential-1.8.9-forge:1270" // FG already adds this even though it is not available at runtime, so we need to manually list it to bundle it if (VANILLA) { diff --git a/src/main/java/club/sk1er/hytilities/handlers/chat/modules/blockers/MvpEmotesRemover.java b/src/main/java/club/sk1er/hytilities/handlers/chat/modules/blockers/MvpEmotesRemover.java index c5694696..d84b46c7 100644 --- a/src/main/java/club/sk1er/hytilities/handlers/chat/modules/blockers/MvpEmotesRemover.java +++ b/src/main/java/club/sk1er/hytilities/handlers/chat/modules/blockers/MvpEmotesRemover.java @@ -22,6 +22,7 @@ import club.sk1er.hytilities.handlers.chat.ChatReceiveModule; import club.sk1er.hytilities.handlers.language.LanguageData; import net.minecraft.util.ChatComponentText; +import net.minecraft.util.IChatComponent; import net.minecraftforge.client.event.ClientChatReceivedEvent; import org.jetbrains.annotations.NotNull; @@ -33,9 +34,16 @@ public void onMessageReceived(@NotNull ClientChatReceivedEvent event) { final LanguageData language = getLanguage(); Matcher matcher = language.chatCleanerMvpEmotesRegex.matcher(event.message.getFormattedText()); if (matcher.find(0)) { - event.message = new ChatComponentText(event.message.getFormattedText().replaceAll( - language.chatCleanerMvpEmotesRegex.pattern(), "") - ); + IChatComponent message = event.message; + String cleaned = event.message.getFormattedText().replaceAll( + language.chatCleanerMvpEmotesRegex.pattern(), "§r"); + ChatComponentText copy = (ChatComponentText) new ChatComponentText(message.getUnformattedTextForChat()).setChatStyle(message.getChatStyle()); + for (IChatComponent sibling : message.getSiblings()) { + if (cleaned.contains(sibling.getFormattedText())) { + copy.appendSibling(sibling); + } + } + event.message = copy; } } diff --git a/src/main/java/club/sk1er/hytilities/handlers/language/LanguageData.java b/src/main/java/club/sk1er/hytilities/handlers/language/LanguageData.java index 82fec449..66a6af1a 100644 --- a/src/main/java/club/sk1er/hytilities/handlers/language/LanguageData.java +++ b/src/main/java/club/sk1er/hytilities/handlers/language/LanguageData.java @@ -45,7 +45,7 @@ public class LanguageData { private String chatCleanerGameAnnouncement = "^\u27A4 A .+ game is (?:available to join|starting in .+ seconds)! CLICK HERE to join!$"; private String chatCleanerBedwarsPartyAdvertisement = "(?[1-3]/[2-4])"; private String chatCleanerConnectionStatus = "^(?:Friend|Guild) > (?\\w{1,16}) (?:joined|left)\\.$"; - private String chatCleanerMvpEmotes = "\u00a7r\u00a7(?:c\u2764|6\u272e|a\u2714|c\u2716|b\u2615|e\u279c|e\u00af\\\\_\\(\u30c4\\)_/\u00af|c\\(\u256F\u00B0\u25A1\u00B0\uFF09\u256F\u00a7r\u00a7f\uFE35\u00a7r\u00a77 \u253B\u2501\u253B|d\\( \uFF9F\u25E1\uFF9F\\)/|a1\u00a7r\u00a7e2\u00a7r\u00a7c3|b\u2609\u00a7r\u00a7e_\u00a7r\u00a7b\u2609|e\u270E\u00a7r\u00a76\\.\\.\\.|a\u221A\u00a7r\u00a7e\u00a7l\\(\u00a7r\u00a7a\u03C0\u00a7r\u00a7a\u00a7l\\+x\u00a7r\u00a7e\u00a7l\\)\u00a7r\u00a7a\u00a7l=\u00a7r\u00a7c\u00a7lL|e@\u00a7r\u00a7a'\u00a7r\u00a7e-\u00a7r\u00a7a'|6\\(\u00a7r\u00a7a0\u00a7r\u00a76\\.\u00a7r\u00a7ao\u00a7r\u00a7c\\?\u00a7r\u00a76\\)|b\u0F3C\u3064\u25D5_\u25D5\u0F3D\u3064|e\\(\u00a7r\u00a7b'\u00a7r\u00a7e-\u00a7r\u00a7b'\u00a7r\u00a7e\\)\u2283\u00a7r\u00a7c\u2501\u00a7r\u00a7d\u2606\uFF9F\\.\\*\uFF65\uFF61\uFF9F|e\u2694|a\u270C|c\u00a7lOOF|e\u00a7l<\\('O'\\)>)\u00a7r"; + private String chatCleanerMvpEmotes = "\u00A7r\u00A7(?:c\u2764|6\u272E|a\u2714|c\u2716|b\u2615|e\u279C|e\u00AF\\\\_\\(\u30C4\\)_/\u00AF|c\\(\u256F\u00B0\u25A1\u00B0\uFF09\u256F\u00A7r\u00A7f\uFE35\u00A7r\u00A77 \u253B\u2501\u253B|d\\( \uFF9F\u25E1\uFF9F\\)/|a1\u00A7r\u00A7e2\u00A7r\u00A7c3|b\u2609\u00A7r\u00A7e_\u00A7r\u00A7b\u2609|e\u270E\u00A7r\u00A76\\.\\.\\.|a\u221A\u00A7r\u00A7e\u00A7l\\(\u00A7r\u00A7a\u03C0\u00A7r\u00A7a\u00A7l\\+x\u00A7r\u00A7e\u00A7l\\)\u00A7r\u00A7a\u00A7l=\u00A7r\u00A7c\u00A7lL|e@\u00A7r\u00A7a'\u00A7r\u00A7e-\u00A7r\u00A7a'|6\\(\u00A7r\u00A7a0\u00A7r\u00A76\\.\u00A7r\u00A7ao\u00A7r\u00A7c\\?\u00A7r\u00A76\\)|b\u0F3C\u3064\u25D5_\u25D5\u0F3D\u3064|e\\(\u00A7r\u00A7b'\u00A7r\u00A7e-\u00A7r\u00A7b'\u00A7r\u00A7e\\)\u2283\u00A7r\u00A7c\u2501\u00A7r\u00A7d\u2606\uFF9F\\.\\*\uFF65\uFF61\uFF9F|e\u2694|a\u270C|c\u00A7lOOF|e\u00A7l<\\('O'\\)>|a\\^-\\^|a\\^_\\^|b\u2603|9\u30FD\u00A7r\u00A75\\(\u00A7r\u00A7d\u2310\u00A7r\u00A7c\u25A0\u00A7r\u00A76_\u00A7r\u00A7e\u25A0\u00A7r\u00A7b\\)\u00A7r\u00A73\u30CE\u00A7r\u00A79\u266C|d<\u00A7r\u00A7eo\u00A7r\u00A7d/|e= \u00A7r\u00A7b\uFF3E\u25CF \u22CF \u25CF\uFF3E\u00A7r\u00A7e =|a\u30FD \\(\u25D5\u25E1\u25D5\\) \uFF89|e\\(\u00A7r\u00A7a\u273F\u00A7r\u00A7e\u25E0\u203F\u25E0\\)|6\\(\u00A7r\u00A78\u30FB\u00A7r\u00A76\u229D\u00A7r\u00A78\u30FB\u00A7r\u00A76\\)|e\u30FD\\(\\^\u25C7\\^\\*\\)/|6\\(\u1D54\u1D25\u1D54\\))\u00A7r"; public String chatCleanerHypeLimit = " \u27A4 You have reached your Hype limit!"; private String chatGiftBlocker = "They have gifted \\d+ ranks so far!"; diff --git a/src/main/resources/languages/en.json b/src/main/resources/languages/en.json index 70286ab5..98cb9d3c 100644 --- a/src/main/resources/languages/en.json +++ b/src/main/resources/languages/en.json @@ -9,7 +9,7 @@ "chatCleanerGameAnnouncement": "^\u27A4 A .+ game is (?:available to join|starting in .+ seconds)! CLICK HERE to join!$", "chatCleanerBedwarsPartyAdvertisement": "(?[1-3]/[2-4])", "chatCleanerConnectionStatus": "^(?:Friend|Guild) > (?\\w{1,16}) (?:joined|left)\\.$", - "chatCleanerMvpEmotes": "\u00a7r\u00a7(?:c\u2764|6\u272e|a\u2714|c\u2716|b\u2615|e\u279c|e\u00af\\\\_\\(\u30c4\\)_/\u00af|c\\(\u256F\u00B0\u25A1\u00B0\uFF09\u256F\u00a7r\u00a7f\uFE35\u00a7r\u00a77 \u253B\u2501\u253B|d\\( \uFF9F\u25E1\uFF9F\\)/|a1\u00a7r\u00a7e2\u00a7r\u00a7c3|b\u2609\u00a7r\u00a7e_\u00a7r\u00a7b\u2609|e\u270E\u00a7r\u00a76\\.\\.\\.|a\u221A\u00a7r\u00a7e\u00a7l\\(\u00a7r\u00a7a\u03C0\u00a7r\u00a7a\u00a7l\\+x\u00a7r\u00a7e\u00a7l\\)\u00a7r\u00a7a\u00a7l=\u00a7r\u00a7c\u00a7lL|e@\u00a7r\u00a7a'\u00a7r\u00a7e-\u00a7r\u00a7a'|6\\(\u00a7r\u00a7a0\u00a7r\u00a76\\.\u00a7r\u00a7ao\u00a7r\u00a7c\\?\u00a7r\u00a76\\)|b\u0F3C\u3064\u25D5_\u25D5\u0F3D\u3064|e\\(\u00a7r\u00a7b'\u00a7r\u00a7e-\u00a7r\u00a7b'\u00a7r\u00a7e\\)\u2283\u00a7r\u00a7c\u2501\u00a7r\u00a7d\u2606\uFF9F\\.\\*\uFF65\uFF61\uFF9F|e\u2694|a\u270C|c\u00a7lOOF|e\u00a7l<\\('O'\\)>)\u00a7r", + "chatCleanerMvpEmotes": "\u00A7r\u00A7(?:c\u2764|6\u272E|a\u2714|c\u2716|b\u2615|e\u279C|e\u00AF\\\\_\\(\u30C4\\)_/\u00AF|c\\(\u256F\u00B0\u25A1\u00B0\uFF09\u256F\u00A7r\u00A7f\uFE35\u00A7r\u00A77 \u253B\u2501\u253B|d\\( \uFF9F\u25E1\uFF9F\\)/|a1\u00A7r\u00A7e2\u00A7r\u00A7c3|b\u2609\u00A7r\u00A7e_\u00A7r\u00A7b\u2609|e\u270E\u00A7r\u00A76\\.\\.\\.|a\u221A\u00A7r\u00A7e\u00A7l\\(\u00A7r\u00A7a\u03C0\u00A7r\u00A7a\u00A7l\\+x\u00A7r\u00A7e\u00A7l\\)\u00A7r\u00A7a\u00A7l=\u00A7r\u00A7c\u00A7lL|e@\u00A7r\u00A7a'\u00A7r\u00A7e-\u00A7r\u00A7a'|6\\(\u00A7r\u00A7a0\u00A7r\u00A76\\.\u00A7r\u00A7ao\u00A7r\u00A7c\\?\u00A7r\u00A76\\)|b\u0F3C\u3064\u25D5_\u25D5\u0F3D\u3064|e\\(\u00A7r\u00A7b'\u00A7r\u00A7e-\u00A7r\u00A7b'\u00A7r\u00A7e\\)\u2283\u00A7r\u00A7c\u2501\u00A7r\u00A7d\u2606\uFF9F\\.\\*\uFF65\uFF61\uFF9F|e\u2694|a\u270C|c\u00A7lOOF|e\u00A7l<\\('O'\\)>|a\\^-\\^|a\\^_\\^|b\u2603|9\u30FD\u00A7r\u00A75\\(\u00A7r\u00A7d\u2310\u00A7r\u00A7c\u25A0\u00A7r\u00A76_\u00A7r\u00A7e\u25A0\u00A7r\u00A7b\\)\u00A7r\u00A73\u30CE\u00A7r\u00A79\u266C|d<\u00A7r\u00A7eo\u00A7r\u00A7d/|e= \u00A7r\u00A7b\uFF3E\u25CF \u22CF \u25CF\uFF3E\u00A7r\u00A7e =|a\u30FD \\(\u25D5\u25E1\u25D5\\) \uFF89|e\\(\u00A7r\u00A7a\u273F\u00A7r\u00A7e\u25E0\u203F\u25E0\\)|6\\(\u00A7r\u00A78\u30FB\u00A7r\u00A76\u229D\u00A7r\u00A78\u30FB\u00A7r\u00A76\\)|e\u30FD\\(\\^\u25C7\\^\\*\\)/|6\\(\u1D54\u1D25\u1D54\\))\u00A7r", "chatCleanerHypeLimit": " \u27A4 You have reached your Hype limit!", "giftBlocker": "They have gifted \\d+ ranks so far!", "connectedServerConnectMessage": "^(You are currently connected to server \\S+)|(Sending you to \\S+.{3}!)$",