mirror of
https://github.com/BentoBoxWorld/Challenges.git
synced 2024-11-25 12:05:11 +01:00
parent
2843a8e3ed
commit
17dc22ed66
@ -113,32 +113,36 @@ public class ChallengesManager
|
|||||||
* This comparator orders challenges by their level, order and name.
|
* This comparator orders challenges by their level, order and name.
|
||||||
*/
|
*/
|
||||||
private final Comparator<Challenge> challengeComparator = (o1, o2) -> {
|
private final Comparator<Challenge> challengeComparator = (o1, o2) -> {
|
||||||
|
// Get the levels
|
||||||
ChallengeLevel o1Level = this.getLevel(o1.getLevel());
|
ChallengeLevel o1Level = this.getLevel(o1.getLevel());
|
||||||
ChallengeLevel o2Level = this.getLevel(o2.getLevel());
|
ChallengeLevel o2Level = this.getLevel(o2.getLevel());
|
||||||
|
|
||||||
if (o1Level == null && o2Level == null)
|
// Handle null levels consistently
|
||||||
{
|
if (o1Level == null && o2Level == null) {
|
||||||
|
// Both levels are null, compare by order
|
||||||
return Integer.compare(o1.getOrder(), o2.getOrder());
|
return Integer.compare(o1.getOrder(), o2.getOrder());
|
||||||
}
|
} else if (o1Level == null) {
|
||||||
else if (o1Level == null)
|
// If o1 level is null, it should be ordered lower
|
||||||
{
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
} else if (o2Level == null) {
|
||||||
else if (o2Level == null)
|
// If o2 level is null, it should be ordered lower
|
||||||
{
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
else if (o1Level.equals(o2Level))
|
|
||||||
{
|
// If both levels are non-null, compare their orders
|
||||||
|
int levelComparison = Integer.compare(o1Level.getOrder(), o2Level.getOrder());
|
||||||
|
|
||||||
|
// If levels are the same, compare by challenge order
|
||||||
|
if (levelComparison == 0) {
|
||||||
return Integer.compare(o1.getOrder(), o2.getOrder());
|
return Integer.compare(o1.getOrder(), o2.getOrder());
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
// Return the level comparison result
|
||||||
return Integer.compare(o1Level.getOrder(), o2Level.getOrder());
|
return levelComparison;
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------
|
// ---------------------------------------------------------------------
|
||||||
// Section: Constructor
|
// Section: Constructor
|
||||||
// ---------------------------------------------------------------------
|
// ---------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user