diff options
4 files changed, 17 insertions, 8 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/data/ScoreboardData.kt b/src/main/java/at/hannibal2/skyhanni/data/ScoreboardData.kt index c476482cb..62c0a5503 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/ScoreboardData.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/ScoreboardData.kt @@ -50,7 +50,7 @@ class ScoreboardData { var sidebarLines: List<String> = emptyList() // TODO rename to raw var sidebarLinesRaw: List<String> = emptyList() // TODO delete - var objectiveLine = "" + var objectiveTitle = "" } @SubscribeEvent(priority = EventPriority.HIGHEST) @@ -78,7 +78,7 @@ class ScoreboardData { private fun fetchScoreboardLines(): List<String> { val scoreboard = Minecraft.getMinecraft().theWorld?.scoreboard ?: return emptyList() val objective = scoreboard.getObjectiveInDisplaySlot(1) ?: return emptyList() - objectiveLine = objective.displayName + objectiveTitle = objective.displayName var scores = scoreboard.getSortedScores(objective) val list = scores.filter { input: Score? -> input != null && input.playerName != null && !input.playerName.startsWith("#") diff --git a/src/main/java/at/hannibal2/skyhanni/test/command/CopyScoreboardCommand.kt b/src/main/java/at/hannibal2/skyhanni/test/command/CopyScoreboardCommand.kt index 0483001f8..212350fdb 100644 --- a/src/main/java/at/hannibal2/skyhanni/test/command/CopyScoreboardCommand.kt +++ b/src/main/java/at/hannibal2/skyhanni/test/command/CopyScoreboardCommand.kt @@ -2,6 +2,7 @@ package at.hannibal2.skyhanni.test.command import at.hannibal2.skyhanni.data.ScoreboardData import at.hannibal2.skyhanni.utils.LorenzUtils +import at.hannibal2.skyhanni.utils.LorenzUtils.transformIf import at.hannibal2.skyhanni.utils.OSUtils import at.hannibal2.skyhanni.utils.StringUtils.removeColor @@ -9,12 +10,12 @@ object CopyScoreboardCommand { fun command(args: Array<String>) { val resultList = mutableListOf<String>() val noColor = args.size == 1 && args[0] == "true" - resultList.add("Header:") - resultList.add(if (noColor) ScoreboardData.objectiveLine.removeColor() else ScoreboardData.objectiveLine) + resultList.add("Title:") + resultList.add(ScoreboardData.objectiveTitle.transformIf(noColor) { removeColor() }) resultList.add("") for (line in ScoreboardData.sidebarLinesFormatted) { - val scoreboardLine = if (noColor) line.removeColor() else line + val scoreboardLine = line.transformIf(noColor) { removeColor() } resultList.add("'$scoreboardLine'") } diff --git a/src/main/java/at/hannibal2/skyhanni/test/command/CopyTabListCommand.kt b/src/main/java/at/hannibal2/skyhanni/test/command/CopyTabListCommand.kt index d308ba09e..9a745cc11 100644 --- a/src/main/java/at/hannibal2/skyhanni/test/command/CopyTabListCommand.kt +++ b/src/main/java/at/hannibal2/skyhanni/test/command/CopyTabListCommand.kt @@ -2,6 +2,8 @@ package at.hannibal2.skyhanni.test.command import at.hannibal2.skyhanni.mixins.transformers.AccessorGuiPlayerTabOverlay import at.hannibal2.skyhanni.utils.LorenzUtils +import at.hannibal2.skyhanni.utils.LorenzUtils.conditionalTransform +import at.hannibal2.skyhanni.utils.LorenzUtils.transformIf import at.hannibal2.skyhanni.utils.OSUtils import at.hannibal2.skyhanni.utils.StringUtils.removeColor import at.hannibal2.skyhanni.utils.TabListData @@ -12,12 +14,12 @@ object CopyTabListCommand { val resultList = mutableListOf<String>() val noColor = args.size == 1 && args[0] == "true" for (line in TabListData.getTabList()) { - val tabListLine = if (noColor) line.removeColor() else line + val tabListLine = line.transformIf(noColor) { removeColor() } if (tabListLine != "") resultList.add("'$tabListLine'") } val tabList = Minecraft.getMinecraft().ingameGUI.tabList as AccessorGuiPlayerTabOverlay - val tabHeader = if (noColor) tabList.header_skyhanni.unformattedText else tabList.header_skyhanni.formattedText - val tabFooter = if (noColor) tabList.footer_skyhanni.unformattedText else tabList.footer_skyhanni.formattedText + val tabHeader = tabList.header_skyhanni.conditionalTransform(noColor, { unformattedText }, { formattedText }) + val tabFooter = tabList.footer_skyhanni.conditionalTransform(noColor, { unformattedText }, { formattedText }) val string = "Header:\n\n$tabHeader\n\nBody:\n\n${resultList.joinToString("\n")}\n\nFooter:\n\n$tabFooter" OSUtils.copyToClipboard(string) LorenzUtils.chat("§e[SkyHanni] Tab list copied into the clipboard!") diff --git a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt index a96937b88..8bf8041a2 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt @@ -533,4 +533,10 @@ object LorenzUtils { } val JsonPrimitive.asIntOrNull get() = takeIf { it.isNumber }?.asInt + + fun <T> T.transformIf(condition: Boolean, transofmration: T.() -> T) = + if (condition) transofmration(this) else this + + fun <T> T.conditionalTransform(condition: Boolean, ifTrue: T.() -> Any, ifFalse: T.() -> Any) = + if (condition) ifTrue(this) else ifFalse(this) } |