diff options
author | J10a1n15 <45315647+j10a1n15@users.noreply.github.com> | 2024-03-26 19:14:10 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-26 19:14:10 +0100 |
commit | 9a769c7dc4e759854dd25be135635c8fea2b6fbb (patch) | |
tree | f87d1a0e99d1ffe5facc58732979d53f6891860d /src/main | |
parent | 5c2e918513df867425b133f53de3df6cd41b67f2 (diff) | |
download | skyhanni-9a769c7dc4e759854dd25be135635c8fea2b6fbb.tar.gz skyhanni-9a769c7dc4e759854dd25be135635c8fea2b6fbb.tar.bz2 skyhanni-9a769c7dc4e759854dd25be135635c8fea2b6fbb.zip |
Improvement: Show Foxy's extra event in Custom Scoreboard (#1270)
Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com>
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/data/MayorAPI.kt | 7 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/data/Mayors.kt | 23 |
2 files changed, 27 insertions, 3 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/data/MayorAPI.kt b/src/main/java/at/hannibal2/skyhanni/data/MayorAPI.kt index bc937a5a2..2a5fcb0c9 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/MayorAPI.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/MayorAPI.kt @@ -11,6 +11,7 @@ import at.hannibal2.skyhanni.utils.CollectionUtils.put import at.hannibal2.skyhanni.utils.LorenzUtils import at.hannibal2.skyhanni.utils.SimpleTimeMark import at.hannibal2.skyhanni.utils.SimpleTimeMark.Companion.asTimeMark +import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import io.github.moulberry.notenoughupdates.util.SkyBlockTime import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -20,6 +21,12 @@ import kotlin.time.Duration import kotlin.time.Duration.Companion.minutes object MayorAPI { + + val foxyExtraEventPattern by RepoPattern.pattern( + "mayorapi.foxy.extraevent", + "Schedules an extra §.(?<event>.*) §.event during the year\\." + ) + var lastUpdate = SimpleTimeMark.farPast() private var dispatcher = Dispatchers.IO diff --git a/src/main/java/at/hannibal2/skyhanni/data/Mayors.kt b/src/main/java/at/hannibal2/skyhanni/data/Mayors.kt index cd6205c7a..b956da0fd 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/Mayors.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/Mayors.kt @@ -1,6 +1,8 @@ package at.hannibal2.skyhanni.data +import at.hannibal2.skyhanni.data.MayorAPI.foxyExtraEventPattern import at.hannibal2.skyhanni.data.jsonobjects.local.MayorJson +import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher enum class Mayor( val mayorName: String, @@ -12,7 +14,7 @@ enum class Mayor( DIANA("Diana", "§2", Perk.LUCKY, Perk.MYTHOLOGICAL_RITUAL, Perk.PET_XP_BUFF), DIAZ("Diaz", "§6", Perk.BARRIER_STREET, Perk.SHOPPING_SPREE), FINNEGAN("Finnegan", "§c", Perk.FARMING_SIMULATOR, Perk.PELT_POCALYPSE, Perk.GOATED), - FOXY("Foxy", "§d", Perk.SWEET_TOOTH, Perk.BENEVOLENCE, Perk.EXTRA_EVENT), + FOXY("Foxy", "§d", Perk.SWEET_TOOTH, Perk.BENEVOLENCE, Perk.EXTRA_EVENT_MINING, Perk.EXTRA_EVENT_FISHING, Perk.EXTRA_EVENT_SPOOKY), MARINA("Marina", "§b", Perk.FISHING_XP_BUFF, Perk.LUCK_OF_THE_SEA, Perk.FISHING_FESTIVAL), PAUL("Paul", "§c", Perk.MARAUDER, Perk.EZPZ, Perk.BENEDICTION), @@ -33,7 +35,7 @@ enum class Mayor( mayor.perks.forEach { it.isActive = false } mayor.activePerks.clear() - perks.mapNotNull { perk -> Perk.entries.firstOrNull { it.perkName == perk.name } } + perks.mapNotNull { perk -> Perk.entries.firstOrNull { it.perkName == perk.renameIfFoxyExtraEventPerkFound() } } .filter { mayor.perks.contains(it) }.forEach { it.isActive = true mayor.activePerks.add(it) @@ -41,6 +43,19 @@ enum class Mayor( return mayor } + + private fun MayorJson.Perk.renameIfFoxyExtraEventPerkFound(): String? { + val foxyExtraEventPairs = mapOf( + "Spooky Festival" to "Extra Event (Spooky)", + "Mining Fiesta" to "Extra Event (Mining)", + "Fishing Festival" to "Extra Event (Fishing)" + ) + + foxyExtraEventPattern.matchMatcher(this.description) { + return foxyExtraEventPairs.entries.firstOrNull { it.key == group("event") }?.value + } + return this.name + } } } @@ -72,7 +87,9 @@ enum class Perk(val perkName: String) { // Foxy SWEET_TOOTH("Sweet Tooth"), BENEVOLENCE("Benevolence"), - EXTRA_EVENT("Extra Event"), + EXTRA_EVENT_MINING("Extra Event (Mining)"), + EXTRA_EVENT_FISHING("Extra Event (Fishing)"), + EXTRA_EVENT_SPOOKY("Extra Event (Spooky)"), // Marina FISHING_XP_BUFF("Fishing XP Buff"), |