netserver/HWProto.hs
changeset 1599 65b5d3cd3e01
parent 1598 c853e02ed663
child 1609 eff63adf62a3
equal deleted inserted replaced
1598:c853e02ed663 1599:65b5d3cd3e01
   123 handleCmd :: CmdHandler
   123 handleCmd :: CmdHandler
   124 handleCmd client _ rooms ("QUIT" : xs) =
   124 handleCmd client _ rooms ("QUIT" : xs) =
   125 	if null (room client) then
   125 	if null (room client) then
   126 		(noChangeClients, noChangeRooms, answerQuit msg ++ (answerQuitLobby (nick client) msg) )
   126 		(noChangeClients, noChangeRooms, answerQuit msg ++ (answerQuitLobby (nick client) msg) )
   127 	else if isMaster client then
   127 	else if isMaster client then
   128 		(modifyRoomClients clRoom (\cl -> cl{room = [], isReady = False}), removeRoom (room client), (answerQuit msg) ++ (answerQuitLobby (nick client) msg) ++ (answerAbandoned $ protocol client) ++ (answerRoomDeleted $ room client)) -- core disconnects clients on ROOMABANDONED answer
   128 		(modifyRoomClients clRoom (\cl -> cl{isReady = False}), removeRoom (room client), (answerQuit msg) ++ (answerQuitLobby (nick client) msg) ++ (answerAbandoned $ protocol client) ++ (answerRoomDeleted $ room client)) -- core disconnects clients on ROOMABANDONED answer
   129 	else
   129 	else
   130 		(noChangeClients, modifyRoom clRoom{teams = othersTeams, playersIn = (playersIn clRoom) - 1, readyPlayers = newReadyPlayers}, (answerQuit msg) ++ (answerQuitInform (nick client) msg) ++ (answerQuitLobby (nick client) msg) ++ answerRemoveClientTeams)
   130 		(noChangeClients, modifyRoom clRoom{teams = othersTeams, playersIn = (playersIn clRoom) - 1, readyPlayers = newReadyPlayers}, (answerQuit msg) ++ (answerQuitInform (nick client) msg) ++ (answerQuitLobby (nick client) msg) ++ answerRemoveClientTeams)
   131 	where
   131 	where
   132 		clRoom = roomByName (room client) rooms
   132 		clRoom = roomByName (room client) rooms
   133 		answerRemoveClientTeams = concatMap (\tn -> answerOthersRoom ["REMOVE_TEAM", teamname tn]) clientTeams
   133 		answerRemoveClientTeams = concatMap (\tn -> answerOthersRoom ["REMOVE_TEAM", teamname tn]) clientTeams