gameServer/HWProtoLobbyState.hs
branchserver_refactor
changeset 4616 cc3485866b93
parent 4597 31e042ab870c
child 4618 0f56fa511f65
equal deleted inserted replaced
4614:26661bf28dd5 4616:cc3485866b93
   117 
   117 
   118 
   118 
   119 handleCmd_lobby ["JOIN_ROOM", roomName] =
   119 handleCmd_lobby ["JOIN_ROOM", roomName] =
   120     handleCmd_lobby ["JOIN_ROOM", roomName, ""]
   120     handleCmd_lobby ["JOIN_ROOM", roomName, ""]
   121 
   121 
       
   122 
       
   123 handleCmd_lobby ["FOLLOW", asknick] = do
       
   124     (_, rnc) <- ask
       
   125     ci <- clientByNick asknick
       
   126     let ri = clientRoom rnc $ fromJust ci
       
   127     let clRoom = room rnc ri
       
   128     if isNothing ci || ri == lobbyId then
       
   129         return []
       
   130         else
       
   131         handleCmd_lobby ["JOIN_ROOM", name clRoom]
       
   132 
   122 {-
   133 {-
   123 handleCmd_lobby clID clients rooms ["FOLLOW", asknick] =
       
   124     if noSuchClient || roomID followClient == 0 then
       
   125         []
       
   126     else
       
   127         handleCmd_lobby clID clients rooms ["JOIN_ROOM", roomName]
       
   128     where
       
   129         maybeClient = Foldable.find (\cl -> asknick == nick cl) clients
       
   130         noSuchClient = isNothing maybeClient
       
   131         followClient = fromJust maybeClient
       
   132         roomName = name $ rooms IntMap.! roomID followClient
       
   133 
       
   134 
       
   135     ---------------------------
   134     ---------------------------
   136     -- Administrator's stuff --
   135     -- Administrator's stuff --
   137 
   136 
   138 handleCmd_lobby clID clients rooms ["KICK", kickNick] =
   137 handleCmd_lobby clID clients rooms ["KICK", kickNick] =
   139         [KickClient kickID | isAdministrator client && (not noSuchClient) && kickID /= clID]
   138         [KickClient kickID | isAdministrator client && (not noSuchClient) && kickID /= clID]