diff options
Diffstat (limited to 'src/main/java/me/xmrvizzy')
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java | 53 |
1 files changed, 23 insertions, 30 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java index c8e787e9..a4736242 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java +++ b/src/main/java/me/xmrvizzy/skyblocker/utils/Utils.java @@ -9,6 +9,7 @@ import net.minecraft.scoreboard.Scoreboard; import net.minecraft.scoreboard.ScoreboardObjective; import net.minecraft.scoreboard.ScoreboardPlayerScore; import net.minecraft.scoreboard.Team; +import net.minecraft.util.Formatting; import java.util.ArrayList; import java.util.Collection; @@ -104,37 +105,29 @@ public class Utils { public static List<String> getSidebar() { - List<String> lines = new ArrayList<>(); - MinecraftClient client = MinecraftClient.getInstance(); - if (client.world == null) return lines; - - Scoreboard scoreboard = client.world.getScoreboard(); - if (scoreboard == null) return lines; - ScoreboardObjective sidebar = scoreboard.getObjectiveForSlot(1); - if (sidebar == null) return lines; - - Collection<ScoreboardPlayerScore> scores = scoreboard.getAllPlayerScores(sidebar); - List<ScoreboardPlayerScore> list = 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; - } + try { + assert MinecraftClient.getInstance().player != null; + Scoreboard scoreboard = MinecraftClient.getInstance().player.getScoreboard(); + ScoreboardObjective objective = scoreboard.getObjectiveForSlot(1); + List<String> lines = new ArrayList<>(); + for (ScoreboardPlayerScore score : scoreboard.getAllPlayerScores(objective)) { + Team team = scoreboard.getPlayerTeam(score.getPlayerName()); + if (team != null) { + String line = team.getPrefix().getString() + team.getSuffix().getString(); + if (line.trim().length() > 0) { + String formatted = Formatting.strip(line); + lines.add(formatted); + } + } + } - for (ScoreboardPlayerScore score : scores) { - Team team = scoreboard.getPlayerTeam(score.getPlayerName()); - if (team == null) return lines; - String text = team.getPrefix().getString() + team.getSuffix().getString(); - if (text.trim().length() > 0) - lines.add(text); + if (objective != null) { + lines.add(objective.getDisplayName().getString()); + Collections.reverse(lines); + } + return lines; + } catch (NullPointerException e) { + return null; } - - lines.add(sidebar.getDisplayName().getString()); - Collections.reverse(lines); - - return lines; } }
\ No newline at end of file |