summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/utils
diff options
context:
space:
mode:
authorEmpa <42304516+ItsEmpa@users.noreply.github.com>2024-05-13 18:05:40 +0200
committerGitHub <noreply@github.com>2024-05-13 18:05:40 +0200
commit8e2d5c04573a3f57c9200786a039ecc73ad78863 (patch)
tree9f53c59a5ed4508b4a56b78fd89d6d62d6f4a667 /src/main/java/at/hannibal2/skyhanni/utils
parent8a7c1e633184e074f177f5b93691b33a052a846b (diff)
downloadskyhanni-8e2d5c04573a3f57c9200786a039ecc73ad78863.tar.gz
skyhanni-8e2d5c04573a3f57c9200786a039ecc73ad78863.tar.bz2
skyhanni-8e2d5c04573a3f57c9200786a039ecc73ad78863.zip
Fix: Incomplete Scoreboard Lines (#1761)
Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com>
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/utils')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/TimeLimitedCache.kt9
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/TimeLimitedSet.kt7
2 files changed, 12 insertions, 4 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/TimeLimitedCache.kt b/src/main/java/at/hannibal2/skyhanni/utils/TimeLimitedCache.kt
index d903ada07..8b4b0c372 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/TimeLimitedCache.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/TimeLimitedCache.kt
@@ -4,10 +4,15 @@ import com.google.common.cache.CacheBuilder
import java.util.concurrent.TimeUnit
import kotlin.time.Duration
-class TimeLimitedCache<K, V>(expireAfterWrite: Duration) {
+class TimeLimitedCache<K, V>(
+ expireAfterWrite: Duration,
+ private val removalListener: (K?, V?) -> Unit = { _, _ -> },
+) {
private val cache = CacheBuilder.newBuilder()
- .expireAfterWrite(expireAfterWrite.inWholeMilliseconds, TimeUnit.MILLISECONDS).build<K, V>()
+ .expireAfterWrite(expireAfterWrite.inWholeMilliseconds, TimeUnit.MILLISECONDS)
+ .removalListener { removalListener(it.key, it.value) }
+ .build<K, V>()
fun put(key: K, value: V) = cache.put(key, value)
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/TimeLimitedSet.kt b/src/main/java/at/hannibal2/skyhanni/utils/TimeLimitedSet.kt
index 39dac5247..5f0ccd404 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/TimeLimitedSet.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/TimeLimitedSet.kt
@@ -2,9 +2,12 @@ package at.hannibal2.skyhanni.utils
import kotlin.time.Duration
-class TimeLimitedSet<T>(expireAfterWrite: Duration) {
+class TimeLimitedSet<T>(
+ expireAfterWrite: Duration,
+ private val removalListener: (T) -> Unit = {},
+) {
- private val cache = TimeLimitedCache<T, Unit>(expireAfterWrite)
+ private val cache = TimeLimitedCache<T, Unit>(expireAfterWrite) { key, _ -> key?.let { removalListener(it) } }
fun add(element: T) = cache.put(element, Unit)