diff --git a/Mage.Server/src/main/java/mage/server/User.java b/Mage.Server/src/main/java/mage/server/User.java index 312a582a395..b09c98e59b3 100644 --- a/Mage.Server/src/main/java/mage/server/User.java +++ b/Mage.Server/src/main/java/mage/server/User.java @@ -327,18 +327,23 @@ public class User { } public void kill(DisconnectReason reason) { + logger.debug("start user kill"); for (GameSession gameSession: gameSessions.values()) { gameSession.kill(); } + logger.debug("user kill after game"); for (DraftSession draftSession: draftSessions.values()) { draftSession.setKilled(); } + logger.debug("user kill after draft"); for (TournamentSession tournamentSession: tournamentSessions.values()) { tournamentSession.setKilled(); } + logger.debug("user kill after tournament"); for (Entry entry: tables.entrySet()) { TableManager.getInstance().leaveTable(userId, entry.getValue().getId()); } + logger.debug("user kill after table"); ChatManager.getInstance().removeUser(userId, reason); } diff --git a/Mage.Server/src/main/java/mage/server/UserManager.java b/Mage.Server/src/main/java/mage/server/UserManager.java index ced0f76f45c..ae803cff1d4 100644 --- a/Mage.Server/src/main/java/mage/server/UserManager.java +++ b/Mage.Server/src/main/java/mage/server/UserManager.java @@ -130,7 +130,7 @@ public class UserManager { .append(" sessionId: ").append(user.getSessionId()) .append(" Reason: ").append(reason.toString())); ChatManager.getInstance().removeUser(userId, reason); - users.get(userId).kill(reason); + user.kill(reason); users.remove(userId); } else { logger.warn(new StringBuilder("Trying to remove userId: ").append(userId).append(" but user does not exist.")); @@ -165,7 +165,7 @@ public class UserManager { if (user.isExpired(expired.getTime())) { logger.info(new StringBuilder(user.getName()).append(": session expired userId: ").append(user.getId()) .append(" Host: ").append(user.getHost())); - SessionManager.getInstance().getSession(user.getSessionId()).kill(DisconnectReason.SessionExpired); + removeUser(user.getId(), DisconnectReason.SessionExpired); } } logger.debug("checkExpired - end");