Use a LinkedHashMap to store challenges.

This commit is contained in:
Len 2024-03-22 20:27:03 +01:00
parent 875d770742
commit b773e7f0f3
2 changed files with 43 additions and 8 deletions

View File

@ -3,16 +3,15 @@ package com.alttd.cometskyblock.challenges;
import com.alttd.cometskyblock.CometSkyBlockPlugin; import com.alttd.cometskyblock.CometSkyBlockPlugin;
import com.alttd.cometskyblock.api.challenges.ChallengeDifficulty; import com.alttd.cometskyblock.api.challenges.ChallengeDifficulty;
import java.util.HashMap; import java.util.*;
import java.util.Map;
public class ChallengeHandler { public class ChallengeHandler {
private final Map<String, Challenge> easyChallenges = new HashMap<>(); private final Map<String, Challenge> easyChallenges = new LinkedHashMap<>();
private final Map<String, Challenge> mediumChallenges = new HashMap<>(); private final Map<String, Challenge> mediumChallenges = new LinkedHashMap<>();
private final Map<String, Challenge> hardChallenges = new HashMap<>(); private final Map<String, Challenge> hardChallenges = new LinkedHashMap<>();
private final Map<String, Challenge> impossibleChallenges = new HashMap<>(); private final Map<String, Challenge> impossibleChallenges = new LinkedHashMap<>();
private final Map<String, Challenge> exoticChallenges = new HashMap<>(); private final Map<String, Challenge> exoticChallenges = new LinkedHashMap<>();
private final CometSkyBlockPlugin plugin; private final CometSkyBlockPlugin plugin;
@ -56,4 +55,40 @@ public class ChallengeHandler {
} }
} }
public List<Challenge> getChallengesList(ChallengeDifficulty challengeDifficulty) {
List<Challenge> challenges = new ArrayList<>();
switch (challengeDifficulty) {
case MEDIUM -> {
for (Map.Entry<String, Challenge> challengeEntry : mediumChallenges.entrySet()) {
challenges.add(challengeEntry.getValue());
}
return challenges;
}
case HARD -> {
for (Map.Entry<String, Challenge> challengeEntry : hardChallenges.entrySet()) {
challenges.add(challengeEntry.getValue());
}
return challenges;
}
case LEGENDARY -> {
for (Map.Entry<String, Challenge> challengeEntry : impossibleChallenges.entrySet()) {
challenges.add(challengeEntry.getValue());
}
return challenges;
}
case EXOTIC -> {
for (Map.Entry<String, Challenge> challengeEntry : exoticChallenges.entrySet()) {
challenges.add(challengeEntry.getValue());
}
return challenges;
}
default -> {
for (Map.Entry<String, Challenge> challengeEntry : easyChallenges.entrySet()) {
challenges.add(challengeEntry.getValue());
}
return challenges;
}
}
}
} }

View File

@ -68,7 +68,7 @@ public class ChallengesGUI extends GUIInventory {
currentSlot = 0; currentSlot = 0;
int startIndex = pageIndex * (getInventory().getSize() - 9); int startIndex = pageIndex * (getInventory().getSize() - 9);
List<Challenge> challenges = CometSkyBlockPlugin.instance().challengeHandler().getChallenges(challengeDifficulty).values().stream().toList(); List<Challenge> challenges = CometSkyBlockPlugin.instance().challengeHandler().getChallengesList(challengeDifficulty);
for (int i = startIndex; i < challenges.size(); i++) { for (int i = startIndex; i < challenges.size(); i++) {
Challenge challenge = challenges.get(i); Challenge challenge = challenges.get(i);
int challengeCount = island.challengeCount(challenge.key()); int challengeCount = island.challengeCount(challenge.key());