fixed bugs introduced by the last commit
This commit is contained in:
parent
77c78c8788
commit
d64b4ee2f8
@ -28,7 +28,15 @@ def generate(fdict, **kwargs):
|
||||
return
|
||||
return f(*largs)
|
||||
for x in s:
|
||||
fdict[x] = innerf
|
||||
if x not in fdict.keys():
|
||||
fdict[x] = []
|
||||
else:
|
||||
for fn in fdict[x]:
|
||||
if (fn.owner_only != owner_only or
|
||||
fn.admin_only != admin_only):
|
||||
raise Exception("Command: "+x+" has non-matching protection levels!")
|
||||
|
||||
fdict[x].append(innerf)
|
||||
innerf.owner_only = owner_only
|
||||
innerf.raw_nick = raw_nick
|
||||
innerf.admin_only = admin_only
|
||||
|
@ -10,7 +10,8 @@ def on_privmsg(cli, rawnick, chan, msg):
|
||||
if not x or msg.lower().startswith(botconfig.CMD_CHAR+x):
|
||||
h = msg[len(x)+1:]
|
||||
if not h or h[0] == " " or not x:
|
||||
wolfgame.COMMANDS[x](cli, rawnick, chan, h.lstrip())
|
||||
for fn in wolfgame.COMMANDS[x]:
|
||||
fn(cli, rawnick, chan, h.lstrip())
|
||||
else:
|
||||
for x in wolfgame.PM_COMMANDS.keys():
|
||||
if msg.lower().startswith(botconfig.CMD_CHAR+x):
|
||||
@ -20,14 +21,16 @@ def on_privmsg(cli, rawnick, chan, msg):
|
||||
else:
|
||||
continue
|
||||
if not h or h[0] == " " or not x:
|
||||
wolfgame.PM_COMMANDS[x](cli, rawnick, h.lstrip())
|
||||
for fn in wolfgame.PM_COMMANDS[x]:
|
||||
fn(cli, rawnick, h.lstrip())
|
||||
|
||||
def __unhandled__(cli, prefix, cmd, *args):
|
||||
if cmd in wolfgame.HOOKS.keys():
|
||||
largs = list(args)
|
||||
for i,arg in enumerate(largs):
|
||||
if isinstance(arg, bytes): largs[i] = arg.decode('ascii')
|
||||
wolfgame.HOOKS[cmd](cli, prefix, *largs)
|
||||
for fn in wolfgame.HOOKS[cmd]:
|
||||
fn(cli, prefix, *largs)
|
||||
else:
|
||||
logging.debug('Unhandled command {0}({1})'.format(cmd, [arg.decode('utf_8')
|
||||
for arg in args
|
||||
|
38
wolfgame.py
38
wolfgame.py
@ -307,11 +307,15 @@ def fleave(cli, nick, chan, rest):
|
||||
elif a.lower() not in pll:
|
||||
cli.msg(chan, nick+": That could not be done.")
|
||||
|
||||
|
||||
|
||||
@cmd("fstart", admin_only=True)
|
||||
def fstart(cli, nick, chan, rest):
|
||||
var.CAN_START_TIME = datetime.now()
|
||||
start(cli, nick, chan, rest)
|
||||
|
||||
|
||||
|
||||
@cmd("chankick", admin_only=True)
|
||||
def chankick(cli, nick, chan, rest):
|
||||
rest = rest.split(" ", 1)
|
||||
@ -320,12 +324,16 @@ def chankick(cli, nick, chan, rest):
|
||||
else:
|
||||
cli.kick(chan, nick, "No.")
|
||||
|
||||
|
||||
|
||||
@hook("kick")
|
||||
def on_kicked(cli, nick, chan, victim, reason):
|
||||
if victim == botconfig.NICK:
|
||||
cli.join(botconfig.CHANNEL)
|
||||
cli.kick(chan, nick, "No.")
|
||||
|
||||
cli.msg("ChanServ", "op "+botconfig.CHANNEL)
|
||||
# cli.kick(chan, nick, "No.")
|
||||
|
||||
|
||||
|
||||
@cmd("stats")
|
||||
def stats(cli, nick, chan, rest):
|
||||
@ -669,6 +677,8 @@ def on_join(cli, raw_nick, chan):
|
||||
nick = parse_nick(raw_nick)[0]
|
||||
if nick not in var.USERS and nick != botconfig.NICK:
|
||||
var.USERS.append(nick)
|
||||
#if nick in var.list_players():
|
||||
# cli.mode(chan, "+v", nick, nick+"!*@*") needed?
|
||||
|
||||
@cmd("goat")
|
||||
def goat(cli, nick, chan, rest):
|
||||
@ -749,7 +759,7 @@ def on_nick(cli, prefix, nick):
|
||||
|
||||
|
||||
def leave(cli, what, nick, why=""):
|
||||
if why == botconfig.CHANGING_HOST_QUIT_MESSAGE:
|
||||
if why and why == botconfig.CHANGING_HOST_QUIT_MESSAGE:
|
||||
return
|
||||
if var.PHASE == "none" and what.startswith(botconfig.CMD_CHAR):
|
||||
cli.notice(nick, "No game is currently running.")
|
||||
@ -1315,17 +1325,19 @@ def forcepm(cli, nick, chan, rest):
|
||||
cli.msg(chan, "That won't work.")
|
||||
return
|
||||
if not is_fake_nick(who):
|
||||
if who not in var.USERS:
|
||||
cli.msg(chan, "This can only be done on fake nicks.")
|
||||
return
|
||||
if who not in var.USERS:
|
||||
cli.msg(chan, "This can only be done on fake nicks.")
|
||||
return
|
||||
cmd = rst.pop(0).lower().replace(botconfig.CMD_CHAR, "", 1)
|
||||
if cmd in PM_COMMANDS.keys() and not PM_COMMANDS[cmd].owner_only:
|
||||
PM_COMMANDS[cmd](cli, who, " ".join(rst))
|
||||
if cmd in PM_COMMANDS.keys() and not PM_COMMANDS[cmd][0].owner_only:
|
||||
for fn in PM_COMMANDS[cmd]:
|
||||
fn(cli, who, " ".join(rst))
|
||||
cli.msg(chan, "Operation successful.")
|
||||
#if var.PHASE == "night": <- Causes problems with night starting twice.
|
||||
# chk_nightdone(cli)
|
||||
elif cmd.lower() in COMMANDS.keys() and not COMMANDS[cmd].owner_only:
|
||||
COMMANDS[cmd](cli, who, chan, " ".join(rst))
|
||||
elif cmd.lower() in COMMANDS.keys() and not COMMANDS[cmd][0].owner_only:
|
||||
for fn in COMMANDS[cmd]:
|
||||
fn(cli, who, chan, " ".join(rst))
|
||||
cli.msg(chan, "Operation successful.")
|
||||
else:
|
||||
cli.msg(chan, "That command was not found.")
|
||||
@ -1496,6 +1508,8 @@ def transition_night(cli):
|
||||
"check for PMs from me for instructions. "+
|
||||
"If you did not receive one, simply sit back, "+
|
||||
"relax, and wait patiently for morning."))
|
||||
|
||||
cli.msg(chan, "DEBUG: "+str(var.ROLES))
|
||||
if not var.ROLES["wolf"]: # Probably something interesting going on.
|
||||
chk_nightdone(cli)
|
||||
chk_traitor(cli)
|
||||
@ -1762,12 +1776,12 @@ def help(cli, rnick, chan, rest):
|
||||
nick, mode, user, cloak = parse_nick(rnick)
|
||||
fns = []
|
||||
for name, fn in COMMANDS.items():
|
||||
if name and not fn.admin_only and not fn.owner_only:
|
||||
if name and not fn[0].admin_only and not fn[0].owner_only:
|
||||
fns.append("\u0002"+name+"\u0002")
|
||||
afns = []
|
||||
if cloak in botconfig.ADMINS:
|
||||
for name, fn in COMMANDS.items():
|
||||
if fn.admin_only:
|
||||
if fn[0].admin_only:
|
||||
afns.append("\u0002"+name+"\u0002")
|
||||
cli.notice(nick, "Commands: "+", ".join(fns))
|
||||
if afns:
|
||||
|
Loading…
x
Reference in New Issue
Block a user