aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/cowtipper/cowlection/data
diff options
context:
space:
mode:
authorCow <cow@volloeko.de>2021-04-09 14:48:24 +0200
committerCow <cow@volloeko.de>2021-04-09 14:48:24 +0200
commita3f2cd8c51179c54661751525ae02249d0341934 (patch)
treed6db22266f6cf94312ca24aba4fd69b685f1510b /src/main/java/de/cowtipper/cowlection/data
parent911e7b32e781b327fb87f7229bfea34389636b5d (diff)
downloadCowlection-a3f2cd8c51179c54661751525ae02249d0341934.tar.gz
Cowlection-a3f2cd8c51179c54661751525ae02249d0341934.tar.bz2
Cowlection-a3f2cd8c51179c54661751525ae02249d0341934.zip
Added Dungeons Master mode support
- fixed unexpected API-related exceptions voiding chat output
Diffstat (limited to 'src/main/java/de/cowtipper/cowlection/data')
-rw-r--r--src/main/java/de/cowtipper/cowlection/data/HySkyBlockStats.java17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/main/java/de/cowtipper/cowlection/data/HySkyBlockStats.java b/src/main/java/de/cowtipper/cowlection/data/HySkyBlockStats.java
index 98fab87..d2fff18 100644
--- a/src/main/java/de/cowtipper/cowlection/data/HySkyBlockStats.java
+++ b/src/main/java/de/cowtipper/cowlection/data/HySkyBlockStats.java
@@ -327,12 +327,17 @@ public class HySkyBlockStats {
StringBuilder output = new StringBuilder();
String spacer = indent ? "\n " : "\n";
- Map<String, Type> latestDungeonType = Utils.getLastNMapEntries(dungeon_types, 1);
+ // print detail of 4 latest dungeon types (cata + master cata + xx + master xx)
+ Map<String, Type> latestDungeonType = Utils.getLastNMapEntries(dungeon_types, 4);
for (Map.Entry<String, Type> dungeonTypeEntry : latestDungeonType.entrySet()) {
if (!indent) {
output.append(spacer);
}
if (dungeonTypeEntry != null) {
+ if (!dungeonTypeEntry.getValue().hasPlayed()) {
+ // never played this dungeon type
+ continue;
+ }
Map<String, Integer> highestFloorCompletions = Utils.getLastNMapEntries(dungeonTypeEntry.getValue().getTierCompletions(), nHighestFloors);
String latestDungeonTypeName = Utils.fancyCase(dungeonTypeEntry.getKey());
if (highestFloorCompletions != null) {
@@ -359,6 +364,10 @@ public class HySkyBlockStats {
StringBuilder dungeonTypesLevels = new StringBuilder();
if (dungeon_types != null && !dungeon_types.isEmpty()) {
for (Map.Entry<String, HySkyBlockStats.Profile.Dungeons.Type> dungeonType : dungeon_types.entrySet()) {
+ if (dungeonType.getKey().startsWith("master_")) {
+ // master floors don't have their own experience/levels, skip!
+ continue;
+ }
if (dungeonTypesLevels.length() == 0) {
dungeonTypesLevels.append(EnumChatFormatting.DARK_GRAY).append(" [").append(EnumChatFormatting.GRAY);
} else {
@@ -396,7 +405,7 @@ public class HySkyBlockStats {
}
public boolean hasPlayed() {
- return experience > 0;
+ return experience > 0 || best_score != null;
}
/**
@@ -404,7 +413,7 @@ public class HySkyBlockStats {
*
* @return summary text
*/
- public String getSummary() {
+ public String getSummary(boolean isMasterFloor) {
String floorCompletion;
if (tier_completions != null) {
int highestTierCompletions = tier_completions.get(String.valueOf(highest_tier_completed));
@@ -413,7 +422,7 @@ public class HySkyBlockStats {
// played dungeons but never completed a floor
floorCompletion = "not a single floor...";
}
- return "Level " + getLevel() + EnumChatFormatting.GRAY + " (beaten " + EnumChatFormatting.YELLOW + floorCompletion + EnumChatFormatting.GRAY + ")";
+ return (isMasterFloor ? "" : "Level " + getLevel()) + EnumChatFormatting.GRAY + " (beaten " + EnumChatFormatting.YELLOW + floorCompletion + EnumChatFormatting.GRAY + ")";
}
}