gameServer/HWProtoLobbyState.hs
changeset 11464 a9957113404a
parent 11463 fe46826de291
child 11467 f2c36df8c7b1
equal deleted inserted replaced
11463:fe46826de291 11464:a9957113404a
    32 
    32 
    33 
    33 
    34 handleCmd_lobby :: CmdHandler
    34 handleCmd_lobby :: CmdHandler
    35 
    35 
    36 
    36 
    37 handleCmd_lobby ["LIST"] = return []
    37 handleCmd_lobby ["LIST"] = do
       
    38     (ci, irnc) <- ask
       
    39     let cl = irnc `client` ci
       
    40     rooms <- allRoomInfos
       
    41     let roomsInfoList = concatMap (\r -> roomInfo (clientProto cl) (maybeNick . liftM (client irnc) $ masterID r) r) . filter (\r -> (roomProto r == clientProto cl))
       
    42     return $ if hasAskedList cl then [] else
       
    43         [ ModifyClient (\c -> c{hasAskedList = True})
       
    44         , AnswerClients [sendChan cl] ("ROOMS" : roomsInfoList rooms)]
    38 
    45 
    39 handleCmd_lobby ["CHAT", msg] = do
    46 handleCmd_lobby ["CHAT", msg] = do
    40     n <- clientNick
    47     n <- clientNick
    41     s <- roomOthersChans
    48     s <- roomOthersChans
    42     return [AnswerClients s ["CHAT", n, msg], RegisterEvent LobbyChatMessage]
    49     return [AnswerClients s ["CHAT", n, msg], RegisterEvent LobbyChatMessage]