From d1600393e933ff993a11fc81c2c43a2f23c49b50 Mon Sep 17 00:00:00 2001
From: Cobble8 <41165207+Cobble8@users.noreply.github.com>
Date: Wed, 22 Mar 2023 05:27:46 -0400
Subject: Made it so you can use per hour instead of per minute on crops and
coins (#625)
Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com>
---
.../moulberry/notenoughupdates/util/SidebarUtil.kt | 57 ++++++++++++++++++++++
1 file changed, 57 insertions(+)
create mode 100644 src/main/kotlin/io/github/moulberry/notenoughupdates/util/SidebarUtil.kt
(limited to 'src/main/kotlin')
diff --git a/src/main/kotlin/io/github/moulberry/notenoughupdates/util/SidebarUtil.kt b/src/main/kotlin/io/github/moulberry/notenoughupdates/util/SidebarUtil.kt
new file mode 100644
index 00000000..ad371b56
--- /dev/null
+++ b/src/main/kotlin/io/github/moulberry/notenoughupdates/util/SidebarUtil.kt
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2023 NotEnoughUpdates contributors
+ *
+ * This file is part of NotEnoughUpdates.
+ *
+ * NotEnoughUpdates is free software: you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation, either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * NotEnoughUpdates is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with NotEnoughUpdates. If not, see .
+ */
+
+package io.github.moulberry.notenoughupdates.util
+
+import net.minecraft.client.Minecraft
+import net.minecraft.scoreboard.Score
+import net.minecraft.scoreboard.ScorePlayerTeam
+
+object SidebarUtil {
+
+ @JvmStatic
+ fun readSidebarLines() = readRawSidebarLines(true)
+
+ @JvmStatic
+ fun readRawSidebarLines(cleanColor: Boolean = false): List {
+ val list = fetchScoreboardLines().reversed()
+ val result = list.map { cleanSB(it) }
+ return if (cleanColor) {
+ result.map { Utils.cleanColour(it) }
+ } else result
+ }
+
+ private fun cleanSB(scoreboard: String) =
+ scoreboard.toCharArray().filter { it.code in 21..126 || it.code == 167 }.joinToString(separator = "")
+
+ private fun fetchScoreboardLines(): List {
+ 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)
+ }
+ }
+}
--
cgit