aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2024-04-30 17:59:50 -0400
committerAaron <51387595+AzureAaron@users.noreply.github.com>2024-04-30 17:59:50 -0400
commit88ff7afb7e6ab60f384e571d378b76f52ed3dfbd (patch)
treec16612751b621064b434922945820cc6cea794f7 /src/main
parent4fe76a3341356390fa5a4012c83062ca00bd5635 (diff)
downloadSkyblocker-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')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/filters/AdFilter.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/filters/AutopetFilter.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/filters/ShowOffFilter.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/filters/ToggleSkyMallFilter.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/Constants.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/chat/ChatMessageListener.java5
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) {