diff options
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 } |
