# HG changeset patch # User unc0rr # Date 1267899805 0 # Node ID 3e057dfa601f3c0aa7567454026b0b5bccae2ced # Parent b467a681c5e02783c6089423f17cb62a9e0a7409 Fix "FOLLOW" command handler and place it into proper file diff -r b467a681c5e0 -r 3e057dfa601f gameServer/HWProtoCore.hs --- a/gameServer/HWProtoCore.hs Sat Mar 06 18:21:05 2010 +0000 +++ b/gameServer/HWProtoCore.hs Sat Mar 06 18:23:25 2010 +0000 @@ -63,20 +63,6 @@ else "" -handleCmd_loggedin clID clients rooms ["FOLLOW", asknick] = - if inLobby || noSuchClient then - [] - else - handleCmd_lobby clID clients rooms ["JOIN_ROOM", roomname] - where - maybeClient = find (\cl -> asknick == nick cl) clients - noSuchClient = isNothing maybeClient - client = fromJust maybeClient - room = rooms IntMap.! roomID client - roomname = (name room) - inLobby = roomname == "" - - handleCmd_loggedin clID clients rooms cmd = if roomID client == 0 then handleCmd_lobby clID clients rooms cmd diff -r b467a681c5e0 -r 3e057dfa601f gameServer/HWProtoLobbyState.hs --- a/gameServer/HWProtoLobbyState.hs Sat Mar 06 18:21:05 2010 +0000 +++ b/gameServer/HWProtoLobbyState.hs Sat Mar 06 18:23:25 2010 +0000 @@ -117,6 +117,19 @@ handleCmd_lobby clID clients rooms ["JOIN_ROOM", roomName] = handleCmd_lobby clID clients rooms ["JOIN_ROOM", roomName, ""] + + +handleCmd_lobby clID clients rooms ["FOLLOW", asknick] = + if noSuchClient || roomID followClient == 0 then + [] + else + handleCmd_lobby clID clients rooms ["JOIN_ROOM", roomName] + where + maybeClient = Foldable.find (\cl -> asknick == nick cl) clients + noSuchClient = isNothing maybeClient + followClient = fromJust maybeClient + roomName = name $ rooms IntMap.! roomID followClient + --------------------------- -- Administrator's stuff --