Show user name in title bar of MAGE. Clear table chat after disconnect. Remove user from chat after disconnect. Some tweaking about the messages if a user disconnected/session expired.

This commit is contained in:
LevelX2 2013-04-29 17:18:43 +02:00
parent ae30e9a884
commit b6ddaabe44
12 changed files with 58 additions and 28 deletions

View file

@ -64,12 +64,23 @@ public class ChatSession {
}
}
public void kill(UUID userId) {
public void kill(UUID userId, User.DisconnectReason reason) {
if (userId != null && clients.containsKey(userId)) {
String userName = clients.get(userId);
String message;
clients.remove(userId);
broadcast(userName, " has left", MessageColor.BLUE);
logger.info(userName + " has left chat " + chatId);
switch (reason) {
case Disconnected:
message = " has quit MAGE";
break;
case SessionExpired:
message = " session expired";
break;
default:
message = " has left chat";
}
broadcast(userName, message, MessageColor.BLUE);
logger.info(userName + message + " " + chatId);
}
}
@ -86,10 +97,12 @@ public class ChatSession {
logger.debug("Broadcasting '" + msg + "' for " + chatId);
for (UUID userId: clients.keySet()) {
User user = UserManager.getInstance().getUser(userId);
if (user != null)
if (user != null) {
user.fireCallback(new ClientCallback("chatMessage", chatId, new ChatMessage(username, msg, time, color)));
else
kill(userId);
}
else {
kill(userId, User.DisconnectReason.CleaningUp);
}
}
}
}