diff -r 87ee1be17d27 -r f85243bf890e gameServer/HandlerUtils.hs --- a/gameServer/HandlerUtils.hs Sun Dec 19 20:45:15 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -module HandlerUtils where - -import Control.Monad.Reader -import qualified Data.ByteString.Char8 as B - -import RoomsAndClients -import CoreTypes -import Actions - -thisClient :: Reader (ClientIndex, IRnC) ClientInfo -thisClient = do - (ci, rnc) <- ask - return $ rnc `client` ci - -thisRoom :: Reader (ClientIndex, IRnC) RoomInfo -thisRoom = do - (ci, rnc) <- ask - let ri = clientRoom rnc ci - return $ rnc `room` ri - -clientNick :: Reader (ClientIndex, IRnC) B.ByteString -clientNick = liftM nick thisClient - -roomOthersChans :: Reader (ClientIndex, IRnC) [ClientChan] -roomOthersChans = do - (ci, rnc) <- ask - let ri = clientRoom rnc ci - return $ map (sendChan . client rnc) $ filter (/= ci) (roomClients rnc ri) - -roomClientsChans :: Reader (ClientIndex, IRnC) [ClientChan] -roomClientsChans = do - (ci, rnc) <- ask - let ri = clientRoom rnc ci - return $ map (sendChan . client rnc) (roomClients rnc ri) - -thisClientChans :: Reader (ClientIndex, IRnC) [ClientChan] -thisClientChans = do - (ci, rnc) <- ask - return $ [sendChan (rnc `client` ci)] - -answerClient :: [B.ByteString] -> Reader (ClientIndex, IRnC) [Action] -answerClient msg = thisClientChans >>= return . (: []) . flip AnswerClients msg - -allRoomInfos :: Reader (a, IRnC) [RoomInfo] -allRoomInfos = liftM ((\irnc -> map (room irnc) $ allRooms irnc) . snd) ask