summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-10-07 04:08:30 +0200
committerhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-10-07 04:08:30 +0200
commitf25715ff6b010876cf2da64f8419bed5e2b2aa83 (patch)
treedb63541666d75b3f542db409ae7dd0ffd9257bd4 /src/main/java/at/hannibal2/skyhanni/features
parentd52f89085b2162d9af1fb537b44fdde8d0457462 (diff)
downloadskyhanni-f25715ff6b010876cf2da64f8419bed5e2b2aa83.tar.gz
skyhanni-f25715ff6b010876cf2da64f8419bed5e2b2aa83.tar.bz2
skyhanni-f25715ff6b010876cf2da64f8419bed5e2b2aa83.zip
add random
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/compacttablist/TabListReader.kt21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/compacttablist/TabListReader.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/compacttablist/TabListReader.kt
index a9e9d2ad6..d4268a39f 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/misc/compacttablist/TabListReader.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/misc/compacttablist/TabListReader.kt
@@ -12,8 +12,11 @@ import at.hannibal2.skyhanni.utils.StringUtils.removeColor
import at.hannibal2.skyhanni.utils.StringUtils.removeResets
import at.hannibal2.skyhanni.utils.StringUtils.trimWhiteSpaceAndResets
import at.hannibal2.skyhanni.utils.TabListData
+import com.google.common.cache.CacheBuilder
import net.minecraft.client.Minecraft
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+import java.util.concurrent.TimeUnit
+import kotlin.random.Random
// heavily inspired by SBA code
object TabListReader {
@@ -124,7 +127,7 @@ object TabListReader {
}
val prepare = playerDatas.entries
- val sorted = when (config.playerSort) {
+ val sorted = when (config.playerSortOrder) {
// Rank (Default)
1 -> prepare.sortedBy { -(it.value.sbLevel) }
@@ -138,6 +141,9 @@ object TabListReader {
// Party/Friends/Guild First
4 -> prepare.sortedBy { -socialScore(it.value.name) }
+ // Random
+ 5 -> prepare.sortedBy { getRandomOrder(it.value.name) }
+
else -> prepare
}
@@ -155,6 +161,19 @@ object TabListReader {
return newList
}
+ private var randomOrderCache =
+ CacheBuilder.newBuilder().expireAfterWrite(20, TimeUnit.MINUTES).build<String, Int>()
+
+ private fun getRandomOrder(name: String): Int {
+ val saved = randomOrderCache.getIfPresent(name)
+ if (saved != null) {
+ return saved
+ }
+ val r = (Random.nextDouble() * 500).toInt()
+ randomOrderCache.put(name, r)
+ return r
+ }
+
private fun socialScore(name: String) = when {
LorenzUtils.getPlayerName() == name -> 5
MarkedPlayerManager.isMarkedPlayer(name) -> 4