summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/data
diff options
context:
space:
mode:
authorJ10a1n15 <45315647+j10a1n15@users.noreply.github.com>2024-09-09 15:24:39 +0200
committerGitHub <noreply@github.com>2024-09-09 15:24:39 +0200
commite17e70b6933982ca417577f441928f77cbbf9ef1 (patch)
tree2602f9ac1cdb041f33cdff880a457c54878fd01f /src/main/java/at/hannibal2/skyhanni/data
parent2b4011efc9ef79fc478b44bce4959dc37424138a (diff)
downloadskyhanni-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.kt18
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/Mayors.kt20
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 }