Join/part messages are not added to history.
This commit is contained in:
@@ -10,28 +10,34 @@ public class ChatRoom {
|
|||||||
public 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);
|
ChatMessage chatMessage = new ChatMessage(new Date(), from, message);
|
||||||
_lastMessages.add(chatMessage);
|
if (addToHistory) {
|
||||||
shrinkLastMessages();
|
_lastMessages.add(chatMessage);
|
||||||
|
shrinkLastMessages();
|
||||||
|
}
|
||||||
for (Map.Entry<String, ChatRoomListener> listeners : _chatRoomListeners.entrySet())
|
for (Map.Entry<String, ChatRoomListener> listeners : _chatRoomListeners.entrySet())
|
||||||
if (!listeners.getKey().equals(from))
|
if (!listeners.getKey().equals(from))
|
||||||
listeners.getValue().messageReceived(chatMessage);
|
listeners.getValue().messageReceived(chatMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void postMessage(String from, String message) {
|
||||||
|
postMessage(from, message, true);
|
||||||
|
}
|
||||||
|
|
||||||
public void joinChatRoom(String playerId, ChatRoomListener listener) {
|
public void joinChatRoom(String playerId, ChatRoomListener listener) {
|
||||||
boolean wasInRoom = _chatRoomListeners.containsKey(playerId);
|
boolean wasInRoom = _chatRoomListeners.containsKey(playerId);
|
||||||
_chatRoomListeners.put(playerId, listener);
|
_chatRoomListeners.put(playerId, listener);
|
||||||
for (ChatMessage lastMessage : _lastMessages)
|
for (ChatMessage lastMessage : _lastMessages)
|
||||||
listener.messageReceived(lastMessage);
|
listener.messageReceived(lastMessage);
|
||||||
if (!wasInRoom)
|
if (!wasInRoom)
|
||||||
postMessage("System", playerId + " joined the room");
|
postMessage("System", playerId + " joined the room", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void partChatRoom(String playerId) {
|
public void partChatRoom(String playerId) {
|
||||||
boolean wasInRoom = (_chatRoomListeners.remove(playerId) != null);
|
boolean wasInRoom = (_chatRoomListeners.remove(playerId) != null);
|
||||||
if (wasInRoom)
|
if (wasInRoom)
|
||||||
postMessage("System", playerId + " left the room");
|
postMessage("System", playerId + " left the room", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<String> getUsersInRoom() {
|
public Set<String> getUsersInRoom() {
|
||||||
|
|||||||
Reference in New Issue
Block a user