def cmd_pub(conn, nick, chan, cmd, logit=True): "Channel message" global game global log global deck log_line("chan %s %s"%(nick, cmd)) arg = cmd.split() if not len(arg): return if arg[0] == "create": def closure(tgt, msg): privmsg(conn, tgt, msg) try: game = ircnukes(closure, chan, deck) except nukes.GameLogicError, e: privmsg(conn, chan, "error: %s: %s"%(deck, e.desc)) return privmsg(conn, chan, "Game created: %s"%game) if logit == True: randomseed = int(time.time()) random.seed(randomseed) log = open("nukebot.log", "w") log_line("randomseed %u"%randomseed) log_line("chan %s create"%chan) log.flush() return
def cmd_priv(conn, nick, cmd): "Private message" global chan global game global log log_line("priv %s %s"%(nick, cmd)) arg = cmd.split() if not len(arg): return if arg[0] == "help": def closure(tgt, msg): return tmp = ircnukes(closure, None) h = tmp.irc_list_pcmds() privmsg(conn, nick, "Commands: %s"%(' '.join(h))) return if game == None: #privmsg(conn, nick, "No game, join %s..."%chan) return try: p = game.get_player(nick) game.irc_pcmd(nick, arg[0], arg[1:]) except nukes.GameOverMan, e: if e.winner == None: privmsg(conn, chan, "GameOver: MAD, noone wins") else: privmsg(conn, chan, "GameOver: winner is %s " "with %u million population"%(e.winner.name, e.winner.population)) game = None
else: save_game(conn, chan, game, arg[1]) return elif arg[0] == "listgames": list_games(conn, chan) return elif arg[0] == "loadgame": if game != None and game.dirty: privmsg(conn, chan, "Game in progress, save it first") elif len(arg) < 2: privmsg(conn, chan, "!listgames to find one to load") else: game = load_game(conn, chan, arg[1]) return elif arg[0] == "help": tmp = ircnukes(None, None) h = tmp.irc_list_cmds() h.extend(["creategame", "savegame", "loadgame", "listgames"]) privmsg(conn, chan, "Commands: %s"%(' '.join(h))) return if game == None: privmsg(conn, chan, "No game, try !create") return try: game.irc_cmd(nick, arg[0], arg[1:]) except nukes.GameOverMan, e: if e.winner == None: privmsg(conn, chan, "GameOver: MAD, noone wins") else: