From 599ab3aa182f378ecdbc5947f4f6c626658554d5 Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Date: Sun, 23 Apr 2023 17:16:20 +0200 Subject: Hide chat messages from the visitors in garden. (Except Beth and Spaceman) --- CHANGELOG.md | 1 + FEATURES.md | 1 + .../hannibal2/skyhanni/config/features/Garden.java | 6 ++++++ .../garden/visitor/GardenVisitorFeatures.kt | 25 ++++++++++++++++++++++ 4 files changed, 33 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 01dc0c675..64a94ea62 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -71,6 +71,7 @@ + Added **Composter Overlay** - Show the cheapest items for organic matter and fuel, show profit per compost/hour/day and time per compost + Added **Composter Upgrades Overlay** - Show an overview of all composter stats, including time till organic matter and fuel is empty when fully filled and show a preview how these stats change when hovering over an upgrade + Hide crop money display, crop milestone display and garden visitor list while inside anita show, SkyMart or the composter inventory ++ Hide chat messages from the visitors in garden. (Except Beth and Spaceman) ### Features from other Mods > *The following features are only there because I want them when testing SkyHanni features without other mods present.* diff --git a/FEATURES.md b/FEATURES.md index 30392f0f8..69a91fc3f 100644 --- a/FEATURES.md +++ b/FEATURES.md @@ -216,6 +216,7 @@ + **Composter Overlay** - Show the cheapest items for organic matter and fuel, show profit per compost/hour/day and time per compost + **Composter Upgrades Overlay** - Show an overview of all composter stats, including time till organic matter and fuel is empty when fully filled and show a preview how these stats change when hovering over an upgrade + Hide crop money display, crop milestone display and garden visitor list while inside anita show, SkyMart or the composter inventory ++ Hide chat messages from the visitors in garden. (Except Beth and Spaceman) ## Commands + **/wiki ** - using hypixel-skyblock.fandom.com instead of Hypixel wiki. diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/Garden.java b/src/main/java/at/hannibal2/skyhanni/config/features/Garden.java index b6bb30838..7547d3e1b 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/features/Garden.java +++ b/src/main/java/at/hannibal2/skyhanni/config/features/Garden.java @@ -166,6 +166,12 @@ public class Garden { @ConfigAccordionId(id = 1) public boolean visitorHypixelArrivedMessage = true; + @Expose + @ConfigOption(name = "Hide Chat", desc = "Hide chat messages from the visitors in garden. (Except Beth and Spaceman)") + @ConfigEditorBoolean + @ConfigAccordionId(id = 1) + public boolean visitorHideChat = true; + @Expose @ConfigOption(name = "Numbers", desc = "") @ConfigEditorAccordion(id = 5) diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorFeatures.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorFeatures.kt index 3f27138b8..1bababdb1 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorFeatures.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/visitor/GardenVisitorFeatures.kt @@ -43,6 +43,7 @@ class GardenVisitorFeatures { private val newVisitorArrivedMessage = ".* §r§ehas arrived on your §r§bGarden§r§e!".toPattern() private val copperPattern = " §8\\+§c(.*) Copper".toPattern() private val gardenExperiencePattern = " §8\\+§2(.*) §7Garden Experience".toPattern() + private val visitorChatMessagePattern = "§e\\[NPC] (§.)?(?.*)§f: §r§f.*".toPattern() private val config get() = SkyHanniMod.feature.garden private val logger = LorenzLogger("garden/visitors") @@ -462,6 +463,30 @@ class GardenVisitorFeatures { event.blockedReason = "new_visitor_arrived" } } + + if (GardenAPI.inGarden()) { + if (config.visitorHideChat) { + if (hideVisitorMessage(event.message)) { + event.blockedReason = "garden_visitor_message" + } + } + } + } + + private fun hideVisitorMessage(message: String): Boolean { + val matcher = visitorChatMessagePattern.matcher(message) + if (!matcher.matches()) return false + + val name = matcher.group("name") + if (name == "Spaceman") return false + if (name == "Beth") return false + + if (visitors.keys.any { it.removeColor() == name }) { + println("blocked msg from '$name'") + return true + } + + return false } private fun update() { -- cgit