From 9469ee889df9190faed3d00920afaa7f71bfedd3 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Wed, 11 Jan 2012 15:25:57 +0000 Subject: [PATCH] Added game finished warning to chat messages. --- .../main/java/com/gempukku/lotro/game/LotroServer.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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 5de6f5a34..da55ffc5d 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 @@ -23,9 +23,11 @@ public class LotroServer extends AbstractServer { private LotroCardBlueprintLibrary _lotroCardBlueprintLibrary; private Map _runningGames = new ConcurrentHashMap(); + private Set _gameDeathWarningsSent = new HashSet(); private final Map _finishedGamesTime = new LinkedHashMap(); private final long _timeToGameDeath = 1000 * 60 * 10; // 10 minutes + private final long _timeToGameDeathWarning = 1000 * 60 * 9; // 9 minutes private int _nextGameId = 1; @@ -95,9 +97,15 @@ public class LotroServer extends AbstractServer { synchronized (_finishedGamesTime) { LinkedHashMap copy = new LinkedHashMap(_finishedGamesTime); for (Map.Entry finishedGame : copy.entrySet()) { + 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"); + _gameDeathWarningsSent.add(gameId); + } if (currentTime > finishedGame.getValue().getTime() + _timeToGameDeath) { - String gameId = finishedGame.getKey(); log.debug("Removing stale game: " + gameId); + _gameDeathWarningsSent.remove(gameId); _runningGames.remove(gameId); _chatServer.destroyChatRoom(getChatRoomName(gameId)); _finishedGamesTime.remove(gameId);