From 06164fcf4f6a2123a5bfed7780bcb45ffedb586a Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Mon, 9 Jul 2012 20:37:25 +0000 Subject: [PATCH] Admin can watch tournament games. --- .../com/gempukku/lotro/chat/ChatRoomMediator.java | 12 ++++++------ .../java/com/gempukku/lotro/chat/ChatServer.java | 9 +++------ .../com/gempukku/lotro/game/LotroGameMediator.java | 4 ++-- .../java/com/gempukku/lotro/game/LotroServer.java | 2 +- .../java/com/gempukku/lotro/hall/HallServer.java | 4 ++-- .../java/com/gempukku/lotro/server/ChatResource.java | 6 +++--- 6 files changed, 17 insertions(+), 20 deletions(-) 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 f1d2c3652..a547b95dc 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 @@ -23,8 +23,8 @@ public class ChatRoomMediator { _channelInactivityTimeoutPeriod = 1000 * secondsTimeoutPeriod; } - public synchronized List joinUser(String playerId) { - if (_allowedPlayers != null && !_allowedPlayers.contains(playerId)) + public synchronized List joinUser(String playerId, boolean admin) { + if (!admin && _allowedPlayers != null && !_allowedPlayers.contains(playerId)) throw new WebApplicationException(Response.Status.FORBIDDEN); GatheringChatRoomListener value = new GatheringChatRoomListener(); @@ -33,8 +33,8 @@ public class ChatRoomMediator { return value.consumeMessages(); } - public synchronized List getPendingMessages(String playerId) { - if (_allowedPlayers != null && !_allowedPlayers.contains(playerId)) + public synchronized List getPendingMessages(String playerId, boolean admin) { + if (!admin && _allowedPlayers != null && !_allowedPlayers.contains(playerId)) throw new WebApplicationException(Response.Status.FORBIDDEN); GatheringChatRoomListener gatheringChatRoomListener = _listeners.get(playerId); @@ -48,8 +48,8 @@ public class ChatRoomMediator { _listeners.remove(playerId); } - public synchronized void sendMessage(String playerId, String message) { - if (_allowedPlayers != null && !_allowedPlayers.contains(playerId)) + public synchronized void sendMessage(String playerId, String message, boolean admin) { + if (!admin && _allowedPlayers != null && !_allowedPlayers.contains(playerId)) throw new WebApplicationException(Response.Status.FORBIDDEN); _chatRoom.postMessage(playerId, message); 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 1cd5177fb..a0fc76175 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 @@ -2,7 +2,6 @@ package com.gempukku.lotro.chat; import com.gempukku.lotro.AbstractServer; -import java.util.HashSet; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -12,16 +11,14 @@ public class ChatServer extends AbstractServer { public ChatRoomMediator createChatRoom(String name, int secondsTimeoutPeriod) { ChatRoomMediator chatRoom = new ChatRoomMediator(secondsTimeoutPeriod); - chatRoom.sendMessage("System", "Welcome to room: " + name); + chatRoom.sendMessage("System", "Welcome to room: " + name, true); _chatRooms.put(name, chatRoom); return chatRoom; } public ChatRoomMediator createPrivateChatRoom(String name, Set allowedUsers, int secondsTimeoutPeriod) { - Set allowed = new HashSet(allowedUsers); - allowed.add("System"); - ChatRoomMediator chatRoom = new ChatRoomMediator(secondsTimeoutPeriod, allowed); - chatRoom.sendMessage("System", "Welcome to private room: " + name); + ChatRoomMediator chatRoom = new ChatRoomMediator(secondsTimeoutPeriod, allowedUsers); + chatRoom.sendMessage("System", "Welcome to private room: " + name, true); _chatRooms.put(name, chatRoom); return chatRoom; } diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroGameMediator.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroGameMediator.java index fe8b2609c..fb1637f6e 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroGameMediator.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/LotroGameMediator.java @@ -325,7 +325,7 @@ public class LotroGameMediator { public void processCommunicationChannel(Player player, int channelNumber, ParticipantCommunicationVisitor visitor) { String playerName = player.getName(); - if (_noSpectators && !_playersPlaying.contains(playerName)) + if (!player.getType().contains("a") && _noSpectators && !_playersPlaying.contains(playerName)) throw new WebApplicationException(Response.Status.FORBIDDEN); _readLock.lock(); @@ -360,7 +360,7 @@ public class LotroGameMediator { public void singupUserForGame(Player player, ParticipantCommunicationVisitor visitor) { String playerName = player.getName(); - if (_noSpectators && !_playersPlaying.contains(playerName)) + if (!player.getType().contains("a") && _noSpectators && !_playersPlaying.contains(playerName)) throw new WebApplicationException(Response.Status.FORBIDDEN); _readLock.lock(); 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 e51a0d136..47af09e8e 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 @@ -100,7 +100,7 @@ public class LotroServer extends AbstractServer { String gameId = finishedGame.getKey(); if (currentTime > finishedGame.getValue().getTime() + _timeToGameDeathWarning && !_gameDeathWarningsSent.contains(gameId)) { - _chatServer.getChatRoom(getChatRoomName(gameId)).sendMessage("System", "This game is already finished and will be shortly removed, please move to the Game Hall"); + _chatServer.getChatRoom(getChatRoomName(gameId)).sendMessage("System", "This game is already finished and will be shortly removed, please move to the Game Hall", true); _gameDeathWarningsSent.add(gameId); } if (currentTime > finishedGame.getValue().getTime() + _timeToGameDeath) { 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 f178ca8db..ed0497365 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 @@ -265,7 +265,7 @@ public class HallServer extends AbstractServer { LotroGameMediator lotroGameMediator = _lotroServer.getGameById(runningTable.getGameId()); if (lotroGameMediator != null) { if (!lotroGameMediator.isFinished()) - visitor.visitTable(runningGame.getKey(), runningTable.getGameId(), !lotroGameMediator.isNoSpectators(), lotroGameMediator.getGameStatus(), runningTable.getFormatName(), runningTable.getTournamentName(), lotroGameMediator.getPlayersPlaying(), lotroGameMediator.getWinner()); + visitor.visitTable(runningGame.getKey(), runningTable.getGameId(), player.getType().contains("a") || !lotroGameMediator.isNoSpectators(), lotroGameMediator.getGameStatus(), runningTable.getFormatName(), runningTable.getTournamentName(), lotroGameMediator.getPlayersPlaying(), lotroGameMediator.getWinner()); else finishedTables.put(runningGame.getKey(), runningTable); } @@ -543,7 +543,7 @@ public class HallServer extends AbstractServer { @Override public void broadcastMessage(String message) { - _hallChat.sendMessage("TournamentSystem", message); + _hallChat.sendMessage("TournamentSystem", message, true); } } } diff --git a/gemp-lotr/gemp-lotr-web-server/src/main/java/com/gempukku/lotro/server/ChatResource.java b/gemp-lotr/gemp-lotr-web-server/src/main/java/com/gempukku/lotro/server/ChatResource.java index 1f43a2ee2..421d1b36b 100644 --- a/gemp-lotr/gemp-lotr-web-server/src/main/java/com/gempukku/lotro/server/ChatResource.java +++ b/gemp-lotr/gemp-lotr-web-server/src/main/java/com/gempukku/lotro/server/ChatResource.java @@ -39,7 +39,7 @@ public class ChatResource extends AbstractResource { if (chatRoom == null) sendError(Response.Status.NOT_FOUND); - List chatMessages = chatRoom.joinUser(resourceOwner.getName()); + List chatMessages = chatRoom.joinUser(resourceOwner.getName(), resourceOwner.getType().contains("a")); Collection usersInRoom = chatRoom.getUsersInRoom(); DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); @@ -69,11 +69,11 @@ public class ChatResource extends AbstractResource { if (messages != null) { for (String message : messages) { if (message != null && message.trim().length() > 0) - chatRoom.sendMessage(resourceOwner.getName(), StringEscapeUtils.escapeHtml(message)); + chatRoom.sendMessage(resourceOwner.getName(), StringEscapeUtils.escapeHtml(message), resourceOwner.getType().contains("a")); } } - List chatMessages = chatRoom.getPendingMessages(resourceOwner.getName()); + List chatMessages = chatRoom.getPendingMessages(resourceOwner.getName(), resourceOwner.getType().contains("a")); Collection usersInRoom = chatRoom.getUsersInRoom();