Fix announcers

This commit is contained in:
Daniel Saukel 2016-06-09 23:27:29 +02:00
parent ad9e9b0077
commit 1851be10cb
2 changed files with 35 additions and 2 deletions

View File

@ -310,6 +310,25 @@ public class DGroup {
this.dungeon = dungeon;
}
/**
* Sets up all dungeon-related fields.
*
* @param name
* the name of the dungeon
*/
public void setDungeon(String name) {
dungeon = plugin.getDungeons().getDungeon(name);
if (dungeon != null) {
dungeonName = dungeon.getName();
mapName = dungeon.getConfig().getStartFloor();
unplayedFloors = dungeon.getConfig().getFloors();
} else {
mapName = name;
dungeon = new Dungeon(name);
}
}
/**
* @return the dungeonName
*/

View File

@ -39,6 +39,9 @@ public class AnnouncerStartGameTask extends BukkitRunnable {
HashSet<Player> players = new HashSet<>();
for (DGroup dGroup : announcer.getDGroups()) {
if (dGroup == null) {
continue;
}
for (Player player : dGroup.getPlayers()) {
players.add(player);
}
@ -56,10 +59,21 @@ public class AnnouncerStartGameTask extends BukkitRunnable {
@Override
public void run() {
Game game = new Game(announcer.getDGroups().get(0), announcer.getMapName());
Game game = null;
for (DGroup dGroup : announcer.getDGroups()) {
game.getDGroups().set(announcer.getDGroups().indexOf(dGroup), dGroup);
if (dGroup == null) {
continue;
}
if (game == null) {
game = new Game(dGroup, announcer.getMapName());
} else {
game.getDGroups().add(dGroup);
}
dGroup.setDungeon(announcer.getDungeonName() == null ? announcer.getMapName() : announcer.getDungeonName());
dGroup.setGameWorld(game.getWorld());
}
for (Player player : game.getPlayers()) {