diff options
| author | Empa <42304516+ItsEmpa@users.noreply.github.com> | 2024-07-15 19:54:04 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-15 19:54:04 +0200 |
| commit | ba091f8c3cfa665e83c789e1a5845d1ae0f26b6b (patch) | |
| tree | f52c6c37addc52c27452e0a161ee0b54485e093d /src/main/java/at/hannibal2/skyhanni/utils | |
| parent | 2de249337b48f5de439afd16c6793abbe3084a25 (diff) | |
| download | skyhanni-ba091f8c3cfa665e83c789e1a5845d1ae0f26b6b.tar.gz skyhanni-ba091f8c3cfa665e83c789e1a5845d1ae0f26b6b.tar.bz2 skyhanni-ba091f8c3cfa665e83c789e1a5845d1ae0f26b6b.zip | |
Backend: RecalculatingValue as a ReadOnlyProperty (#2151)
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/utils')
5 files changed, 18 insertions, 14 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/InventoryUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/InventoryUtils.kt index 76f9fbfcb..c8492086a 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/InventoryUtils.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/InventoryUtils.kt @@ -71,7 +71,7 @@ object InventoryUtils { fun getLeggings(): ItemStack? = getArmor()[1] fun getBoots(): ItemStack? = getArmor()[0] - val isNeuStorageEnabled = RecalculatingValue(10.seconds) { + val isNeuStorageEnabled by RecalculatingValue(10.seconds) { try { val config = NotEnoughUpdates.INSTANCE.config diff --git a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt index ea2a935a3..3c97919fc 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt @@ -315,13 +315,8 @@ object LorenzUtils { this.cancel() } } - - // TODO move into mayor api - private val recalculateDerpy = - RecalculatingValue(1.seconds) { Perk.DOUBLE_MOBS_HP.isActive } - // TODO move into mayor api - val isDerpy get() = recalculateDerpy.getValue() + val isDerpy by RecalculatingValue(1.seconds) { Perk.DOUBLE_MOBS_HP.isActive } // TODO move into mayor api fun Int.derpy() = if (isDerpy) this / 2 else this diff --git a/src/main/java/at/hannibal2/skyhanni/utils/NEUItems.kt b/src/main/java/at/hannibal2/skyhanni/utils/NEUItems.kt index 51a07c0b3..217d681c3 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/NEUItems.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/NEUItems.kt @@ -382,7 +382,7 @@ object NEUItems { fun neuHasFocus(): Boolean { if (AuctionSearchOverlay.shouldReplace()) return true if (BazaarSearchOverlay.shouldReplace()) return true - if (InventoryUtils.inStorage() && InventoryUtils.isNeuStorageEnabled.getValue()) return true + if (InventoryUtils.inStorage() && InventoryUtils.isNeuStorageEnabled) return true if (NEUOverlay.searchBarHasFocus) return true return false diff --git a/src/main/java/at/hannibal2/skyhanni/utils/RecalculatingValue.kt b/src/main/java/at/hannibal2/skyhanni/utils/RecalculatingValue.kt index 76f0c0c94..6059ed662 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/RecalculatingValue.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/RecalculatingValue.kt @@ -1,17 +1,28 @@ package at.hannibal2.skyhanni.utils +import kotlin.properties.ReadOnlyProperty +import kotlin.reflect.KProperty import kotlin.time.Duration -class RecalculatingValue<T>(private val expireTime: Duration, val calculation: () -> T) { +class RecalculatingValue<T>(private val expireTime: Duration, private val calculation: () -> T) : ReadOnlyProperty<Any?, T> { - private var currentValue = calculation() + private var currentValue: Any? = UNINITIALIZED_VALUE private var lastAccessTime = SimpleTimeMark.farPast() + @Deprecated("use \"by RecalculatingValue\" instead") fun getValue(): T { if (lastAccessTime.passedSince() > expireTime) { currentValue = calculation() lastAccessTime = SimpleTimeMark.now() } - return currentValue + @Suppress("UNCHECKED_CAST") + return currentValue as T + } + + @Suppress("DEPRECATION") + override fun getValue(thisRef: Any?, property: KProperty<*>): T = getValue() + + companion object { + private val UNINITIALIZED_VALUE = Any() } } diff --git a/src/main/java/at/hannibal2/skyhanni/utils/SkyblockSeason.kt b/src/main/java/at/hannibal2/skyhanni/utils/SkyblockSeason.kt index edeb706b7..d74b80959 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/SkyblockSeason.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/SkyblockSeason.kt @@ -21,9 +21,7 @@ enum class SkyblockSeason( companion object { - fun getCurrentSeason(): SkyblockSeason? = currentSeason.getValue() - - private val currentSeason = RecalculatingValue(1.seconds) { + val currentSeason by RecalculatingValue(1.seconds) { getSeasonByName(SkyBlockTime.now().monthName) } |
