diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-04-30 17:59:50 -0400 |
---|---|---|
committer | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-04-30 17:59:50 -0400 |
commit | 88ff7afb7e6ab60f384e571d378b76f52ed3dfbd (patch) | |
tree | c16612751b621064b434922945820cc6cea794f7 /src/main/java/de | |
parent | 4fe76a3341356390fa5a4012c83062ca00bd5635 (diff) | |
download | Skyblocker-88ff7afb7e6ab60f384e571d378b76f52ed3dfbd.tar.gz Skyblocker-88ff7afb7e6ab60f384e571d378b76f52ed3dfbd.tar.bz2 Skyblocker-88ff7afb7e6ab60f384e571d378b76f52ed3dfbd.zip |
Make filters ignore formatting codes
The formatting codes caused a mess in longer regexes and are fragile if
Hypixel changes them or moves fully to Text components. Hypixel also
added emblems that display in dark purple and light blue which were
obviously incompatible due to the hardcoded formatting codes.
Diffstat (limited to 'src/main/java/de')
6 files changed, 12 insertions, 8 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/filters/AdFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/filters/AdFilter.java index 5860b41e..5c9cd4a5 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/filters/AdFilter.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/filters/AdFilter.java @@ -19,8 +19,8 @@ public class AdFilter extends ChatPatternListener { // Groups: // 1. Player name // 2. Message - // (?:§8\[[§feadbc0-9]+§8\] )?(?:[§76l]+[<INSERT EMBLEMS>] )?§[67abc](?:\[[§A-Za-z0-9+]+\] )?([A-Za-z0-9_]+)§[f7]: (.+) - super("(?:§8\\[[§feadbc0-9]+§8\\] )?(?:[§76l]+[" + Constants.LEVEL_EMBLEMS + "] )?§[67abc](?:\\[[§A-Za-z0-9+]+\\] )?([A-Za-z0-9_]+)§[f7]: (.+)"); + // (?:\[[0-9]+\] )?(?:[<INSERT EMBLEMS>] )?(?:\[[A-Z+]+\] )?([A-Za-z0-9_]+): (.+) + super("(?:\\[[0-9]+\\] )?(?:[" + Constants.LEVEL_EMBLEMS+ "] )?(?:\\[[A-Z+]+\\] )?([A-Za-z0-9_]+): (.+)"); } @Override diff --git a/src/main/java/de/hysky/skyblocker/skyblock/filters/AutopetFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/filters/AutopetFilter.java index f97e8177..958be11e 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/filters/AutopetFilter.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/filters/AutopetFilter.java @@ -11,7 +11,7 @@ import java.util.regex.Matcher; public class AutopetFilter extends ChatPatternListener { public AutopetFilter() { - super("^§cAutopet §eequipped your §7.*§e! §a§lVIEW RULE$"); + super("^Autopet equipped your .*! VIEW RULE$"); } @Override @@ -19,7 +19,7 @@ public class AutopetFilter extends ChatPatternListener { if (SkyblockerConfigManager.get().messages.hideAutopet == ChatFilterResult.ACTION_BAR) { Objects.requireNonNull(MinecraftClient.getInstance().player).sendMessage( Text.literal( - _message.getString().replace("§a§lVIEW RULE", "") + _message.getString().replace("VIEW RULE", "") ), true); } return true; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/filters/ShowOffFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/filters/ShowOffFilter.java index a9c551fb..84d32007 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/filters/ShowOffFilter.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/filters/ShowOffFilter.java @@ -8,7 +8,8 @@ public class ShowOffFilter extends SimpleChatFilter { private static final String[] SHOW_TYPES = { "is holding", "is wearing", "is friends with a", "has" }; public ShowOffFilter() { - super("(?:§8\\[[§feadbc0-9]+§8\\] )?(?:[§76l]+[" + Constants.LEVEL_EMBLEMS + "] )?§[67abc](?:\\[[§A-Za-z0-9+]+\\] )?([A-Za-z0-9_]+)[§f7]+ (?:" + String.join("|", SHOW_TYPES) + ") §8\\[(.+)§8\\]"); + //(?:\[[0-9]+\] )?(?:[<INSERT EMBLEMS>] )?(?:\[[A-Z+]+\] )?([A-Za-z0-9_]+) (?:<INSERT SHOW TYPES>) \[(.+)\] + super("(?:\\[[0-9]+\\] )?(?:[" + Constants.LEVEL_EMBLEMS + "] )?(?:\\[[A-Z+]+\\] )?([A-Za-z0-9_]+) (?:" + String.join("|", SHOW_TYPES) + ") \\[(.+)\\]"); } @Override diff --git a/src/main/java/de/hysky/skyblocker/skyblock/filters/ToggleSkyMallFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/filters/ToggleSkyMallFilter.java index 94d10e3a..6ee13aff 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/filters/ToggleSkyMallFilter.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/filters/ToggleSkyMallFilter.java @@ -6,7 +6,7 @@ import de.hysky.skyblocker.utils.chat.ChatFilterResult; public class ToggleSkyMallFilter extends SimpleChatFilter { public ToggleSkyMallFilter() { - super("^§8§oYou can disable this messaging by toggling Sky Mall in your /hotm!$"); + super("^You can disable this messaging by toggling Sky Mall in your /hotm!$"); } @Override diff --git a/src/main/java/de/hysky/skyblocker/utils/Constants.java b/src/main/java/de/hysky/skyblocker/utils/Constants.java index 403689ac..d900f917 100644 --- a/src/main/java/de/hysky/skyblocker/utils/Constants.java +++ b/src/main/java/de/hysky/skyblocker/utils/Constants.java @@ -12,7 +12,7 @@ import java.util.function.Supplier; * Holds generic static constants */ public interface Constants { - String LEVEL_EMBLEMS = "\u2E15\u273F\u2741\u2E19\u03B1\u270E\u2615\u2616\u2663\u213B\u2694\u27B6\u26A1\u2604\u269A\u2693\u2620\u269B\u2666\u2660\u2764\u2727\u238A\u1360\u262C\u269D\u29C9\uA214\u32D6\u2E0E\u26A0\uA541\u3020\u30C4\u2948\u2622\u2623\u273E\u269C\u0BD0\u0A6D\u2742\u16C3\u3023\u10F6\u0444\u266A\u266B\u04C3\u26C1\u26C3\u16DD\uA03E\u1C6A\u03A3\u09EB\u2603\u2654\u26C2\u0FC7\uA925\uA56A\u12DE"; + String LEVEL_EMBLEMS = "\u2E15\u273F\u2741\u2E19\u03B1\u270E\u2615\u2616\u2663\u213B\u2694\u27B6\u26A1\u2604\u269A\u2693\u2620\u269B\u2666\u2660\u2764\u2727\u238A\u1360\u262C\u269D\u29C9\uA214\u32D6\u2E0E\u26A0\uA541\u3020\u30C4\u2948\u2622\u2623\u273E\u269C\u0BD0\u0A6D\u2742\u16C3\u3023\u10F6\u0444\u266A\u266B\u04C3\u26C1\u26C3\u16DD\uA03E\u1C6A\u03A3\u09EB\u2603\u2654\u26C2\u0FC7\uA925\uA56A\u2592\u12DE"; Supplier<MutableText> PREFIX = () -> { LocalDate time = LocalDate.now(); return Text.empty() diff --git a/src/main/java/de/hysky/skyblocker/utils/chat/ChatMessageListener.java b/src/main/java/de/hysky/skyblocker/utils/chat/ChatMessageListener.java index bdff2d94..3aea459e 100644 --- a/src/main/java/de/hysky/skyblocker/utils/chat/ChatMessageListener.java +++ b/src/main/java/de/hysky/skyblocker/utils/chat/ChatMessageListener.java @@ -1,5 +1,7 @@ package de.hysky.skyblocker.utils.chat; +import java.util.Objects; + import de.hysky.skyblocker.skyblock.barn.HungryHiker; import de.hysky.skyblocker.skyblock.barn.TreasureHunter; import de.hysky.skyblocker.skyblock.dungeon.Reparty; @@ -15,6 +17,7 @@ import net.fabricmc.fabric.api.event.EventFactory; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.text.Text; +import net.minecraft.util.Formatting; @FunctionalInterface public interface ChatMessageListener { @@ -68,7 +71,7 @@ public interface ChatMessageListener { if (!Utils.isOnSkyblock()) { return true; } - ChatFilterResult result = EVENT.invoker().onMessage(message, message.getString()); + ChatFilterResult result = EVENT.invoker().onMessage(message, Formatting.strip(message.getString())); switch (result) { case ACTION_BAR -> { if (overlay) { |