From dba1ec3e7885c86e16283d149d088369ecc509fd Mon Sep 17 00:00:00 2001 From: Cow Date: Sun, 27 Sep 2020 22:34:28 +0200 Subject: New command `/moo dungeon party` - displays current `/party` members' armor and dungeons floor completions --- .../cowtipper/cowlection/data/HySkyBlockStats.java | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/main/java/de/cowtipper/cowlection/data') diff --git a/src/main/java/de/cowtipper/cowlection/data/HySkyBlockStats.java b/src/main/java/de/cowtipper/cowlection/data/HySkyBlockStats.java index 679a575..335f7fc 100644 --- a/src/main/java/de/cowtipper/cowlection/data/HySkyBlockStats.java +++ b/src/main/java/de/cowtipper/cowlection/data/HySkyBlockStats.java @@ -296,6 +296,34 @@ public class HySkyBlockStats { return player_classes.get(selected_dungeon_class).getLevel(); } + public StringBuilder getHighestFloorCompletions(int nHighestFloors, boolean indent) { + StringBuilder output = new StringBuilder(); + String spacer = indent ? "\n " : "\n"; + + Map latestDungeonType = Utils.getLastNMapEntries(dungeon_types, 1); + for (Map.Entry dungeonTypeEntry : latestDungeonType.entrySet()) { + output.append(spacer); + if (dungeonTypeEntry != null) { + Map highestFloorCompletions = Utils.getLastNMapEntries(dungeonTypeEntry.getValue().getTierCompletions(), nHighestFloors); + String latestDungeonTypeName = Utils.fancyCase(dungeonTypeEntry.getKey()); + if (highestFloorCompletions != null) { + // top n highest floor completions: + output.append(spacer).append(EnumChatFormatting.BOLD).append(highestFloorCompletions.size()).append(" highest ").append(latestDungeonTypeName).append(" floors:"); + + for (Map.Entry highestFloorEntry : highestFloorCompletions.entrySet()) { + int highestFloorHighestScore = dungeonTypeEntry.getValue().getBestScore().get(highestFloorEntry.getKey()); + output.append(spacer).append(EnumChatFormatting.GRAY).append(" Floor ").append(EnumChatFormatting.YELLOW).append(highestFloorEntry.getKey()).append(EnumChatFormatting.GRAY).append(": ") + .append(EnumChatFormatting.GOLD).append(highestFloorEntry.getValue()).append(EnumChatFormatting.GRAY).append(" completions (best score: ").append(EnumChatFormatting.LIGHT_PURPLE).append(highestFloorHighestScore).append(EnumChatFormatting.GRAY).append(")"); + } + } else { + // no floor completions yet + output.append(EnumChatFormatting.ITALIC).append("No ").append(latestDungeonTypeName).append(" floor completions yet"); + } + } + } + return output; + } + public static class Type { private Map times_played; private Map tier_completions; -- cgit