mirror of
https://github.com/magefree/mage.git
synced 2025-12-25 04:52:07 -08:00
Added a quit match option. FFA game gets no more killed if host left mage or quitted match.
This commit is contained in:
parent
ec9bb538ed
commit
7b260c960b
15 changed files with 178 additions and 54 deletions
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue