diff options
| author | Empa <42304516+ItsEmpa@users.noreply.github.com> | 2024-04-12 14:27:44 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-12 14:27:44 +0200 |
| commit | d07088973b3662cfa70407a33a2ca9855605837e (patch) | |
| tree | 12f9841637985a6f60fb6a26bb0f7106e5d5041a /src/main/java/at/hannibal2/skyhanni/data | |
| parent | 388819e61cf1229ef4a5d6ddeca1bd1dafd05e71 (diff) | |
| download | skyhanni-d07088973b3662cfa70407a33a2ca9855605837e.tar.gz skyhanni-d07088973b3662cfa70407a33a2ca9855605837e.tar.bz2 skyhanni-d07088973b3662cfa70407a33a2ca9855605837e.zip | |
Fix + Improvement: No Bits Warning (#1425)
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/data')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/data/BitsAPI.kt | 50 |
1 files changed, 29 insertions, 21 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/data/BitsAPI.kt b/src/main/java/at/hannibal2/skyhanni/data/BitsAPI.kt index a13ee259b..eca5bbcc3 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/BitsAPI.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/BitsAPI.kt @@ -1,6 +1,7 @@ package at.hannibal2.skyhanni.data import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.data.FameRanks.getFameRankByNameOrNull import at.hannibal2.skyhanni.events.BitsUpdateEvent import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent @@ -40,10 +41,10 @@ object BitsAPI { playerStorage?.currentFameRank = value.name } } - var bitsToClaim: Int - get() = profileStorage?.bitsToClaim ?: 0 + var bitsAvailable: Int + get() = profileStorage?.bitsAvailable ?: 0 private set(value) { - profileStorage?.bitsToClaim = value + profileStorage?.bitsAvailable = value } var cookieBuffTime: SimpleTimeMark? @@ -147,11 +148,14 @@ object BitsAPI { if (amount == bits) return if (amount > bits) { - bitsToClaim -= amount - bits + bitsAvailable -= amount - bits ChatUtils.debug("You have gained §3${amount - bits} Bits §7according to the scoreboard!") + bits = amount + sendBitsGainEvent() + } else { + bits = amount + sendBitsSpentEvent() } - bits = amount - sendEvent() } } } @@ -163,17 +167,17 @@ object BitsAPI { bitsFromFameRankUpChatPattern.matchMatcher(message) { val amount = group("amount").formatInt() - bitsToClaim += amount - sendEvent() + bitsAvailable += amount + sendBitsAvailableGainedEvent() return } boosterCookieAte.matchMatcher(message) { - bitsToClaim += (defaultcookiebits * (currentFameRank?.bitsMultiplier ?: return)).toInt() + bitsAvailable += (defaultcookiebits * (currentFameRank?.bitsMultiplier ?: return)).toInt() val cookieTime = cookieBuffTime cookieBuffTime = if (cookieTime == null) SimpleTimeMark.now() + 4.days else cookieTime + 4.days - sendEvent() + sendBitsAvailableGainedEvent() return } @@ -190,7 +194,7 @@ object BitsAPI { // If the cookie stack is null, then the player should not have any bits to claim if (cookieStack == null) { - bitsToClaim = 0 + bitsAvailable = 0 cookieBuffTime = SimpleTimeMark.farPast() return } @@ -198,9 +202,9 @@ object BitsAPI { val lore = cookieStack.getLore() lore.matchFirst(bitsAvailableMenuPattern) { val amount = group("toClaim").formatInt() - if (bitsToClaim != amount) { - bitsToClaim = amount - sendEvent() + if (bitsAvailable != amount) { + bitsAvailable = amount + sendBitsAvailableGainedEvent() } } lore.matchFirst(cookieDurationPattern) { @@ -254,12 +258,11 @@ object BitsAPI { line@ for (line in bitsStack.getLore()) { bitsAvailableMenuPattern.matchMatcher(line) { val amount = group("toClaim").formatInt() - if (amount != bitsToClaim) { - bitsToClaim = amount - sendEvent() + if (amount != bitsAvailable) { + bitsAvailable = amount + sendBitsAvailableGainedEvent() } - continue@line } } @@ -279,11 +282,16 @@ object BitsAPI { fun hasCookieBuff() = cookieBuffTime?.isInFuture() ?: false - private fun sendEvent() { - BitsUpdateEvent(bits, bitsToClaim).postAndCatch() - } + private fun sendBitsGainEvent() = BitsUpdateEvent.BitsGain(bits, bitsAvailable).postAndCatch() + private fun sendBitsSpentEvent() = BitsUpdateEvent.BitsSpent(bits, bitsAvailable).postAndCatch() + private fun sendBitsAvailableGainedEvent() = BitsUpdateEvent.BitsAvailableGained(bits, bitsAvailable).postAndCatch() fun isEnabled() = LorenzUtils.inSkyBlock && profileStorage != null + @SubscribeEvent + fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) { + event.move(35, "#profile.bits.bitsToClaim", "#profile.bits.bitsAvailable") + } + class FameRankNotFoundException(rank: String) : Exception("FameRank not found: $rank") } |
