From 070e8609f493ae1bafe6785fab85a1ab0f1961cb Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Fri, 26 Sep 2014 15:31:56 +0200 Subject: [PATCH] * Some changes to user handling / logging. --- .../main/java/mage/server/TableController.java | 2 +- Mage.Server/src/main/java/mage/server/User.java | 3 ++- .../src/main/java/mage/server/UserManager.java | 6 +++--- .../server/tournament/TournamentController.java | 2 +- ...nFromGraveyardToBattlefieldTargetEffect.java | 17 ++++++++--------- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Mage.Server/src/main/java/mage/server/TableController.java b/Mage.Server/src/main/java/mage/server/TableController.java index 303ea6f4d82..e2b00d5ecd4 100644 --- a/Mage.Server/src/main/java/mage/server/TableController.java +++ b/Mage.Server/src/main/java/mage/server/TableController.java @@ -420,7 +420,7 @@ public class TableController { if (table.isTournament()) { logger.debug("Quit tournament sub tables for userId: " + userId); TableManager.getInstance().userQuitTournamentSubTables(tournament.getId(), userId); - logger.debug("Quit tournament Id: " + table.getTournament().getId()); + logger.debug("Quit tournament Id: " + table.getTournament().getId() + "(" +table.getTournament().getTournamentState() + ")"); TournamentManager.getInstance().quit(tournament.getId(), userId); } else { MatchPlayer matchPlayer = match.getPlayer(playerId); diff --git a/Mage.Server/src/main/java/mage/server/User.java b/Mage.Server/src/main/java/mage/server/User.java index ad0351bf691..e69e874afc9 100644 --- a/Mage.Server/src/main/java/mage/server/User.java +++ b/Mage.Server/src/main/java/mage/server/User.java @@ -60,7 +60,7 @@ public class User { private static final Logger logger = Logger.getLogger(User.class); public enum UserState { - Created, Connected, Disconnected, Reconnected; + Created, Connected, Disconnected, Reconnected, Expired; } private final UUID userId; @@ -252,6 +252,7 @@ public class User { public boolean isExpired(Date expired) { if (lastActivity.before(expired)) { logger.debug(userName + " is expired!"); + userState = UserState.Expired; return true; } logger.trace(new StringBuilder("isExpired: User ").append(userName).append(" lastActivity: ").append(lastActivity).append(" expired: ").append(expired).toString()); diff --git a/Mage.Server/src/main/java/mage/server/UserManager.java b/Mage.Server/src/main/java/mage/server/UserManager.java index 08fc6c84c94..5a4e2bd5262 100644 --- a/Mage.Server/src/main/java/mage/server/UserManager.java +++ b/Mage.Server/src/main/java/mage/server/UserManager.java @@ -173,12 +173,12 @@ public class UserManager { * Is the connection lost for more than 3 minutes, the user will be removed (within 3 minutes the user can reconnect) */ private void checkExpired() { - Calendar expired = Calendar.getInstance(); - expired.add(Calendar.MINUTE, -3); + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.MINUTE, -3); List usersToCheck = new ArrayList<>(); usersToCheck.addAll(users.values()); for (User user : usersToCheck) { - if (user.isExpired(expired.getTime())) { + if (user.isExpired(calendar.getTime())) { logger.info(new StringBuilder(user.getName()).append(": session expired userId: ").append(user.getId()) .append(" Host: ").append(user.getHost())); removeUser(user.getId(), DisconnectReason.SessionExpired); diff --git a/Mage.Server/src/main/java/mage/server/tournament/TournamentController.java b/Mage.Server/src/main/java/mage/server/tournament/TournamentController.java index 9928ffab97a..2210fd87a65 100644 --- a/Mage.Server/src/main/java/mage/server/tournament/TournamentController.java +++ b/Mage.Server/src/main/java/mage/server/tournament/TournamentController.java @@ -320,7 +320,6 @@ public class TournamentController { if (tPlayer != null) { if (started) { if (tPlayer.isInTournament()) { - ChatManager.getInstance().broadcast(chatId, "", tPlayer.getPlayer().getName() + " has quit the tournament", MessageColor.BLACK, true, MessageType.STATUS, SoundToPlay.PlayerQuitTournament); String info; if (tournament.isDoneConstructing()) { info = new StringBuilder("during round ").append(tournament.getRounds().size()).toString(); @@ -351,6 +350,7 @@ public class TournamentController { if (tournamentSessions.containsKey(playerId)) { tournamentSessions.get(tPlayer.getPlayer().getId()).quit(); } + ChatManager.getInstance().broadcast(chatId, "", tPlayer.getPlayer().getName() + " has quit the tournament", MessageColor.BLACK, true, MessageType.STATUS, SoundToPlay.PlayerQuitTournament); } } else { tournament.leave(playerId); diff --git a/Mage/src/mage/abilities/effects/common/ReturnFromGraveyardToBattlefieldTargetEffect.java b/Mage/src/mage/abilities/effects/common/ReturnFromGraveyardToBattlefieldTargetEffect.java index d9896253a36..3133e4c0ce9 100644 --- a/Mage/src/mage/abilities/effects/common/ReturnFromGraveyardToBattlefieldTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/ReturnFromGraveyardToBattlefieldTargetEffect.java @@ -70,23 +70,22 @@ public class ReturnFromGraveyardToBattlefieldTargetEffect extends OneShotEffect @Override public boolean apply(Game game, Ability source) { - boolean result = false; - for (UUID targetId: getTargetPointer().getTargets(game, source)) { - Card card = game.getCard(targetId); - if (card != null) { - Player player = game.getPlayer(source.getControllerId()); - if (player != null) { - if (player.putOntoBattlefieldWithInfo(card, game, Zone.GRAVEYARD, source.getSourceId(), tapped)){ + Player player = game.getPlayer(source.getControllerId()); + if (player != null) { + for (UUID targetId : getTargetPointer().getTargets(game, source)) { + Card card = game.getCard(targetId); + if (card != null) { + if (player.putOntoBattlefieldWithInfo(card, game, Zone.GRAVEYARD, source.getSourceId(), tapped)) { Permanent permanent = game.getPermanent(source.getSourceId()); if (permanent != null) { permanent.changeControllerId(source.getControllerId(), game); - result = true; } } } } + return true; } - return result; + return false; } @Override