aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/lorenz/mod/misc
diff options
context:
space:
mode:
authorLorenz <ESs95s3P5z8Pheb>2022-07-09 03:20:48 +0200
committerLorenz <ESs95s3P5z8Pheb>2022-07-09 03:20:48 +0200
commitb1749bd349f8be962fe00469d8d9d754422ff850 (patch)
tree6adfe526a4e9cd9e0544df53ff902a56c823bea7 /src/main/java/at/lorenz/mod/misc
parentaa59a556087370f5b0488b33a01c4876e0d9b7b3 (diff)
downloadSkyHanni-b1749bd349f8be962fe00469d8d9d754422ff850.tar.gz
SkyHanni-b1749bd349f8be962fe00469d8d9d754422ff850.tar.bz2
SkyHanni-b1749bd349f8be962fe00469d8d9d754422ff850.zip
add dungeon api stuff
Diffstat (limited to 'src/main/java/at/lorenz/mod/misc')
-rw-r--r--src/main/java/at/lorenz/mod/misc/HypixelData.kt1
-rw-r--r--src/main/java/at/lorenz/mod/misc/ScoreboardData.kt45
2 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/at/lorenz/mod/misc/HypixelData.kt b/src/main/java/at/lorenz/mod/misc/HypixelData.kt
index 0c2de6683..9d83e2679 100644
--- a/src/main/java/at/lorenz/mod/misc/HypixelData.kt
+++ b/src/main/java/at/lorenz/mod/misc/HypixelData.kt
@@ -1,5 +1,6 @@
package at.lorenz.mod.misc
+import at.lorenz.mod.events.DungeonEnterEvent
import at.lorenz.mod.events.PacketEvent
import at.lorenz.mod.utils.LorenzUtils
import net.minecraft.client.Minecraft
diff --git a/src/main/java/at/lorenz/mod/misc/ScoreboardData.kt b/src/main/java/at/lorenz/mod/misc/ScoreboardData.kt
new file mode 100644
index 000000000..e1735104d
--- /dev/null
+++ b/src/main/java/at/lorenz/mod/misc/ScoreboardData.kt
@@ -0,0 +1,45 @@
+package at.lorenz.mod.misc
+
+import at.lorenz.mod.utils.LorenzUtils.removeColorCodes
+import net.minecraft.client.Minecraft
+import net.minecraft.scoreboard.Score
+import net.minecraft.scoreboard.ScorePlayerTeam
+import net.minecraftforge.fml.common.eventhandler.EventPriority
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+import net.minecraftforge.fml.common.gameevent.TickEvent
+
+class ScoreboardData {
+
+ companion object {
+ var sidebarLines: List<String> = emptyList()
+ }
+
+ @SubscribeEvent(priority = EventPriority.HIGHEST)
+ fun onTick(event: TickEvent.ClientTickEvent) {
+ if (event.phase != TickEvent.Phase.START) return
+
+ sidebarLines = fetchScoreboardLines().map { cleanSB(it) }
+ }
+
+ private fun cleanSB(scoreboard: String): String {
+ return scoreboard.removeColorCodes().toCharArray().filter { it.code in 21..126 }.joinToString(separator = "")
+ }
+
+ fun fetchScoreboardLines(): List<String> {
+ val scoreboard = Minecraft.getMinecraft().theWorld?.scoreboard ?: return emptyList()
+ val objective = scoreboard.getObjectiveInDisplaySlot(1) ?: return emptyList()
+ var scores = scoreboard.getSortedScores(objective)
+ val list = scores.filter { input: Score? ->
+ input != null && input.playerName != null && !input.playerName
+ .startsWith("#")
+ }
+ scores = if (list.size > 15) {
+ list.drop(15)
+ } else {
+ list
+ }
+ return scores.map {
+ ScorePlayerTeam.formatPlayerName(scoreboard.getPlayersTeam(it.playerName), it.playerName)
+ }
+ }
+} \ No newline at end of file