def __init__(self, user_id, game_name): db = DBSession() self.user_name = db.query(User.name).filter(User.id == user_id).one()[0] self.game_name = game_name self.connections = [] self.game = None self.mud = MudClient() self.mud.on_connected = self.mud_connected self.mud.on_failed_to_connect = self.mud_failed_to_connect self.mud.on_disconnected = self.mud_disconnected self.mud.on_line_received = self.mud_line self.mud.on_gmcp_message_received = self.mud_gmcp_message self.processor = None self._loaded_processors = {}
def connect(self): """Open a game session and connect to the mud server.""" if self.mud.connected or self.mud.connecting: return self.system_message("Close the current session first.") db = DBSession() game = db.query(Game).filter(Game.name == self.game_name).first() if game is None: return self.system_message("Game named '%s' does not exist." % self.game_name) self.system_message("Loading game session '%s'..." % game.name) self.processor = self._get_processor(self.user_name, game.name) if self.processor is None: return self.system_message("Couldn't load a processor for that session.") self.game = game self.mud.connect(self.game.address, self.game.port) self.system_message("Game session '%s' has been opened." % game.name) self.system_message("Trying to connect to the mud...")