Join/part messages are not added to history.

This commit is contained in:
marcins78@gmail.com
2011-12-04 14:13:27 +00:00
parent 0f364aa6fe
commit fcdde94f0e

View File

@@ -10,28 +10,34 @@ public class ChatRoom {
public ChatRoom() {
}
public void postMessage(String from, String message) {
private void postMessage(String from, String message, boolean addToHistory) {
ChatMessage chatMessage = new ChatMessage(new Date(), from, message);
_lastMessages.add(chatMessage);
shrinkLastMessages();
if (addToHistory) {
_lastMessages.add(chatMessage);
shrinkLastMessages();
}
for (Map.Entry<String, ChatRoomListener> listeners : _chatRoomListeners.entrySet())
if (!listeners.getKey().equals(from))
listeners.getValue().messageReceived(chatMessage);
}
public void postMessage(String from, String message) {
postMessage(from, message, true);
}
public void joinChatRoom(String playerId, ChatRoomListener listener) {
boolean wasInRoom = _chatRoomListeners.containsKey(playerId);
_chatRoomListeners.put(playerId, listener);
for (ChatMessage lastMessage : _lastMessages)
listener.messageReceived(lastMessage);
if (!wasInRoom)
postMessage("System", playerId + " joined the room");
postMessage("System", playerId + " joined the room", false);
}
public void partChatRoom(String playerId) {
boolean wasInRoom = (_chatRoomListeners.remove(playerId) != null);
if (wasInRoom)
postMessage("System", playerId + " left the room");
postMessage("System", playerId + " left the room", false);
}
public Set<String> getUsersInRoom() {