3458

1 
module ServerState


2 
(


3 
module RoomsAndClients,


4 
clientRoomA,


5 
ServerState(..),


6 
clients


7 
) where


8 


9 
import Control.Monad.State


10 



11 
import RoomsAndClients


12 
import CoreTypes


13 


14 
data ServerState = ServerState {


15 
clientIndex :: Maybe ClientIndex,


16 
serverInfo :: ServerInfo,


17 
roomsClients :: MRnC


18 
}


19 


20 


21 
clientRoomA :: StateT ServerState IO RoomIndex


22 
clientRoomA = do


23 
(Just ci) < gets clientIndex


24 
rnc < gets roomsClients


25 
liftIO $ clientRoomM rnc ci


26 


27 
clients :: (ClientInfo > a) > StateT ServerState IO a


28 
clients f = do


29 
(Just ci) < gets clientIndex


30 
rnc < gets roomsClients


31 
liftIO $ clientsM rnc f ci


32 
