--- a/gameServer/Actions.hs Sun Dec 02 17:23:13 2012 +0100
+++ b/gameServer/Actions.hs Sun Dec 02 22:14:21 2012 +0400
@@ -441,17 +441,25 @@
return ()
-processAction (ProcessAccountInfo info) =
+processAction (ProcessAccountInfo info) = do
case info of
HasAccount passwd isAdmin -> do
- chan <- client's sendChan
- mapM_ processAction [AnswerClients [chan] ["ASKPASSWORD"], ModifyClient (\c -> c{webPassword = passwd, isAdministrator = isAdmin})]
- Guest ->
- processAction JoinLobby
+ b <- isBanned
+ when (not b) $ do
+ chan <- client's sendChan
+ mapM_ processAction [AnswerClients [chan] ["ASKPASSWORD"], ModifyClient (\c -> c{webPassword = passwd, isAdministrator = isAdmin})]
+ Guest -> do
+ b <- isBanned
+ when (not b) $
+ processAction JoinLobby
Admin -> do
mapM_ processAction [ModifyClient (\cl -> cl{isAdministrator = True}), JoinLobby]
chan <- client's sendChan
processAction $ AnswerClients [chan] ["ADMIN_ACCESS"]
+ where
+ isBanned = do
+ processAction CheckBanned
+ liftM B.null $ client's nick
processAction JoinLobby = do
--- a/gameServer/HWProtoInRoomState.hs Sun Dec 02 17:23:13 2012 +0100
+++ b/gameServer/HWProtoInRoomState.hs Sun Dec 02 22:14:21 2012 +0400
@@ -308,8 +308,8 @@
let sameRoom = clientRoom rnc thisClientId == clientRoom rnc banId
if master && isJust maybeClientId && (banId /= thisClientId) && sameRoom then
return [
- ModifyRoom (\r -> r{roomBansList = let h = host $ rnc `client` banId in h `deepseq` h : roomBansList r})
- , KickRoomClient banId
+-- ModifyRoom (\r -> r{roomBansList = let h = host $ rnc `client` banId in h `deepseq` h : roomBansList r})
+ KickRoomClient banId
]
else
return []