From cc291932906c38943e20cee29ee591695a9875b5 Mon Sep 17 00:00:00 2001 From: Thunderblade73 <85900443+Thunderblade73@users.noreply.github.com> Date: Sun, 23 Jun 2024 18:13:52 +0200 Subject: Backend: Usage of TabWidget (#1240) Co-authored-by: Cal Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com> --- .../features/nether/VolcanoExplosivityDisplay.kt | 18 +++++++++++++----- .../reputationhelper/dailyquest/DailyQuestHelper.kt | 15 ++++++++------- .../nether/reputationhelper/dailyquest/QuestLoader.kt | 3 ++- 3 files changed, 23 insertions(+), 13 deletions(-) (limited to 'src/main/java/at/hannibal2/skyhanni/features/nether') diff --git a/src/main/java/at/hannibal2/skyhanni/features/nether/VolcanoExplosivityDisplay.kt b/src/main/java/at/hannibal2/skyhanni/features/nether/VolcanoExplosivityDisplay.kt index 6cb7f3bf4..441dac11b 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/nether/VolcanoExplosivityDisplay.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/nether/VolcanoExplosivityDisplay.kt @@ -2,11 +2,12 @@ package at.hannibal2.skyhanni.features.nether import at.hannibal2.skyhanni.SkyHanniMod import at.hannibal2.skyhanni.data.IslandType +import at.hannibal2.skyhanni.data.model.TabWidget import at.hannibal2.skyhanni.events.GuiRenderEvent -import at.hannibal2.skyhanni.events.TabListUpdateEvent +import at.hannibal2.skyhanni.events.WidgetUpdateEvent import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule import at.hannibal2.skyhanni.utils.LorenzUtils.isInIsland -import at.hannibal2.skyhanni.utils.RegexUtils.matchFirst +import at.hannibal2.skyhanni.utils.RegexUtils.matchMatcher import at.hannibal2.skyhanni.utils.RenderUtils.renderString import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import net.minecraftforge.fml.common.eventhandler.SubscribeEvent @@ -22,14 +23,21 @@ object VolcanoExplosivityDisplay { */ private val statusPattern by patternGroup.pattern( "tablistline", - " *Volcano: (?(?:§.)*\\S+)" + " *Volcano: (?(?:§.)*\\S+)", ) private var display = "" @SubscribeEvent - fun onTabListUpdate(event: TabListUpdateEvent) { + fun onTabListUpdate(event: WidgetUpdateEvent) { if (!isEnabled()) return - event.tabList.matchFirst(statusPattern) { + if (!event.isWidget(TabWidget.VOLCANO)) return + + if (event.isClear()) { + display = "" + return + } + // TODO merge widget pattern with statusPattern + statusPattern.matchMatcher(event.lines.first()) { display = "§bVolcano Explosivity§7: ${group("status")}" } } diff --git a/src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/dailyquest/DailyQuestHelper.kt b/src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/dailyquest/DailyQuestHelper.kt index d0b37ffcd..ef7423990 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/dailyquest/DailyQuestHelper.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/dailyquest/DailyQuestHelper.kt @@ -65,7 +65,7 @@ class DailyQuestHelper(val reputationHelper: CrimsonIsleReputationHelper) { */ val minibossAmountPattern by RepoPattern.pattern( "crimson.reputationhelper.quest.minibossamount", - "(?:§7Kill the §c.+ §7|.*)miniboss §a(?\\d) §7times?!" + "(?:§7Kill the §c.+ §7|.*)miniboss §a(?\\d) §7times?!", ) private val config get() = SkyHanniMod.feature.crimsonIsle.reputationHelper @@ -87,11 +87,11 @@ class DailyQuestHelper(val reputationHelper: CrimsonIsleReputationHelper) { } @SubscribeEvent - fun onTabListWidgetUpdate(event: WidgetUpdateEvent) { - if (event.isWidget(TabWidget.FACTION_QUESTS)) { - if (!isEnabled()) return - questLoader.loadFromTabList() - } + fun onTabListUpdate(event: WidgetUpdateEvent) { + if (!event.isWidget(TabWidget.FACTION_QUESTS)) return + if (!isEnabled()) return + + questLoader.loadFromTabList() } @SubscribeEvent @@ -211,7 +211,8 @@ class DailyQuestHelper(val reputationHelper: CrimsonIsleReputationHelper) { } private fun Quest.needsTownBoardLocation(): Boolean = state.let { state -> - state == QuestState.READY_TO_COLLECT || state == QuestState.NOT_ACCEPTED || + state == QuestState.READY_TO_COLLECT || + state == QuestState.NOT_ACCEPTED || (this is RescueMissionQuest && state == QuestState.ACCEPTED) } diff --git a/src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/dailyquest/QuestLoader.kt b/src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/dailyquest/QuestLoader.kt index 694ebed35..686f46827 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/dailyquest/QuestLoader.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/dailyquest/QuestLoader.kt @@ -214,7 +214,8 @@ class QuestLoader(private val dailyQuestHelper: DailyQuestHelper) { quest.haveAmount = haveAmount } catch (e: IndexOutOfBoundsException) { ErrorManager.logErrorWithData( - e, "Error loading Crimson Isle Quests from config.", + e, + "Error loading Crimson Isle Quests from config.", "text" to text, ) } -- cgit