diff -r fe46826de291 -r a9957113404a gameServer/HWProtoLobbyState.hs --- a/gameServer/HWProtoLobbyState.hs Mon Dec 28 08:43:38 2015 +0300 +++ b/gameServer/HWProtoLobbyState.hs Mon Dec 28 09:06:29 2015 +0300 @@ -34,7 +34,14 @@ handleCmd_lobby :: CmdHandler -handleCmd_lobby ["LIST"] = return [] +handleCmd_lobby ["LIST"] = do + (ci, irnc) <- ask + let cl = irnc `client` ci + rooms <- allRoomInfos + let roomsInfoList = concatMap (\r -> roomInfo (clientProto cl) (maybeNick . liftM (client irnc) $ masterID r) r) . filter (\r -> (roomProto r == clientProto cl)) + return $ if hasAskedList cl then [] else + [ ModifyClient (\c -> c{hasAskedList = True}) + , AnswerClients [sendChan cl] ("ROOMS" : roomsInfoList rooms)] handleCmd_lobby ["CHAT", msg] = do n <- clientNick