aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmpa <42304516+ItsEmpa@users.noreply.github.com>2024-10-27 10:25:30 +0100
committerGitHub <noreply@github.com>2024-10-27 09:25:30 +0000
commit4750db953c4bec0b3fb22b1f57633a7cf3f1dc71 (patch)
tree3aa2c638b712ff07f29b1dbb1a45aa43979606d2
parentd030f24e0a721a50d22d494c46b1a5d273ffce65 (diff)
downloadSkyHanni-4750db953c4bec0b3fb22b1f57633a7cf3f1dc71.tar.gz
SkyHanni-4750db953c4bec0b3fb22b1f57633a7cf3f1dc71.tar.bz2
SkyHanni-4750db953c4bec0b3fb22b1f57633a7cf3f1dc71.zip
Improvement: ScoreboardUpdateEvent (#2765)
Co-authored-by: Empa <itsempa@users.noreply.github.com> Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com>
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/BitsAPI.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/HotmData.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/MiningAPI.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/PurseAPI.kt8
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/ScoreboardData.kt5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/events/PurseChangeEvent.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/events/ScoreboardUpdateEvent.kt9
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestAPI.kt2
8 files changed, 20 insertions, 12 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/data/BitsAPI.kt b/src/main/java/at/hannibal2/skyhanni/data/BitsAPI.kt
index 022a18d92..a501ba25f 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/BitsAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/BitsAPI.kt
@@ -146,7 +146,7 @@ object BitsAPI {
@SubscribeEvent
fun onScoreboardChange(event: ScoreboardUpdateEvent) {
if (!isEnabled()) return
- for (line in event.scoreboard) {
+ for (line in event.added) {
val message = line.trimWhiteSpace().removeResets()
bitsScoreboardPattern.matchMatcher(message) {
diff --git a/src/main/java/at/hannibal2/skyhanni/data/HotmData.kt b/src/main/java/at/hannibal2/skyhanni/data/HotmData.kt
index beb7581b0..614772b19 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/HotmData.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/HotmData.kt
@@ -680,7 +680,7 @@ enum class HotmData(
fun onScoreboardUpdate(event: ScoreboardUpdateEvent) {
if (!LorenzUtils.inSkyBlock) return
- ScoreboardPattern.powderPattern.firstMatcher(event.scoreboard) {
+ ScoreboardPattern.powderPattern.firstMatcher(event.added) {
val type = HotmAPI.PowderType.entries.firstOrNull { it.displayName == group("type") } ?: return
val amount = group("amount").formatLong()
val difference = amount - type.getCurrent()
diff --git a/src/main/java/at/hannibal2/skyhanni/data/MiningAPI.kt b/src/main/java/at/hannibal2/skyhanni/data/MiningAPI.kt
index fbe304098..0289d5e0e 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/MiningAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/MiningAPI.kt
@@ -165,7 +165,7 @@ object MiningAPI {
@SubscribeEvent
fun onScoreboardChange(event: ScoreboardUpdateEvent) {
- val newCold = coldPattern.firstMatcher(event.scoreboard) {
+ val newCold = coldPattern.firstMatcher(event.added) {
group("cold").toInt().absoluteValue
} ?: return
diff --git a/src/main/java/at/hannibal2/skyhanni/data/PurseAPI.kt b/src/main/java/at/hannibal2/skyhanni/data/PurseAPI.kt
index 0f029a1f2..6b080c394 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/PurseAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/PurseAPI.kt
@@ -7,7 +7,7 @@ import at.hannibal2.skyhanni.events.ScoreboardUpdateEvent
import at.hannibal2.skyhanni.skyhannimodule.SkyHanniModule
import at.hannibal2.skyhanni.utils.NumberUtil.formatDouble
import at.hannibal2.skyhanni.utils.NumberUtil.million
-import at.hannibal2.skyhanni.utils.RegexUtils.matchFirst
+import at.hannibal2.skyhanni.utils.RegexUtils.firstMatcher
import at.hannibal2.skyhanni.utils.SimpleTimeMark
import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern
import net.minecraft.client.Minecraft
@@ -19,7 +19,7 @@ object PurseAPI {
private val patternGroup = RepoPattern.group("data.purse")
val coinsPattern by patternGroup.pattern(
"coins",
- "(§.)*(Piggy|Purse): §6(?<coins>[\\d,.]+)( ?(§.)*\\([+-](?<earned>[\\d,.]+)\\)?|.*)?$",
+ "(?:§.)*(?:Piggy|Purse): §6(?<coins>[\\d,.]+)(?: ?(?:§.)*\\([+-](?<earned>[\\d,.]+)\\)?|.*)?$",
)
val piggyPattern by patternGroup.pattern(
"piggy",
@@ -37,13 +37,13 @@ object PurseAPI {
@SubscribeEvent
fun onScoreboardChange(event: ScoreboardUpdateEvent) {
- event.scoreboard.matchFirst(coinsPattern) {
+ coinsPattern.firstMatcher(event.added) {
val newPurse = group("coins").formatDouble()
val diff = newPurse - currentPurse
if (diff == 0.0) return
currentPurse = newPurse
- PurseChangeEvent(diff, getCause(diff)).postAndCatch()
+ PurseChangeEvent(diff, currentPurse, getCause(diff)).postAndCatch()
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/data/ScoreboardData.kt b/src/main/java/at/hannibal2/skyhanni/data/ScoreboardData.kt
index 42de7a75b..7b40e6d6b 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/ScoreboardData.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/ScoreboardData.kt
@@ -110,15 +110,16 @@ object ScoreboardData {
val list = fetchScoreboardLines().reversed()
val semiFormatted = list.map { cleanSB(it) }
if (semiFormatted != sidebarLines) {
- RawScoreboardUpdateEvent(semiFormatted).postAndCatch()
sidebarLines = semiFormatted
+ RawScoreboardUpdateEvent(semiFormatted).postAndCatch()
}
sidebarLinesRaw = list
val new = formatLines(list)
if (new != sidebarLinesFormatted) {
- ScoreboardUpdateEvent(new).postAndCatch()
+ val old = sidebarLinesFormatted
sidebarLinesFormatted = new
+ ScoreboardUpdateEvent(old, new).postAndCatch()
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/events/PurseChangeEvent.kt b/src/main/java/at/hannibal2/skyhanni/events/PurseChangeEvent.kt
index d776fe32b..776a226d6 100644
--- a/src/main/java/at/hannibal2/skyhanni/events/PurseChangeEvent.kt
+++ b/src/main/java/at/hannibal2/skyhanni/events/PurseChangeEvent.kt
@@ -1,6 +1,6 @@
package at.hannibal2.skyhanni.events
-class PurseChangeEvent(val coins: Double, val reason: PurseChangeCause) : LorenzEvent()
+class PurseChangeEvent(val coins: Double, val purse: Double, val reason: PurseChangeCause) : LorenzEvent()
enum class PurseChangeCause {
GAIN_MOB_KILL,
diff --git a/src/main/java/at/hannibal2/skyhanni/events/ScoreboardUpdateEvent.kt b/src/main/java/at/hannibal2/skyhanni/events/ScoreboardUpdateEvent.kt
index 9480e8061..59fb9493c 100644
--- a/src/main/java/at/hannibal2/skyhanni/events/ScoreboardUpdateEvent.kt
+++ b/src/main/java/at/hannibal2/skyhanni/events/ScoreboardUpdateEvent.kt
@@ -1,3 +1,10 @@
package at.hannibal2.skyhanni.events
-class ScoreboardUpdateEvent(val scoreboard: List<String>) : LorenzEvent()
+class ScoreboardUpdateEvent(
+ val old: List<String>,
+ val scoreboard: List<String>,
+) : LorenzEvent() {
+
+ val added by lazy { scoreboard - old.toSet() }
+ val removed by lazy { old - scoreboard.toSet() }
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestAPI.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestAPI.kt
index e239caeab..d6ab8873c 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/pests/PestAPI.kt
@@ -223,7 +223,7 @@ object PestAPI {
fun onScoreboardChange(event: ScoreboardUpdateEvent) {
if (!GardenAPI.inGarden()) return
if (!firstScoreboardCheck) return
- checkScoreboardLines(event.scoreboard)
+ checkScoreboardLines(event.added)
}
@SubscribeEvent