From b773e7f0f36feabc08918682aba700c525493c9f Mon Sep 17 00:00:00 2001 From: Len <40720638+destro174@users.noreply.github.com> Date: Fri, 22 Mar 2024 20:27:03 +0100 Subject: [PATCH] Use a LinkedHashMap to store challenges. --- .../challenges/ChallengeHandler.java | 49 ++++++++++++++++--- .../challenges/ChallengesGUI.java | 2 +- 2 files changed, 43 insertions(+), 8 deletions(-) diff --git a/plugin/src/main/java/com/alttd/cometskyblock/challenges/ChallengeHandler.java b/plugin/src/main/java/com/alttd/cometskyblock/challenges/ChallengeHandler.java index c141927..12eb876 100644 --- a/plugin/src/main/java/com/alttd/cometskyblock/challenges/ChallengeHandler.java +++ b/plugin/src/main/java/com/alttd/cometskyblock/challenges/ChallengeHandler.java @@ -3,16 +3,15 @@ package com.alttd.cometskyblock.challenges; import com.alttd.cometskyblock.CometSkyBlockPlugin; import com.alttd.cometskyblock.api.challenges.ChallengeDifficulty; -import java.util.HashMap; -import java.util.Map; +import java.util.*; public class ChallengeHandler { - private final Map easyChallenges = new HashMap<>(); - private final Map mediumChallenges = new HashMap<>(); - private final Map hardChallenges = new HashMap<>(); - private final Map impossibleChallenges = new HashMap<>(); - private final Map exoticChallenges = new HashMap<>(); + private final Map easyChallenges = new LinkedHashMap<>(); + private final Map mediumChallenges = new LinkedHashMap<>(); + private final Map hardChallenges = new LinkedHashMap<>(); + private final Map impossibleChallenges = new LinkedHashMap<>(); + private final Map exoticChallenges = new LinkedHashMap<>(); private final CometSkyBlockPlugin plugin; @@ -56,4 +55,40 @@ public class ChallengeHandler { } } + public List getChallengesList(ChallengeDifficulty challengeDifficulty) { + List challenges = new ArrayList<>(); + switch (challengeDifficulty) { + case MEDIUM -> { + for (Map.Entry challengeEntry : mediumChallenges.entrySet()) { + challenges.add(challengeEntry.getValue()); + } + return challenges; + } + case HARD -> { + for (Map.Entry challengeEntry : hardChallenges.entrySet()) { + challenges.add(challengeEntry.getValue()); + } + return challenges; + } + case LEGENDARY -> { + for (Map.Entry challengeEntry : impossibleChallenges.entrySet()) { + challenges.add(challengeEntry.getValue()); + } + return challenges; + } + case EXOTIC -> { + for (Map.Entry challengeEntry : exoticChallenges.entrySet()) { + challenges.add(challengeEntry.getValue()); + } + return challenges; + } + default -> { + for (Map.Entry challengeEntry : easyChallenges.entrySet()) { + challenges.add(challengeEntry.getValue()); + } + return challenges; + } + } + } + } \ No newline at end of file diff --git a/plugin/src/main/java/com/alttd/cometskyblock/challenges/ChallengesGUI.java b/plugin/src/main/java/com/alttd/cometskyblock/challenges/ChallengesGUI.java index b83450c..5e46d4e 100644 --- a/plugin/src/main/java/com/alttd/cometskyblock/challenges/ChallengesGUI.java +++ b/plugin/src/main/java/com/alttd/cometskyblock/challenges/ChallengesGUI.java @@ -68,7 +68,7 @@ public class ChallengesGUI extends GUIInventory { currentSlot = 0; int startIndex = pageIndex * (getInventory().getSize() - 9); - List challenges = CometSkyBlockPlugin.instance().challengeHandler().getChallenges(challengeDifficulty).values().stream().toList(); + List challenges = CometSkyBlockPlugin.instance().challengeHandler().getChallengesList(challengeDifficulty); for (int i = startIndex; i < challenges.size(); i++) { Challenge challenge = challenges.get(i); int challengeCount = island.challengeCount(challenge.key());