gameServer/HWProtoNEState.hs
branchios-develop
changeset 13413 ba39a1d396c0
parent 13081 dce9f0b84a18
child 13673 1aa5e884326a
equal deleted inserted replaced
13411:6e8b807bda4b 13413:ba39a1d396c0
    32 handleCmd_NotEntered :: CmdHandler
    32 handleCmd_NotEntered :: CmdHandler
    33 
    33 
    34 handleCmd_NotEntered ["NICK", newNick] = do
    34 handleCmd_NotEntered ["NICK", newNick] = do
    35     (ci, irnc) <- ask
    35     (ci, irnc) <- ask
    36     let cl = irnc `client` ci
    36     let cl = irnc `client` ci
    37     if not . B.null $ nick cl then return [ProtocolError $ loc "Nickname already chosen"]
    37     if not . B.null $ nick cl then return [ProtocolError $ loc "Nickname already provided."]
    38         else
    38         else
    39         if illegalName newNick then return [ByeClient $ loc "Illegal nickname"]
    39         if illegalName newNick then return [ByeClient $ loc "Illegal nickname! Nicknames must be between 1-40 characters long, must not have a trailing or leading space and must not have any of these characters: $()*+?[]^{|}"]
    40             else
    40             else
    41             return $
    41             return $
    42                 ModifyClient (\c -> c{nick = newNick}) :
    42                 ModifyClient (\c -> c{nick = newNick}) :
    43                 AnswerClients [sendChan cl] ["NICK", newNick] :
    43                 AnswerClients [sendChan cl] ["NICK", newNick] :
    44                 [CheckRegistered | clientProto cl /= 0]
    44                 [CheckRegistered | clientProto cl /= 0]
    45 
    45 
    46 handleCmd_NotEntered ["PROTO", protoNum] = do
    46 handleCmd_NotEntered ["PROTO", protoNum] = do
    47     (ci, irnc) <- ask
    47     (ci, irnc) <- ask
    48     let cl = irnc `client` ci
    48     let cl = irnc `client` ci
    49     if clientProto cl > 0 then return [ProtocolError $ loc "Protocol already known"]
    49     if clientProto cl > 0 then return [ProtocolError $ loc "Protocol already known."]
    50         else
    50         else
    51         if parsedProto == 0 then return [ProtocolError $ loc "Bad number"]
    51         if parsedProto == 0 then return [ProtocolError $ loc "Bad number."]
    52             else
    52             else
    53             return $
    53             return $
    54                 ModifyClient (\c -> c{clientProto = parsedProto}) :
    54                 ModifyClient (\c -> c{clientProto = parsedProto}) :
    55                 AnswerClients [sendChan cl] ["PROTO", showB parsedProto] :
    55                 AnswerClients [sendChan cl] ["PROTO", showB parsedProto] :
    56                 [CheckRegistered | not . B.null $ nick cl]
    56                 [CheckRegistered | not . B.null $ nick cl]
    88 #if defined(OFFICIAL_SERVER)
    88 #if defined(OFFICIAL_SERVER)
    89 handleCmd_NotEntered ["CHECKER", protoNum, newNick, password] = do
    89 handleCmd_NotEntered ["CHECKER", protoNum, newNick, password] = do
    90     (ci, irnc) <- ask
    90     (ci, irnc) <- ask
    91     let cl = irnc `client` ci
    91     let cl = irnc `client` ci
    92 
    92 
    93     if parsedProto == 0 then return [ProtocolError $ loc "Bad number"]
    93     if parsedProto == 0 then return [ProtocolError $ loc "Bad number."]
    94         else
    94         else
    95         return $ [
    95         return $ [
    96             ModifyClient (\c -> c{clientProto = parsedProto, nick = newNick, webPassword = password, isChecker = True})
    96             ModifyClient (\c -> c{clientProto = parsedProto, nick = newNick, webPassword = password, isChecker = True})
    97             , CheckRegistered]
    97             , CheckRegistered]
    98     where
    98     where