From ae0417bf5cd4d9801115481ed2ee66fb8c560146 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Mon, 29 Sep 2014 08:11:18 +0200 Subject: [PATCH] Some minor changes to server. --- .../src/main/java/mage/server/UserManager.java | 6 +++--- .../main/java/mage/server/game/GameWorker.java | 8 ++++---- Mage/src/mage/game/GameImpl.java | 17 ++++++++++++++++- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/Mage.Server/src/main/java/mage/server/UserManager.java b/Mage.Server/src/main/java/mage/server/UserManager.java index 5a4e2bd5262..710dd1a3578 100644 --- a/Mage.Server/src/main/java/mage/server/UserManager.java +++ b/Mage.Server/src/main/java/mage/server/UserManager.java @@ -37,6 +37,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; +import mage.server.User.UserState; import mage.server.util.ThreadExecutor; import org.apache.log4j.Logger; @@ -178,9 +179,8 @@ public class UserManager { List usersToCheck = new ArrayList<>(); usersToCheck.addAll(users.values()); for (User user : usersToCheck) { - if (user.isExpired(calendar.getTime())) { - logger.info(new StringBuilder(user.getName()).append(": session expired userId: ").append(user.getId()) - .append(" Host: ").append(user.getHost())); + if (!user.getUserState().equals(UserState.Expired) && user.isExpired(calendar.getTime())) { + logger.info(user.getName() + ": session expired userId: "+ user.getId() + " Host: " + user.getHost()); removeUser(user.getId(), DisconnectReason.SessionExpired); } } diff --git a/Mage.Server/src/main/java/mage/server/game/GameWorker.java b/Mage.Server/src/main/java/mage/server/game/GameWorker.java index f015e5e2ec9..e6f21ced285 100644 --- a/Mage.Server/src/main/java/mage/server/game/GameWorker.java +++ b/Mage.Server/src/main/java/mage/server/game/GameWorker.java @@ -42,14 +42,14 @@ public class GameWorker implements Callable { private static final Logger logger = Logger.getLogger(GameWorker.class); - private final GameCallback result; + private final GameCallback gameController; private final Game game; private final UUID choosingPlayerId; - public GameWorker(Game game, UUID choosingPlayerId, GameCallback result) { + public GameWorker(Game game, UUID choosingPlayerId, GameCallback gameController) { this.game = game; this.choosingPlayerId = choosingPlayerId; - this.result = result; + this.gameController = gameController; } @Override @@ -58,7 +58,7 @@ public class GameWorker implements Callable { logger.debug("GameWorker started gameId "+ game.getId()); game.start(choosingPlayerId); game.fireUpdatePlayersEvent(); - result.gameResult(game.getWinner()); + gameController.gameResult(game.getWinner()); game.cleanUp(); } catch (MageException ex) { logger.fatal("GameWorker mage error [" + game.getId() + "]" +ex, ex); diff --git a/Mage/src/mage/game/GameImpl.java b/Mage/src/mage/game/GameImpl.java index a0cf12941c3..ef6d300b27d 100644 --- a/Mage/src/mage/game/GameImpl.java +++ b/Mage/src/mage/game/GameImpl.java @@ -619,7 +619,22 @@ public abstract class GameImpl implements Game, Serializable { } if (gameOver(null)) { winnerId = findWinnersAndLosers(); - logger.info("GAME ended gameId: " + this.getId()); + StringBuilder sb = new StringBuilder("GAME ended gameId: ").append(this.getId()).append(" "); + int count = 0; + for (Player player: this.getState().getPlayers().values()) { + if (count > 0) { + sb.append(" - "); + } + sb.append("[").append(player.getName()).append(" => "); + sb.append(player.hasWon() ? "W":""); + sb.append(player.hasLost()? "L":""); + sb.append(player.hasQuit() ? "Q":""); + sb.append(player.hasIdleTimeout() ? "I":""); + sb.append(player.hasTimerTimeout() ? "T":""); + sb.append("]"); + count++; + } + logger.info(sb.toString()); } }