--- a/gameServer/Actions.hs Tue Dec 22 11:18:40 2015 -0500
+++ b/gameServer/Actions.hs Mon Dec 28 08:43:38 2015 +0300
@@ -508,6 +508,7 @@
chan <- client's sendChan
rnc <- gets roomsClients
clientNick <- client's nick
+ clProto <- client's clientProto
isAuthenticated <- liftM (not . B.null) $ client's webPassword
isAdmin <- client's isAdministrator
isContr <- client's isContributor
@@ -521,6 +522,13 @@
>>= filterM (liftM ((/=) lobbyId) . clientRoomM rnc)
>>= mapM (client'sM rnc nick)
let clFlags = B.concat . L.concat $ [["u" | isAuthenticated], ["a" | isAdmin], ["c" | isContr]]
+
+ roomsInfoList <- io $ do
+ rooms <- roomsM rnc
+ mapM (\r -> (if isNothing $ masterID r then return "" else client'sM rnc nick (fromJust $ masterID r))
+ >>= \cn -> return $ roomInfo clProto cn r)
+ $ filter (\r -> (roomProto r == clProto)) rooms
+
mapM_ processAction . concat $ [
[AnswerClients clientsChans ["LOBBY:JOINED", clientNick]]
, [AnswerClients [chan] ("LOBBY:JOINED" : clientNick : lobbyNicks)]
@@ -531,6 +539,7 @@
, [AnswerClients (chan : clientsChans) ["CLIENT_FLAGS", B.concat["+" , clFlags], clientNick] | not $ B.null clFlags]
, [ModifyClient (\cl -> cl{logonPassed = True, isVisible = True})]
, [SendServerMessage]
+ , [AnswerClients [chan] ("ROOMS" : concat roomsInfoList)]
]