diff -r 5dbc0f976b4a -r fe46826de291 gameServer/Actions.hs --- 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)] ]