From 58e97bfa3154a5af633d92362d0c7fee49afc559 Mon Sep 17 00:00:00 2001 From: marcins78 Date: Tue, 8 Jan 2013 10:33:29 +0000 Subject: [PATCH] Chat rooms can now be configured to not generate join/part messages (like in case of Game Hall). --- .../src/main/java/com/gempukku/lotro/chat/ChatRoom.java | 8 +++++--- .../java/com/gempukku/lotro/chat/ChatRoomMediator.java | 9 +++++---- .../main/java/com/gempukku/lotro/chat/ChatServer.java | 8 ++++---- .../main/java/com/gempukku/lotro/game/LotroServer.java | 4 ++-- .../main/java/com/gempukku/lotro/hall/HallServer.java | 2 +- .../main/java/com/gempukku/lotro/trade/TradeServer.java | 2 +- 6 files changed, 18 insertions(+), 15 deletions(-) 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 e557c8664..e290861a3 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 @@ -12,8 +12,10 @@ public class ChatRoom { return o1.compareToIgnoreCase(o2); } }); + private boolean _muteJoinPartMessages; - public ChatRoom() { + public ChatRoom(boolean muteJoinPartMessages) { + _muteJoinPartMessages = muteJoinPartMessages; } private void postMessage(String from, String message, boolean addToHistory) { @@ -35,13 +37,13 @@ public class ChatRoom { _chatRoomListeners.put(playerId, listener); for (ChatMessage lastMessage : _lastMessages) listener.messageReceived(lastMessage); - if (!wasInRoom) + if (!wasInRoom && !_muteJoinPartMessages) postMessage("System", playerId + " joined the room", false); } public void partChatRoom(String playerId) { boolean wasInRoom = (_chatRoomListeners.remove(playerId) != null); - if (wasInRoom) + if (wasInRoom && !_muteJoinPartMessages) postMessage("System", playerId + " left the room", false); } 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 da6048896..2d906d9f8 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 @@ -11,7 +11,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock; public class ChatRoomMediator { private Logger _logger; - private ChatRoom _chatRoom = new ChatRoom(); + private ChatRoom _chatRoom; private Map _listeners = new HashMap(); @@ -20,14 +20,15 @@ public class ChatRoomMediator { private ReadWriteLock _lock = new ReentrantReadWriteLock(); - public ChatRoomMediator(String roomName, int secondsTimeoutPeriod) { - this(roomName, secondsTimeoutPeriod, null); + public ChatRoomMediator(String roomName, boolean muteJoinPartMessages, int secondsTimeoutPeriod) { + this(roomName, muteJoinPartMessages, secondsTimeoutPeriod, null); } - public ChatRoomMediator(String roomName, int secondsTimeoutPeriod, Set allowedPlayers) { + public ChatRoomMediator(String roomName, boolean muteJoinPartMessages, int secondsTimeoutPeriod, Set allowedPlayers) { _logger = Logger.getLogger("chat."+roomName); _allowedPlayers = allowedPlayers; _channelInactivityTimeoutPeriod = 1000 * secondsTimeoutPeriod; + _chatRoom = new ChatRoom(muteJoinPartMessages); } public List joinUser(String playerId, boolean admin) throws PrivateInformationException { diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatServer.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatServer.java index 2424206fd..9226b3900 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatServer.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatServer.java @@ -10,8 +10,8 @@ import java.util.concurrent.ConcurrentHashMap; public class ChatServer extends AbstractServer { private Map _chatRooms = new ConcurrentHashMap(); - public ChatRoomMediator createChatRoom(String name, int secondsTimeoutPeriod) { - ChatRoomMediator chatRoom = new ChatRoomMediator(name, secondsTimeoutPeriod); + public ChatRoomMediator createChatRoom(String name, boolean muteJoinPartMessages, int secondsTimeoutPeriod) { + ChatRoomMediator chatRoom = new ChatRoomMediator(name, muteJoinPartMessages, secondsTimeoutPeriod); try { chatRoom.sendMessage("System", "Welcome to room: " + name, true); } catch (PrivateInformationException exp) { @@ -21,8 +21,8 @@ public class ChatServer extends AbstractServer { return chatRoom; } - public ChatRoomMediator createPrivateChatRoom(String name, Set allowedUsers, int secondsTimeoutPeriod) { - ChatRoomMediator chatRoom = new ChatRoomMediator(name, secondsTimeoutPeriod, allowedUsers); + public ChatRoomMediator createPrivateChatRoom(String name, boolean muteJoinPartMessages, Set allowedUsers, int secondsTimeoutPeriod) { + ChatRoomMediator chatRoom = new ChatRoomMediator(name, muteJoinPartMessages, secondsTimeoutPeriod, allowedUsers); try { chatRoom.sendMessage("System", "Welcome to private room: " + name, true); } catch (PrivateInformationException exp) { diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroServer.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroServer.java index b6f0ec4ae..74885e2da 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroServer.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroServer.java @@ -90,9 +90,9 @@ public class LotroServer extends AbstractServer { Set allowedUsers = new HashSet(); for (LotroGameParticipant participant : participants) allowedUsers.add(participant.getPlayerId()); - _chatServer.createPrivateChatRoom(getChatRoomName(gameId), allowedUsers, 30); + _chatServer.createPrivateChatRoom(getChatRoomName(gameId), false, allowedUsers, 30); } else - _chatServer.createChatRoom(getChatRoomName(gameId), 30); + _chatServer.createChatRoom(getChatRoomName(gameId), false, 30); LotroGameMediator lotroGameMediator = new LotroGameMediator(lotroFormat, participants, _lotroCardBlueprintLibrary, competitiveTime ? 60 * 40 : 60 * 80, allowSpectators, allowCancelling); diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/hall/HallServer.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/hall/HallServer.java index 9e8975454..c9238a9a5 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/hall/HallServer.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/hall/HallServer.java @@ -66,7 +66,7 @@ public class HallServer extends AbstractServer { _collectionsManager = collectionsManager; _tournamentPrizeSchemeRegistry = tournamentPrizeSchemeRegistry; _pairingMechanismRegistry = pairingMechanismRegistry; - _hallChat = _chatServer.createChatRoom("Game Hall", 10); + _hallChat = _chatServer.createChatRoom("Game Hall", true, 10); _tournamentQueues.put("fotr_queue", new SingleEliminationRecurringQueue(635, "fotr_block", CollectionType.MY_CARDS, "fotrQueue-", "Fellowship Block", 8, diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/trade/TradeServer.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/trade/TradeServer.java index 65edfaafe..c3f019091 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/trade/TradeServer.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/trade/TradeServer.java @@ -132,7 +132,7 @@ public class TradeServer extends AbstractServer { _playerOngoingTrade.put(from, tradeState); _playerOngoingTrade.put(to, tradeState); - _chatServer.createChatRoom(getChatRoomName(from, to), 30); + _chatServer.createChatRoom(getChatRoomName(from, to), false, 30); } private void destroyOngoingTrade(TradeState tradeState) {