netserver/HWProto.hs
changeset 1577 e3e37c730dc0
parent 1571 574063b456c0
child 1578 f02806f66e00
equal deleted inserted replaced
1576:a02353129a41 1577:e3e37c730dc0
    43 answerTooFewClans       = answerClientOnly ["ERROR", "Too few clans in game"]
    43 answerTooFewClans       = answerClientOnly ["ERROR", "Too few clans in game"]
    44 answerRestricted        = answerClientOnly ["WARNING", "Room joining restricted"]
    44 answerRestricted        = answerClientOnly ["WARNING", "Room joining restricted"]
    45 answerConnected         = answerClientOnly ["CONNECTED", "Hedgewars server http://www.hedgewars.org/"]
    45 answerConnected         = answerClientOnly ["CONNECTED", "Hedgewars server http://www.hedgewars.org/"]
    46 answerNotOwner          = answerClientOnly ["ERROR", "You do not own this team"]
    46 answerNotOwner          = answerClientOnly ["ERROR", "You do not own this team"]
    47 answerCannotCreateRoom  = answerClientOnly ["WARNING", "Cannot create more rooms"]
    47 answerCannotCreateRoom  = answerClientOnly ["WARNING", "Cannot create more rooms"]
       
    48 answerInfo client       = answerClientOnly ["INFO", nick client, proto2ver $ protocol client]
    48 
    49 
    49 answerAbandoned           = answerOthersRoom ["BYE", "Room abandoned"]
    50 answerAbandoned           = answerOthersRoom ["BYE", "Room abandoned"]
    50 answerChatString nick msg = answerOthersRoom ["CHAT_STRING", nick, msg]
    51 answerChatString nick msg = answerOthersRoom ["CHAT_STRING", nick, msg]
    51 answerAddTeam team        = answerOthersRoom $ teamToNet team
    52 answerAddTeam team        = answerOthersRoom $ teamToNet team
    52 answerRemoveTeam teamName = answerOthersRoom ["REMOVE_TEAM", teamName]
    53 answerRemoveTeam teamName = answerOthersRoom ["REMOVE_TEAM", teamName]
   128 	(noChangeClients, noChangeRooms, [])
   129 	(noChangeClients, noChangeRooms, [])
   129 
   130 
   130 handleCmd _ _ _ ["ERROR", msg] =
   131 handleCmd _ _ _ ["ERROR", msg] =
   131 	(noChangeClients, noChangeRooms, answerErrorMsg msg)
   132 	(noChangeClients, noChangeRooms, answerErrorMsg msg)
   132 
   133 
       
   134 handleCmd _ clients _ ["INFO", asknick] =
       
   135 	if noSuchClient then
       
   136 		(noChangeClients, noChangeRooms, [])
       
   137 	else
       
   138 		(noChangeClients, noChangeRooms, answerInfo client)
       
   139 	where
       
   140 		maybeClient = find (\cl -> asknick == nick cl) clients
       
   141 		noSuchClient = isNothing maybeClient
       
   142 		client = fromJust maybeClient
       
   143 
       
   144 
   133 -- check state and call state-dependent commmand handlers
   145 -- check state and call state-dependent commmand handlers
   134 handleCmd client clients rooms cmd =
   146 handleCmd client clients rooms cmd =
   135 	if null (nick client) || protocol client == 0 then
   147 	if null (nick client) || protocol client == 0 then
   136 		handleCmd_noInfo client clients rooms cmd
   148 		handleCmd_noInfo client clients rooms cmd
   137 	else if null (room client) then
   149 	else if null (room client) then