diff --git a/Mage.Server/src/main/java/mage/server/ChatManager.java b/Mage.Server/src/main/java/mage/server/ChatManager.java index 1fdebab217f..371ead70e5f 100644 --- a/Mage.Server/src/main/java/mage/server/ChatManager.java +++ b/Mage.Server/src/main/java/mage/server/ChatManager.java @@ -295,6 +295,15 @@ public enum ChatManager { } + public void sendLostConnectionMessage(UUID userId, DisconnectReason reason) { + UserManager.instance.getUser(userId).ifPresent(user + -> getChatSessions() + .stream() + .filter(chat -> chat.hasUser(userId)) + .forEach(chatSession -> chatSession.broadcast(null, user.getName() + reason.getMessage(), MessageColor.BLUE, true, MessageType.STATUS, null))); + + } + public void removeUser(UUID userId, DisconnectReason reason) { for (ChatSession chatSession : getChatSessions()) { if (chatSession.hasUser(userId)) { diff --git a/Mage.Server/src/main/java/mage/server/UserManager.java b/Mage.Server/src/main/java/mage/server/UserManager.java index 2b9efb3a4d5..3cd61e895b7 100644 --- a/Mage.Server/src/main/java/mage/server/UserManager.java +++ b/Mage.Server/src/main/java/mage/server/UserManager.java @@ -139,6 +139,8 @@ public enum UserManager { if (reason == DisconnectReason.Disconnected) { removeUserFromAllTablesAndChat(userId, reason); user.get().setUserState(UserState.Offline); + } else { + ChatManager.instance.sendLostConnectionMessage(userId, reason); } } }