aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal002@users.noreply.github.com>2023-09-26 11:47:58 +0200
committerGitHub <noreply@github.com>2023-09-26 11:47:58 +0200
commit2ed9e4a59ed99f3b9927a3cd6cda3f19d652fd30 (patch)
treeacbf1fc5f97e590448e1d50490811dd5e50785e7 /src/main/java/at/hannibal2/skyhanni/features
parent5b4f020ec6aaae0afea309b772bf89fb1493e4d3 (diff)
downloadskyhanni-2ed9e4a59ed99f3b9927a3cd6cda3f19d652fd30.tar.gz
skyhanni-2ed9e4a59ed99f3b9927a3cd6cda3f19d652fd30.tar.bz2
skyhanni-2ed9e4a59ed99f3b9927a3cd6cda3f19d652fd30.zip
Feature: Color class levels in tab list (#398)
Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com>
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonLevelColor.kt24
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonRankTabListColor.kt34
2 files changed, 46 insertions, 12 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonLevelColor.kt b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonLevelColor.kt
index 4f5ca684f..2a044adef 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonLevelColor.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonLevelColor.kt
@@ -34,16 +34,16 @@ class DungeonLevelColor {
}
}
}
-
- private fun getColor(level: Int): String {
- if (level >= 50) return "§c§l"
- if (level >= 45) return "§c"
- if (level >= 40) return "§d"
- if (level >= 35) return "§6"
- if (level >= 30) return "§5"
- if (level >= 25) return "§9"
- if (level >= 20) return "§a"
- if (level >= 10) return "§f"
- return "§7"
- }
}
+
+fun getColor(level: Int): String {
+ if (level >= 50) return "§c§l"
+ if (level >= 45) return "§c"
+ if (level >= 40) return "§d"
+ if (level >= 35) return "§6"
+ if (level >= 30) return "§5"
+ if (level >= 25) return "§9"
+ if (level >= 20) return "§a"
+ if (level >= 10) return "§f"
+ return "§7"
+} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonRankTabListColor.kt b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonRankTabListColor.kt
new file mode 100644
index 000000000..9a28dcc06
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/features/dungeon/DungeonRankTabListColor.kt
@@ -0,0 +1,34 @@
+package at.hannibal2.skyhanni.features.dungeon
+
+import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.events.TabListLineRenderEvent
+import at.hannibal2.skyhanni.utils.LorenzUtils
+import at.hannibal2.skyhanni.utils.NumberUtil.romanToDecimal
+import at.hannibal2.skyhanni.utils.StringUtils.cleanPlayerName
+import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+
+class DungeonRankTabListColor {
+ private val config get() = SkyHanniMod.feature.dungeon.tabList
+ private val pattern = "§r(?<playerName>.*) §r§f\\(§r§d(?<className>.*) (?<classLevel>.*)§r§f\\)§r".toPattern()
+
+ @SubscribeEvent
+ fun onTabListText(event: TabListLineRenderEvent) {
+ if (!isEnabled()) return
+
+ pattern.matchMatcher(event.text) {
+ val playerName = group("playerName")
+ val split = playerName.split(" ")
+ val sbLevel = split[0]
+ val cleanName = split[1].cleanPlayerName()
+
+ val className = group("className")
+ val level = group("classLevel").romanToDecimal()
+ val color = getColor(level)
+
+ event.text = "$sbLevel §b$cleanName §7(§e$className $color$level§7)"
+ }
+ }
+
+ fun isEnabled() = LorenzUtils.inDungeons && config.coloredClassLevel
+}