diff options
| author | J10a1n15 <45315647+j10a1n15@users.noreply.github.com> | 2024-09-09 15:24:39 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-09 15:24:39 +0200 |
| commit | e17e70b6933982ca417577f441928f77cbbf9ef1 (patch) | |
| tree | 2602f9ac1cdb041f33cdff880a457c54878fd01f /src/main/java/at/hannibal2/skyhanni/data | |
| parent | 2b4011efc9ef79fc478b44bce4959dc37424138a (diff) | |
| download | skyhanni-e17e70b6933982ca417577f441928f77cbbf9ef1.tar.gz skyhanni-e17e70b6933982ca417577f441928f77cbbf9ef1.tar.bz2 skyhanni-e17e70b6933982ca417577f441928f77cbbf9ef1.zip | |
Feature: Current Minister in Calendar (#2342)
Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com>
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/data')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/data/MayorAPI.kt | 18 | ||||
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/data/Mayors.kt | 20 |
2 files changed, 25 insertions, 13 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/data/MayorAPI.kt b/src/main/java/at/hannibal2/skyhanni/data/MayorAPI.kt index a8024ea36..2f89b340b 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/MayorAPI.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/MayorAPI.kt @@ -24,6 +24,7 @@ import at.hannibal2.skyhanni.utils.ConditionalUtils.onToggle import at.hannibal2.skyhanni.utils.HypixelCommands import at.hannibal2.skyhanni.utils.ItemUtils.getLore import at.hannibal2.skyhanni.utils.LorenzUtils +import at.hannibal2.skyhanni.utils.RegexUtils.matchMatcher import at.hannibal2.skyhanni.utils.RegexUtils.matches import at.hannibal2.skyhanni.utils.SimpleTimeMark import at.hannibal2.skyhanni.utils.SimpleTimeMark.Companion.asTimeMark @@ -63,17 +64,18 @@ object MayorAPI { /** * REGEX-TEST: Calendar and Events */ - private val calendarGuiPattern by group.pattern( + val calendarGuiPattern by group.pattern( "calendar.gui", "Calendar and Events", ) /** * REGEX-TEST: §dMayor Jerry + * REGEX-TEST: §cMayor Aatrox */ - private val jerryHeadPattern by group.pattern( - "jerry.head", - "§dMayor Jerry", + private val mayorHeadPattern by group.pattern( + "mayor.head", + "§.Mayor (?<name>.*)", ) /** @@ -162,7 +164,11 @@ object MayorAPI { if (!calendarGuiPattern.matches(event.inventoryName)) return - val stack: ItemStack = event.inventoryItems.values.firstOrNull { jerryHeadPattern.matches(it.displayName) } ?: return + val stack: ItemStack = event.inventoryItems.values.firstOrNull { + mayorHeadPattern.matchMatcher(it.displayName) { + group("name") == "Jerry" + } ?: false + } ?: return val perk = stack.getLore().nextAfter({ perkpocalypsePerksPattern.matches(it) }) ?: return // This is the first Perk of the Perkpocalypse Mayor @@ -248,7 +254,7 @@ object MayorAPI { event.addIrrelevant { add("Current Mayor: ${currentMayor?.name ?: "Unknown"}") add("Active Perks: ${currentMayor?.activePerks}") - add("Last Update: $lastUpdate (${lastUpdate.passedSince()} ago)") + add("Last Update: ${lastUpdate.formattedDate("EEEE, MMM d h:mm a")} (${lastUpdate.passedSince()} ago)") add("Time Till Next Mayor: ${nextMayorTimestamp.timeUntil()}") add("Current Minister: ${currentMinister?.name ?: "Unknown"}") add("Current Minister Perk: ${currentMinister?.activePerks}") diff --git a/src/main/java/at/hannibal2/skyhanni/data/Mayors.kt b/src/main/java/at/hannibal2/skyhanni/data/Mayors.kt index 2215f620c..78647944c 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/Mayors.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/Mayors.kt @@ -132,8 +132,12 @@ enum class Mayor( ) return null } - val perks = perksJson.mapNotNull { perk -> - Perk.entries.firstOrNull { it.perkName == perk.renameIfFoxyExtraEventPerkFound() } + + val perks = perksJson.mapNotNull { perkJson -> + val perk = Perk.entries.firstOrNull { it.perkName == perkJson.renameIfFoxyExtraEventPerkFound() } + perk?.also { + it.description = perkJson.description + } } mayor.addPerks(perks) @@ -149,17 +153,16 @@ enum class Mayor( } } - private fun MayorPerk.renameIfFoxyExtraEventPerkFound(): String? { + private fun MayorPerk.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 + return foxyExtraEventPattern.matchMatcher(this.description) { + foxyExtraEventPairs.entries.firstOrNull { it.key == group("event") }?.value + } ?: this.name } } } @@ -230,6 +233,9 @@ enum class Perk(val perkName: String) { ; var isActive = false + var description = "§cDescription failed to load from the API." + + override fun toString(): String = "$perkName: $description" companion object { fun getPerkFromName(name: String): Perk? = entries.firstOrNull { it.perkName == name } |
