diff --git a/src/main/java/bentobox/addon/challenges/panel/ChallengesPanels.java b/src/main/java/bentobox/addon/challenges/panel/ChallengesPanels.java index e84711f..63cf471 100644 --- a/src/main/java/bentobox/addon/challenges/panel/ChallengesPanels.java +++ b/src/main/java/bentobox/addon/challenges/panel/ChallengesPanels.java @@ -112,10 +112,14 @@ public class ChallengesPanels { } private void addNavigation(PanelBuilder panelBuilder) { + // TODO: This if fix for wrong getNumberOfChallengesStillToDo() issue. #23 + LevelStatus previousStatus = null; + // Add navigation to other levels for (LevelStatus status: manager.getChallengeLevelStatus(user, world)) { if (status.getLevel().getUniqueId().equals(level)) { // Skip if this is the current level + previousStatus = status; continue; } // Create a nice name for the level @@ -140,10 +144,12 @@ public class ChallengesPanels { PanelItem item = new PanelItemBuilder() .icon(new ItemStack(Material.BOOK)) .name(name) - .description(manager.stringSplit(user.getTranslation("challenges.to-complete", "[challengesToDo]",String.valueOf(status.getNumberOfChallengesStillToDo()), "[thisLevel]", previousLevelName))) + .description(manager.stringSplit(user.getTranslation("challenges.to-complete", "[challengesToDo]",String.valueOf(previousStatus != null ? previousStatus.getNumberOfChallengesStillToDo() : ""), "[thisLevel]", previousLevelName))) .build(); panelBuilder.item(item); } + + previousStatus = status; } } diff --git a/src/main/java/bentobox/addon/challenges/panel/ChallengesPanels2.java b/src/main/java/bentobox/addon/challenges/panel/ChallengesPanels2.java index b2e5829..a8235c4 100644 --- a/src/main/java/bentobox/addon/challenges/panel/ChallengesPanels2.java +++ b/src/main/java/bentobox/addon/challenges/panel/ChallengesPanels2.java @@ -167,10 +167,14 @@ public class ChallengesPanels2 { } private void addNavigation(PanelBuilder panelBuilder) { + // TODO: This if fix for wrong getNumberOfChallengesStillToDo() issue. #23 + LevelStatus previousStatus = null; + // Add navigation to other levels for (LevelStatus status: manager.getChallengeLevelStatus(requester, world)) { if (status.getLevel().getUniqueId().equalsIgnoreCase(level)) { // Skip if this is the current level + previousStatus = status; continue; } // Create a nice name for the level @@ -195,10 +199,12 @@ public class ChallengesPanels2 { PanelItem item = new PanelItemBuilder() .icon(new ItemStack(Material.BOOK)) .name(name) - .description(manager.stringSplit(requester.getTranslation("challenges.to-complete", "[challengesToDo]",String.valueOf(status.getNumberOfChallengesStillToDo()), "[thisLevel]", previousLevelName))) + .description(manager.stringSplit(requester.getTranslation("challenges.to-complete", "[challengesToDo]",String.valueOf(previousStatus != null ? previousStatus.getNumberOfChallengesStillToDo() : ""), "[thisLevel]", previousLevelName))) .build(); panelBuilder.item(item); } + + previousStatus = status; } }