From 3375bdeca7e47924616c976b23d017c7f52dc071 Mon Sep 17 00:00:00 2001 From: J10a1n15 <45315647+j10a1n15@users.noreply.github.com> Date: Thu, 14 Mar 2024 21:30:11 +0100 Subject: Improvement + Fix: Custom Scoreboard Fixed and Additions Part 2 (#1174) --- .../gui/customscoreboard/CustomScoreboard.kt | 17 ++++++------- .../gui/customscoreboard/ScoreboardElements.kt | 29 +++++++++------------- .../gui/customscoreboard/ScoreboardPattern.kt | 2 +- .../gui/customscoreboard/UnknownLinesHandler.kt | 10 +++++--- 4 files changed, 27 insertions(+), 31 deletions(-) (limited to 'src/main/java/at/hannibal2/skyhanni/features') diff --git a/src/main/java/at/hannibal2/skyhanni/features/gui/customscoreboard/CustomScoreboard.kt b/src/main/java/at/hannibal2/skyhanni/features/gui/customscoreboard/CustomScoreboard.kt index 96e501d7c..e260976e0 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/gui/customscoreboard/CustomScoreboard.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/gui/customscoreboard/CustomScoreboard.kt @@ -53,7 +53,7 @@ class CustomScoreboard { } else { display } - config.position.renderStringsAlignedWidth(render, posLabel = guiName) + config.position.renderStringsAlignedWidth(render, posLabel = guiName, extraSpace = displayConfig.lineSpacing - 10) } @SubscribeEvent @@ -74,7 +74,7 @@ class CustomScoreboard { // Creating the lines if (event.isMod(5)) { - display = createLines() + display = createLines().removeEmptyLinesFromEdges() if (TabListData.fullyLoaded) { cache = display.toList() } @@ -92,8 +92,7 @@ class CustomScoreboard { } private fun createLines() = buildList { - val configEntries = removeEmptyLinesFromEdges(config.scoreboardEntries) - for (element in configEntries) { + for (element in config.scoreboardEntries) { val line = element.getVisiblePair() // Hide consecutive empty lines @@ -119,13 +118,13 @@ class CustomScoreboard { } } - private fun removeEmptyLinesFromEdges(entries: MutableList): List { + private fun List.removeEmptyLinesFromEdges(): List { if (config.informationFilteringConfig.hideEmptyLinesAtTopAndBottom) { - return entries - .dropWhile { it.getVisiblePair().all { it.first == "" } } - .dropLastWhile { it.getVisiblePair().all { it.first == "" } } + return this + .dropWhile { it.first.isEmpty() } + .dropLastWhile { it.first.isEmpty() } } - return entries + return this } // Thank you Apec for showing that the ElementType of the stupid scoreboard is FUCKING HELMET WTF diff --git a/src/main/java/at/hannibal2/skyhanni/features/gui/customscoreboard/ScoreboardElements.kt b/src/main/java/at/hannibal2/skyhanni/features/gui/customscoreboard/ScoreboardElements.kt index abd5a04f1..15ce71ed9 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/gui/customscoreboard/ScoreboardElements.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/gui/customscoreboard/ScoreboardElements.kt @@ -18,7 +18,6 @@ import at.hannibal2.skyhanni.features.gui.customscoreboard.CustomScoreboard.Comp import at.hannibal2.skyhanni.features.gui.customscoreboard.CustomScoreboard.Companion.informationFilteringConfig import at.hannibal2.skyhanni.features.gui.customscoreboard.CustomScoreboardUtils.formatNum import at.hannibal2.skyhanni.features.gui.customscoreboard.CustomScoreboardUtils.getGroupFromPattern -import at.hannibal2.skyhanni.mixins.hooks.tryToReplaceScoreboardLine import at.hannibal2.skyhanni.test.command.ErrorManager import at.hannibal2.skyhanni.utils.CollectionUtils.nextAfter import at.hannibal2.skyhanni.utils.LorenzUtils.inAdvancedMiningIsland @@ -389,15 +388,11 @@ private fun getIslandDisplayPair() = private fun getLocationDisplayPair() = buildList { add( - (tryToReplaceScoreboardLine( - getGroupFromPattern( - ScoreboardData.sidebarLinesFormatted, - ScoreboardPattern.locationPattern, - "location" - ) - )?.trim() - ?: "") to HorizontalAlignment.LEFT - ) + getGroupFromPattern( + ScoreboardData.sidebarLinesFormatted, + ScoreboardPattern.locationPattern, + "location" + ).trim() to HorizontalAlignment.LEFT) val plotLine = ScoreboardData.sidebarLinesFormatted.firstOrNull { ScoreboardPattern.plotPattern.matches(it) } if (plotLine != null) add(plotLine to HorizontalAlignment.LEFT) @@ -427,14 +422,14 @@ private fun getTimeDisplayPair(): List { } private fun getLobbyDisplayPair(): List { - val lobbyCode = getGroupFromPattern( - ScoreboardData.sidebarLinesFormatted, - ScoreboardPattern.lobbyCodePattern, - "code" + val lobbyCode = HypixelData.serverId ?: "" + return listOf( + if (lobbyCode == "") { + "" + } else { + "§8$lobbyCode" + } to HorizontalAlignment.LEFT ) - - val displayValue = if (lobbyCode == "0") "" else "§8$lobbyCode" - return listOf(displayValue to HorizontalAlignment.LEFT) } private fun getPowerDisplayPair() = listOf( diff --git a/src/main/java/at/hannibal2/skyhanni/features/gui/customscoreboard/ScoreboardPattern.kt b/src/main/java/at/hannibal2/skyhanni/features/gui/customscoreboard/ScoreboardPattern.kt index 62d633523..e5b1a9686 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/gui/customscoreboard/ScoreboardPattern.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/gui/customscoreboard/ScoreboardPattern.kt @@ -79,7 +79,7 @@ object ScoreboardPattern { ) val instanceShutdownPattern by multiUseSb.pattern( "instanceshutdown", - "(§.)*Instance Shutdown: (§.)*(?