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 |