Removed the "move" of the resources, it isn't needed for the android build anymore and if they get moved in the default repo it probably should go somewhere in /share
{-# LANGUAGE OverloadedStrings #-}module HWProtoCore whereimport Control.Monad.Readerimport Data.Maybeimport qualified Data.ByteString.Char8 as B--------------------------------------import CoreTypesimport Actionsimport HWProtoNEStateimport HWProtoLobbyStateimport HWProtoInRoomStateimport HandlerUtilsimport RoomsAndClientsimport UtilshandleCmd, handleCmd_loggedin :: CmdHandlerhandleCmd ["PING"] = answerClient ["PONG"]handleCmd ("QUIT" : xs) = return [ByeClient msg] where msg = if not $ null xs then head xs else "bye"handleCmd ["PONG"] = do cl <- thisClient if pingsQueue cl == 0 then return [ProtocolError "Protocol violation"] else return [ModifyClient (\c -> c{pingsQueue = pingsQueue c - 1})]handleCmd cmd = do (ci, irnc) <- ask if logonPassed (irnc `client` ci) then handleCmd_loggedin cmd else handleCmd_NotEntered cmdhandleCmd_loggedin ["INFO", asknick] = do (_, rnc) <- ask maybeClientId <- clientByNick asknick isAdminAsking <- liftM isAdministrator thisClient let noSuchClient = isNothing maybeClientId let clientId = fromJust maybeClientId let cl = rnc `client` fromJust maybeClientId let roomId = clientRoom rnc clientId let clRoom = room rnc roomId let roomMasterSign = if isMaster cl then "@" else "" let adminSign = if isAdministrator cl then "@" else "" let roomInfo = if roomId /= lobbyId then B.concat [roomMasterSign, "room ", name clRoom] else adminSign `B.append` "lobby" let roomStatus = if gameinprogress clRoom then if teamsInGame cl > 0 then "(playing)" else "(spectating)" else "" let hostStr = if isAdminAsking then host cl else cutHost $ host cl if noSuchClient then return [] else answerClient [ "INFO", nick cl, B.concat ["[", hostStr, "]"], protoNumber2ver $ clientProto cl, B.concat ["[", roomInfo, "]", roomStatus] ]handleCmd_loggedin cmd = do (ci, rnc) <- ask if clientRoom rnc ci == lobbyId then handleCmd_lobby cmd else handleCmd_inRoom cmd