Working on Chat a bit more... allowing to retrieve list of players in the chat.

This commit is contained in:
marcins78@gmail.com
2011-09-14 22:29:22 +00:00
parent 311ba79f82
commit ff311cfc70
3 changed files with 22 additions and 22 deletions

View File

@@ -1,9 +1,6 @@
package com.gempukku.lotro.chat; package com.gempukku.lotro.chat;
import java.util.Date; import java.util.*;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
public class ChatRoom { public class ChatRoom {
private int _maxMessageCount = 10; private int _maxMessageCount = 10;
@@ -33,6 +30,10 @@ public class ChatRoom {
_chatRoomListeners.remove(playerId); _chatRoomListeners.remove(playerId);
} }
public Set<String> getUsersInRoom() {
return new HashSet<String>(_chatRoomListeners.keySet());
}
private void shrinkLastMessages() { private void shrinkLastMessages() {
while (_lastMessages.size() > _maxMessageCount) { while (_lastMessages.size() > _maxMessageCount) {
_lastMessages.removeFirst(); _lastMessages.removeFirst();

View File

@@ -5,6 +5,7 @@ import com.gempukku.lotro.GatheringChatRoomListener;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
public class ChatRoomMediator { public class ChatRoomMediator {
private ChatRoom _chatRoom = new ChatRoom(); private ChatRoom _chatRoom = new ChatRoom();
@@ -47,4 +48,8 @@ public class ChatRoomMediator {
} }
} }
} }
public synchronized Set<String> getUsersInRoom() {
return _chatRoom.getUsersInRoom();
}
} }

View File

@@ -342,17 +342,7 @@ public class ServerResource {
Document doc = documentBuilder.newDocument(); Document doc = documentBuilder.newDocument();
Element chatElem = doc.createElement("chat"); serializeChatRoomData(room, chatMessages, doc);
chatElem.setAttribute("roomName", room);
doc.appendChild(chatElem);
for (ChatMessage chatMessage : chatMessages) {
Element message = doc.createElement("message");
message.setAttribute("from", chatMessage.getFrom());
message.setAttribute("date", String.valueOf(chatMessage.getWhen().getTime()));
message.appendChild(doc.createTextNode(chatMessage.getMessage()));
chatElem.appendChild(message);
}
return doc; return doc;
} }
@@ -381,19 +371,23 @@ public class ServerResource {
Document doc = documentBuilder.newDocument(); Document doc = documentBuilder.newDocument();
serializeChatRoomData(room, chatMessages, doc);
return doc;
}
private void serializeChatRoomData(String room, List<ChatMessage> chatMessages, Document doc) {
Element chatElem = doc.createElement("chat"); Element chatElem = doc.createElement("chat");
chatElem.setAttribute("roomName", room); chatElem.setAttribute("roomName", room);
doc.appendChild(chatElem); doc.appendChild(chatElem);
for (ChatMessage chatMessage : chatMessages) { for (ChatMessage chatMessage : chatMessages) {
Element messageElem = doc.createElement("message"); Element message = doc.createElement("message");
messageElem.setAttribute("from", chatMessage.getFrom()); message.setAttribute("from", chatMessage.getFrom());
messageElem.setAttribute("date", String.valueOf(chatMessage.getWhen().getTime())); message.setAttribute("date", String.valueOf(chatMessage.getWhen().getTime()));
messageElem.appendChild(doc.createTextNode(chatMessage.getMessage())); message.appendChild(doc.createTextNode(chatMessage.getMessage()));
chatElem.appendChild(messageElem); chatElem.appendChild(message);
} }
return doc;
} }
private class SerializationVisitor implements ParticipantCommunicationVisitor { private class SerializationVisitor implements ParticipantCommunicationVisitor {