aboutsummaryrefslogtreecommitdiff
path: root/Danker/handlers/ScoreboardHandler.java
diff options
context:
space:
mode:
authorbowser0000 <bowser0000@gmail.com>2020-07-11 01:10:09 -0400
committerbowser0000 <bowser0000@gmail.com>2020-07-11 01:10:09 -0400
commit0d177505ddb0b0d6410d768b32320655e8b24ccf (patch)
tree149e30a6be1b4f4d79c9d73c0a914a028a54b62f /Danker/handlers/ScoreboardHandler.java
parentf2ce0179174518c6ae67a7c60920338e673d6f22 (diff)
downloadSkyblockMod-0d177505ddb0b0d6410d768b32320655e8b24ccf.tar.gz
SkyblockMod-0d177505ddb0b0d6410d768b32320655e8b24ccf.tar.bz2
SkyblockMod-0d177505ddb0b0d6410d768b32320655e8b24ccf.zip
Revert "Revert "Add tracker and display for all slayer drops""
This reverts commit 8a87957922a40ed3f29356098ee231e3338b1922.
Diffstat (limited to 'Danker/handlers/ScoreboardHandler.java')
-rw-r--r--Danker/handlers/ScoreboardHandler.java60
1 files changed, 60 insertions, 0 deletions
diff --git a/Danker/handlers/ScoreboardHandler.java b/Danker/handlers/ScoreboardHandler.java
new file mode 100644
index 0000000..e89591b
--- /dev/null
+++ b/Danker/handlers/ScoreboardHandler.java
@@ -0,0 +1,60 @@
+package me.Danker.handlers;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+
+import net.minecraft.client.Minecraft;
+import net.minecraft.scoreboard.Score;
+import net.minecraft.scoreboard.ScoreObjective;
+import net.minecraft.scoreboard.ScorePlayerTeam;
+import net.minecraft.scoreboard.Scoreboard;
+import net.minecraft.util.StringUtils;
+
+public class ScoreboardHandler {
+
+ public static String cleanSB(String scoreboard) {
+ char[] nvString = StringUtils.stripControlCodes(scoreboard).toCharArray();
+ StringBuilder cleaned = new StringBuilder();
+
+ for (char c : nvString) {
+ if ((int) c > 20 && (int) c < 127) {
+ cleaned.append(c);
+ }
+ }
+
+ return cleaned.toString();
+ }
+
+ public static List<String> getSidebarLines() {
+ List<String> lines = new ArrayList<>();
+ Scoreboard scoreboard = Minecraft.getMinecraft().theWorld.getScoreboard();
+ if (scoreboard == null) return lines;
+
+ ScoreObjective objective = scoreboard.getObjectiveInDisplaySlot(1);
+ if (objective == null) return lines;
+
+ Collection<Score> scores = scoreboard.getSortedScores(objective);
+ List<Score> list = Lists.newArrayList(scores.stream()
+ .filter(input -> input != null && input.getPlayerName() != null && !input.getPlayerName()
+ .startsWith("#"))
+ .collect(Collectors.toList()));
+
+ if (list.size() > 15) {
+ scores = Lists.newArrayList(Iterables.skip(list, scores.size() - 15));
+ } else {
+ scores = list;
+ }
+
+ for (Score score : scores) {
+ ScorePlayerTeam team = scoreboard.getPlayersTeam(score.getPlayerName());
+ lines.add(ScorePlayerTeam.formatPlayerName(team, score.getPlayerName()));
+ }
+
+ return lines;
+ }
+}