mirror of
https://github.com/BentoBoxWorld/Challenges.git
synced 2024-11-24 19:45:14 +01:00
Fixes #263
Thanks to @sgdc3 who found my mistake with checking if challenges exists when opening GUI.
This commit is contained in:
parent
b4e62f1e89
commit
93f07b95ed
@ -2088,26 +2088,26 @@ public class ChallengesManager
|
||||
/**
|
||||
* This method returns if in given world has any stored challenge or level.
|
||||
* @param world World that needs to be checked
|
||||
* @return <code>true</code> if world has any challenge or level, otherwise <code>false</code>
|
||||
* @return {@code true} if world has any challenge or level, otherwise {@code false}
|
||||
*/
|
||||
public boolean hasAnyChallengeData(@NonNull World world)
|
||||
{
|
||||
return this.islandWorldManager.getAddon(world).filter(gameMode ->
|
||||
this.hasAnyChallengeData(gameMode.getDescription().getName())).isPresent();
|
||||
this.hasAnyChallengeData(gameMode.getDescription().getName())).isPresent();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This method returns if in given gameMode has any stored challenge or level.
|
||||
* @param gameMode GameMode addon name that needs to be checked
|
||||
* @return <code>true</code> if gameMode has any challenge or level, otherwise <code>false</code>
|
||||
* @return {@code true} if gameMode has any challenge or level, otherwise {@code false}
|
||||
*/
|
||||
public boolean hasAnyChallengeData(@NonNull String gameMode)
|
||||
{
|
||||
return this.challengeDatabase.loadObjects().stream().anyMatch(
|
||||
challenge -> challenge.matchGameMode(gameMode)) ||
|
||||
this.levelDatabase.loadObjects().stream().anyMatch(
|
||||
level -> level.matchGameMode(gameMode));
|
||||
return this.challengeCacheData.values().stream().anyMatch(challenge -> challenge.matchGameMode(gameMode)) ||
|
||||
this.levelCacheData.values().stream().anyMatch(level -> level.matchGameMode(gameMode)) ||
|
||||
this.challengeDatabase.loadObjects().stream().anyMatch(challenge -> challenge.matchGameMode(gameMode)) ||
|
||||
this.levelDatabase.loadObjects().stream().anyMatch(level -> level.matchGameMode(gameMode));
|
||||
}
|
||||
|
||||
|
||||
|
@ -62,6 +62,8 @@ public class ChallengesGUI extends CommonGUI
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
this.containsChallenges = this.challengesManager.hasAnyChallengeData(this.world);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
@ -76,7 +78,7 @@ public class ChallengesGUI extends CommonGUI
|
||||
public void build()
|
||||
{
|
||||
// Do not open gui if there is no challenges.
|
||||
if (!this.challengesManager.hasAnyChallengeData(this.world))
|
||||
if (!this.containsChallenges)
|
||||
{
|
||||
this.addon.logError("There are no challenges set up!");
|
||||
this.user.sendMessage("challenges.errors.no-challenges");
|
||||
@ -518,4 +520,9 @@ public class ChallengesGUI extends CommonGUI
|
||||
* Challenge Manager object.
|
||||
*/
|
||||
private ChallengesManager challengesManager;
|
||||
|
||||
/**
|
||||
* This boolean indicates if in the world there exist challenges for displaying in GUI.
|
||||
*/
|
||||
private final boolean containsChallenges;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user