Added a quit match option. FFA game gets no more killed if host left mage or quitted match.

This commit is contained in:
LevelX2 2013-07-02 22:15:49 +02:00
parent ec9bb538ed
commit 7b260c960b
15 changed files with 178 additions and 54 deletions

View file

@ -358,22 +358,24 @@ public class TableController {
String creator = null;
String opponent = null;
for (Entry<UUID, UUID> entry: userPlayerMap.entrySet()) {
User user = UserManager.getInstance().getUser(entry.getKey());
if (user != null) {
user.gameStarted(match.getGame().getId(), entry.getValue());
if (creator == null) {
creator = user.getName();
} else {
if (opponent == null) {
opponent = user.getName();
if (!match.getPlayer(entry.getValue()).hasQuitted()) {
User user = UserManager.getInstance().getUser(entry.getKey());
if (user != null) {
user.gameStarted(match.getGame().getId(), entry.getValue());
if (creator == null) {
creator = user.getName();
} else {
if (opponent == null) {
opponent = user.getName();
}
}
}
}
else {
TableManager.getInstance().removeTable(table.getId());
GameManager.getInstance().removeGame(match.getGame().getId());
logger.warn("Unable to find player " + entry.getKey());
break;
else {
TableManager.getInstance().removeTable(table.getId());
GameManager.getInstance().removeGame(match.getGame().getId());
logger.warn("Unable to find player " + entry.getKey());
break;
}
}
}
ServerMessagesUtil.getInstance().incGamesStarted();

View file

@ -306,6 +306,10 @@ public class GameController implements GameCallback {
game.concede(getPlayerId(userId));
}
public void quit(UUID userId) {
game.quit(getPlayerId(userId));
}
public void undo(UUID userId) {
game.undo(getPlayerId(userId));
}

View file

@ -103,6 +103,12 @@ public class GameManager {
}
}
public void quitMatch(UUID gameId, UUID userId) {
if (gameControllers.containsKey(gameId)) {
gameControllers.get(gameId).quit(userId);
}
}
public void undo(UUID gameId, UUID userId) {
if (gameControllers.containsKey(gameId)) {
gameControllers.get(gameId).undo(userId);