diff options
author | bowser0000 <bowser0000@gmail.com> | 2020-07-11 01:10:09 -0400 |
---|---|---|
committer | bowser0000 <bowser0000@gmail.com> | 2020-07-11 01:10:09 -0400 |
commit | 0d177505ddb0b0d6410d768b32320655e8b24ccf (patch) | |
tree | 149e30a6be1b4f4d79c9d73c0a914a028a54b62f /Danker/handlers/ScoreboardHandler.java | |
parent | f2ce0179174518c6ae67a7c60920338e673d6f22 (diff) | |
download | SkyblockMod-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.java | 60 |
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; + } +} |