diff -r a02353129a41 -r e3e37c730dc0 netserver/HWProto.hs --- a/netserver/HWProto.hs Sat Jan 03 19:01:50 2009 +0000 +++ b/netserver/HWProto.hs Sat Jan 03 20:48:37 2009 +0000 @@ -45,6 +45,7 @@ answerConnected = answerClientOnly ["CONNECTED", "Hedgewars server http://www.hedgewars.org/"] answerNotOwner = answerClientOnly ["ERROR", "You do not own this team"] answerCannotCreateRoom = answerClientOnly ["WARNING", "Cannot create more rooms"] +answerInfo client = answerClientOnly ["INFO", nick client, proto2ver $ protocol client] answerAbandoned = answerOthersRoom ["BYE", "Room abandoned"] answerChatString nick msg = answerOthersRoom ["CHAT_STRING", nick, msg] @@ -130,6 +131,17 @@ handleCmd _ _ _ ["ERROR", msg] = (noChangeClients, noChangeRooms, answerErrorMsg msg) +handleCmd _ clients _ ["INFO", asknick] = + if noSuchClient then + (noChangeClients, noChangeRooms, []) + else + (noChangeClients, noChangeRooms, answerInfo client) + where + maybeClient = find (\cl -> asknick == nick cl) clients + noSuchClient = isNothing maybeClient + client = fromJust maybeClient + + -- check state and call state-dependent commmand handlers handleCmd client clients rooms cmd = if null (nick client) || protocol client == 0 then