aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/com/dulkirfabric/util/TablistUtils.kt
diff options
context:
space:
mode:
authoringlettronald <inglettronald@gmail.com>2023-07-23 15:01:47 -0500
committeringlettronald <inglettronald@gmail.com>2023-07-23 15:01:47 -0500
commitc36dd88ff83ff09d5941d6772b5eefff0cd10665 (patch)
treeff52d13bff786794bd1750095f09f28401b7a02c /src/main/kotlin/com/dulkirfabric/util/TablistUtils.kt
parent5cac8361bad69bcd535b996940c70ac21762f67a (diff)
downloadDulkirMod-Fabric-c36dd88ff83ff09d5941d6772b5eefff0cd10665.tar.gz
DulkirMod-Fabric-c36dd88ff83ff09d5941d6772b5eefff0cd10665.tar.bz2
DulkirMod-Fabric-c36dd88ff83ff09d5941d6772b5eefff0cd10665.zip
Add HUD elements for HP/Mana/Defenses/Stacks/Speed
Diffstat (limited to 'src/main/kotlin/com/dulkirfabric/util/TablistUtils.kt')
-rw-r--r--src/main/kotlin/com/dulkirfabric/util/TablistUtils.kt28
1 files changed, 21 insertions, 7 deletions
diff --git a/src/main/kotlin/com/dulkirfabric/util/TablistUtils.kt b/src/main/kotlin/com/dulkirfabric/util/TablistUtils.kt
index a0999f6..821c1c5 100644
--- a/src/main/kotlin/com/dulkirfabric/util/TablistUtils.kt
+++ b/src/main/kotlin/com/dulkirfabric/util/TablistUtils.kt
@@ -8,21 +8,35 @@ import net.minecraft.client.network.PlayerListEntry
object TablistUtils {
var tablist: List<PlayerListEntry>? = null
private val areaPattern = "Area: (.+)".toRegex()
- var area: String = ""
+ private val speedPattern = "^Speed: (.+)".toRegex()
+ data class PersistentInfo(
+ var area: String = "",
+ var speed: String = ""
+ )
+
+ var persistentInfo: PersistentInfo = PersistentInfo()
@EventHandler
fun onLongUpdate(event: LongUpdateEvent) {
if (mc.player == null) return
tablist = mc.inGameHud.playerListHud.collectPlayerEntries()
- area = updateArea()
+ updatePersistentData()
}
- private fun updateArea(): String {
- if (tablist == null) return ""
+ private fun updatePersistentData() {
+ if (tablist == null) return
tablist!!.forEach {
- val match = areaPattern.find(it.displayName?.string ?: return@forEach) ?: return@forEach
- return match.groupValues[1]
+ areaPattern.find(it.displayName?.string ?: return@forEach) ?.let { result ->
+ persistentInfo.area = result.groupValues[1]
+ return@forEach
+ }
+
+ speedPattern.matchEntire(it.displayName?.string?.trim() ?: return@forEach) ?.let { result ->
+ persistentInfo.speed = result.groupValues[1]
+ return@forEach
+ }
+
}
- return ""
+
}
} \ No newline at end of file