netserver/HWProto.hs
changeset 1567 95d7aab0df3f
parent 1566 6b63c75fdc68
child 1568 15a446307993
equal deleted inserted replaced
1566:6b63c75fdc68 1567:95d7aab0df3f
    19 makeAnswer func msg = [\_ -> (func, msg)]
    19 makeAnswer func msg = [\_ -> (func, msg)]
    20 answerClientOnly, answerOthersRoom, answerSameRoom :: [String] -> [Answer]
    20 answerClientOnly, answerOthersRoom, answerSameRoom :: [String] -> [Answer]
    21 answerClientOnly  = makeAnswer clientOnly
    21 answerClientOnly  = makeAnswer clientOnly
    22 answerOthersRoom  = makeAnswer othersInRoom
    22 answerOthersRoom  = makeAnswer othersInRoom
    23 answerSameRoom    = makeAnswer sameRoom
    23 answerSameRoom    = makeAnswer sameRoom
       
    24 answerAll         = makeAnswer allClients
    24 
    25 
    25 answerBadCmd            = answerClientOnly ["ERROR", "Bad command, state or incorrect parameter"]
    26 answerBadCmd            = answerClientOnly ["ERROR", "Bad command, state or incorrect parameter"]
    26 answerNotMaster         = answerClientOnly ["ERROR", "You cannot configure room parameters"]
    27 answerNotMaster         = answerClientOnly ["ERROR", "You cannot configure room parameters"]
    27 answerBadParam          = answerClientOnly ["ERROR", "Bad parameter"]
    28 answerBadParam          = answerClientOnly ["ERROR", "Bad parameter"]
    28 answerErrorMsg msg      = answerClientOnly ["ERROR", msg]
    29 answerErrorMsg msg      = answerClientOnly ["ERROR", msg]
    58 		answerOthersRoom ["LEFT", nick, msg]
    59 		answerOthersRoom ["LEFT", nick, msg]
    59 		else
    60 		else
    60 		answerOthersRoom ["LEFT", nick]
    61 		answerOthersRoom ["LEFT", nick]
    61 answerQuitLobby nick msg =
    62 answerQuitLobby nick msg =
    62 	if not $ null msg then
    63 	if not $ null msg then
    63 		answerOthersRoom ["LOBBY:LEFT", nick, msg]
    64 		answerAll ["LOBBY:LEFT", nick, msg]
    64 		else
    65 		else
    65 		answerOthersRoom ["LOBBY:LEFT", nick]
    66 		answerAll ["LOBBY:LEFT", nick]
    66 
    67 
    67 answerJoined nick   = answerSameRoom ["JOINED", nick]
    68 answerJoined nick   = answerSameRoom ["JOINED", nick]
    68 answerRunGame       = answerSameRoom ["RUN_GAME"]
    69 answerRunGame       = answerSameRoom ["RUN_GAME"]
    69 answerIsReady nick  = answerSameRoom ["READY", nick]
    70 answerIsReady nick  = answerSameRoom ["READY", nick]
    70 answerNotReady nick = answerSameRoom ["NOT_READY", nick]
    71 answerNotReady nick = answerSameRoom ["NOT_READY", nick]
    99 				""
   100 				""
   100 		nicks = filter (not . null) $ map nick clients
   101 		nicks = filter (not . null) $ map nick clients
   101 
   102 
   102 answerPing = makeAnswer allClients ["PING"]
   103 answerPing = makeAnswer allClients ["PING"]
   103 
   104 
   104 
       
   105 -- Main state-independent cmd handler
   105 -- Main state-independent cmd handler
   106 handleCmd :: CmdHandler
   106 handleCmd :: CmdHandler
   107 handleCmd client _ rooms ("QUIT" : xs) =
   107 handleCmd client _ rooms ("QUIT" : xs) =
   108 	if null (room client) then
   108 	if null (room client) then
   109 		(noChangeClients, noChangeRooms, answerQuit msg ++ (answerQuitLobby (nick client) msg) )
   109 		(noChangeClients, noChangeRooms, answerQuit msg ++ (answerQuitLobby (nick client) msg) )