diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatRoom.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatRoom.java index 27ece0ccb..b7413e1bf 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatRoom.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatRoom.java @@ -1,9 +1,6 @@ package com.gempukku.lotro.chat; -import java.util.Date; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.Map; +import java.util.*; public class ChatRoom { private int _maxMessageCount = 10; @@ -33,6 +30,10 @@ public class ChatRoom { _chatRoomListeners.remove(playerId); } + public Set getUsersInRoom() { + return new HashSet(_chatRoomListeners.keySet()); + } + private void shrinkLastMessages() { while (_lastMessages.size() > _maxMessageCount) { _lastMessages.removeFirst(); diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatRoomMediator.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatRoomMediator.java index 70b771a23..b8720ff7a 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatRoomMediator.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatRoomMediator.java @@ -5,6 +5,7 @@ import com.gempukku.lotro.GatheringChatRoomListener; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Set; public class ChatRoomMediator { private ChatRoom _chatRoom = new ChatRoom(); @@ -47,4 +48,8 @@ public class ChatRoomMediator { } } } + + public synchronized Set getUsersInRoom() { + return _chatRoom.getUsersInRoom(); + } } diff --git a/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/ServerResource.java b/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/ServerResource.java index 159b899d4..1791205fc 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/ServerResource.java +++ b/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/ServerResource.java @@ -342,17 +342,7 @@ public class ServerResource { Document doc = documentBuilder.newDocument(); - Element chatElem = doc.createElement("chat"); - 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); - } + serializeChatRoomData(room, chatMessages, doc); return doc; } @@ -381,19 +371,23 @@ public class ServerResource { Document doc = documentBuilder.newDocument(); + serializeChatRoomData(room, chatMessages, doc); + + return doc; + } + + private void serializeChatRoomData(String room, List chatMessages, Document doc) { Element chatElem = doc.createElement("chat"); chatElem.setAttribute("roomName", room); doc.appendChild(chatElem); for (ChatMessage chatMessage : chatMessages) { - Element messageElem = doc.createElement("message"); - messageElem.setAttribute("from", chatMessage.getFrom()); - messageElem.setAttribute("date", String.valueOf(chatMessage.getWhen().getTime())); - messageElem.appendChild(doc.createTextNode(chatMessage.getMessage())); - chatElem.appendChild(messageElem); + 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; } private class SerializationVisitor implements ParticipantCommunicationVisitor {