diff -r 0c79946e96f8 -r 0551b5c3de9a gameServer/Actions.hs --- a/gameServer/Actions.hs Thu Jan 10 22:59:46 2013 +0400 +++ b/gameServer/Actions.hs Sat Jan 12 01:18:50 2013 +0400 @@ -420,9 +420,11 @@ n <- client's nick h <- client's host p <- client's clientProto + checker <- client's isChecker uid <- client's clUID - haveSameNick <- liftM (not . null . tail . filter (\c -> caseInsensitiveCompare (nick c) n)) allClientsS - if haveSameNick then + -- allow multiple checker logins + haveSameNick <- liftM (not . null . tail . filter (\c -> (not $ isChecker c) && caseInsensitiveCompare (nick c) n)) allClientsS + if haveSameNick && (not checker) then if p < 38 then processAction $ ByeClient "Nickname is already in use" else @@ -636,6 +638,7 @@ processAction SaveReplay = do ri <- clientRoomA rnc <- gets roomsClients + io $ do r <- room'sM rnc id ri saveReplay r