class RunsPokerGame(object): def __init__(self, opts): self.opts = opts self.done = False self.msngr = XmppMessenger(self.opts.dealerjid, self.opts.dealerpwd) def onDone(self, sender=None, args=None): self.msngr.sendMessage(self.opts.audiencejid, 'Game Over') self.msngr.finish() self.done = True def start(self): try: self.msngr.listen(self.opts.domain, self.opts.port) self.msngr.addTarget(self.opts.audiencejid) interacts = InteractsWithPlayers(self.msngr, self.opts.chips) startMessage = 'Game started, waiting for players' self.msngr.sendMessage(self.opts.audiencejid, startMessage) Thread(target=countdown, args=(self.opts.wait,)).start() time.sleep(self.opts.wait) except: print traceback.format_exc() if not interacts.players: msg = 'No players joined so quitting' self.msngr.sendMessage(self.opts.audiencejid, msg) print msg elif len(interacts.players) == 1: msg = 'Not enough players for a game so quitting' self.msngr.sendMessage(self.opts.audiencejid, msg) print msg else: try: game = PlaysTournament(interacts) game.evt_done += self.onDone game.start() while not self.done: time.sleep(1) except: print traceback.format_exc()