diff --git a/src/main/java/io/github/dre2n/dungeonsxl/announcer/Announcer.java b/src/main/java/io/github/dre2n/dungeonsxl/announcer/Announcer.java index cfce4d83..76bd35f7 100644 --- a/src/main/java/io/github/dre2n/dungeonsxl/announcer/Announcer.java +++ b/src/main/java/io/github/dre2n/dungeonsxl/announcer/Announcer.java @@ -149,6 +149,7 @@ public class Announcer { this.maxPlayersPerGroup = maxPlayersPerGroup; } + /* Getters and setters */ /** * @return the name of the announcer */ @@ -297,6 +298,20 @@ public class Announcer { return startTask; } + /** + * @return whether enough players and groups joined the announced game to start + */ + public boolean areRequirementsFulfilled() { + int i = 0; + for (DGroup group : dGroups) { + if (group != null && group.getPlayers().size() >= minPlayersPerGroup) { + i++; + } + } + return i >= minGroupsPerGame; + } + + /* Actions */ /** * Cancels the start task and sets it to null. */ @@ -383,14 +398,7 @@ public class Announcer { showGUI(player); - int i = 0; - for (DGroup group : dGroups) { - if (group != null && group.getPlayers().size() >= minPlayersPerGroup) { - i++; - } - } - - if (i >= minGroupsPerGame) { + if (areRequirementsFulfilled()) { if (startTask == null) { startTask = new AnnouncerStartGameTask(this); startTask.runTaskLater(plugin, 20 * 30L); diff --git a/src/main/java/io/github/dre2n/dungeonsxl/task/AnnouncerStartGameTask.java b/src/main/java/io/github/dre2n/dungeonsxl/task/AnnouncerStartGameTask.java index 80518445..faba80be 100644 --- a/src/main/java/io/github/dre2n/dungeonsxl/task/AnnouncerStartGameTask.java +++ b/src/main/java/io/github/dre2n/dungeonsxl/task/AnnouncerStartGameTask.java @@ -59,6 +59,11 @@ public class AnnouncerStartGameTask extends BukkitRunnable { @Override public void run() { + if (!announcer.areRequirementsFulfilled()) { + cancel(); + return; + } + Game game = null; for (DGroup dGroup : announcer.getDGroups()) {