From bbe686f866f418641f6d9c27e9e5a6f7ba8f1b24 Mon Sep 17 00:00:00 2001 From: David Cole <40234707+DavidArthurCole@users.noreply.github.com> Date: Wed, 31 Jul 2024 17:48:13 -0400 Subject: Fix: Flawless Gemstones in Powder Filter (#2281) --- .../java/at/hannibal2/skyhanni/features/chat/ChatFilter.kt | 7 +++++++ .../skyhanni/features/chat/PowderMiningChatFilter.kt | 13 ++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) (limited to 'src/main/java/at/hannibal2/skyhanni/features/chat') diff --git a/src/main/java/at/hannibal2/skyhanni/features/chat/ChatFilter.kt b/src/main/java/at/hannibal2/skyhanni/features/chat/ChatFilter.kt index 3f2897aae..e4e411d4c 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/chat/ChatFilter.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/chat/ChatFilter.kt @@ -576,5 +576,12 @@ object ChatFilter { event.move(3, "chat.profileJoin", "chat.filterType.profileJoin") event.move(3, "chat.others", "chat.filterType.others") event.move(52, "chat.filterType.powderMining", "chat.filterType.powderMiningFilter.enabled") + event.transform(53, "chat.filterType.powderMiningFilter.gemstoneFilterConfig") { element -> + element.asJsonObject.apply { + entrySet().forEach { (key, value) -> + if (value.asString == "FINE_ONLY") addProperty(key, "FINE_UP") + } + } + } } } diff --git a/src/main/java/at/hannibal2/skyhanni/features/chat/PowderMiningChatFilter.kt b/src/main/java/at/hannibal2/skyhanni/features/chat/PowderMiningChatFilter.kt index 63d6dc11d..32ce17b8d 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/chat/PowderMiningChatFilter.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/chat/PowderMiningChatFilter.kt @@ -236,10 +236,11 @@ object PowderMiningChatFilter { * REGEX-TEST: §r§f❈ Rough Amethyst Gemstone §r§8x24 * REGEX-TEST: §r§a❈ Flawed Amethyst Gemstone §r§8x4 * REGEX-TEST: §r§9⸕ Fine Amber Gemstone + * REGEX-TEST: §r§5⸕ Flawless Amber Gemstone */ private val gemstonePattern by patternGroup.pattern( "reward.gemstone", - "§r§[fa9][❤❈☘⸕✎✧] (?Rough|Flawed|Fine) (?Ruby|Amethyst|Jade|Amber|Sapphire|Topaz) Gemstone( §r§8x(?[\\d,]+))?", + "§r§[fa9][❤❈☘⸕✎✧] (?Rough|Flawed|Fine|Flawless) (?Ruby|Amethyst|Jade|Amber|Sapphire|Topaz) Gemstone( §r§8x(?[\\d,]+))?", ) fun block(message: String): String? { @@ -326,8 +327,7 @@ object PowderMiningChatFilter { if (config.goblinEggs == PowderMiningFilterConfig.GoblinEggFilterEntry.SHOW_ALL) return "no_filter" if (config.goblinEggs == PowderMiningFilterConfig.GoblinEggFilterEntry.HIDE_ALL) return "powder_mining_goblin_eggs" - val colorStr = groupOrNull("color")?.lowercase() - return when (colorStr) { + return when (val colorStr = groupOrNull("color")?.lowercase()) { //'Colorless', base goblin eggs will never be shown in this code path null -> "powder_mining_goblin_eggs" "green" -> if (config.goblinEggs > PowderMiningFilterConfig.GoblinEggFilterEntry.GREEN_UP) { @@ -382,9 +382,12 @@ object PowderMiningChatFilter { "flawed" -> if (gemSpecificFilterEntry > GemstoneFilterEntry.FLAWED_UP) { "powder_mining_gemstones" } else "no_filter" - // FINE_ONLY enum not explicitly used in comparison, as the only + "fine" -> if (gemSpecificFilterEntry > GemstoneFilterEntry.FINE_UP) { + "powder_mining_gemstones" + } else "no_filter" + // FLAWLESS_ONLY enum not explicitly used in comparison, as the only // case that will block it is HIDE_ALL, which is covered above - "fine" -> "no_filter" + "flawless" -> "no_filter" // This should not be reachable else -> "no_filter" } -- cgit