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.api.challenges.ChallengeDifficulty;
import java.util.HashMap;
import java.util.Map;
import java.util.*;
public class ChallengeHandler {
private final Map<String, Challenge> easyChallenges = new HashMap<>();
private final Map<String, Challenge> mediumChallenges = new HashMap<>();
private final Map<String, Challenge> hardChallenges = new HashMap<>();
private final Map<String, Challenge> impossibleChallenges = new HashMap<>();
private final Map<String, Challenge> exoticChallenges = new HashMap<>();
private final Map<String, Challenge> easyChallenges = new LinkedHashMap<>();
private final Map<String, Challenge> mediumChallenges = new LinkedHashMap<>();
private final Map<String, Challenge> hardChallenges = new LinkedHashMap<>();
private final Map<String, Challenge> impossibleChallenges = new LinkedHashMap<>();
private final Map<String, Challenge> exoticChallenges = new LinkedHashMap<>();
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;
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++) {
Challenge challenge = challenges.get(i);
int challengeCount = island.challengeCount(challenge.key());