faftergame, flastgame also improved
This commit is contained in:
parent
8370618946
commit
d0af655e3b
@ -19,11 +19,16 @@ def generate(fdict, permissions=True, **kwargs):
|
|||||||
def innerf(*args):
|
def innerf(*args):
|
||||||
largs = list(args)
|
largs = list(args)
|
||||||
if len(largs) > 1 and largs[1]:
|
if len(largs) > 1 and largs[1]:
|
||||||
cloak = parse_nick(largs[1])[3]
|
nick, _, _, cloak = parse_nick(largs[1])
|
||||||
else:
|
|
||||||
|
if cloak is None:
|
||||||
cloak = ""
|
cloak = ""
|
||||||
|
else:
|
||||||
|
nick = ""
|
||||||
|
cloak = ""
|
||||||
|
|
||||||
if not raw_nick and len(largs) > 1 and largs[1]:
|
if not raw_nick and len(largs) > 1 and largs[1]:
|
||||||
largs[1] = parse_nick(largs[1])[0] # username
|
largs[1] = nick
|
||||||
#if largs[1].startswith("#"):
|
#if largs[1].startswith("#"):
|
||||||
if not permissions or "" in s:
|
if not permissions or "" in s:
|
||||||
return f(*largs)
|
return f(*largs)
|
||||||
@ -32,7 +37,7 @@ def generate(fdict, permissions=True, **kwargs):
|
|||||||
if fnmatch.fnmatch(cloak.lower(), pattern.lower()):
|
if fnmatch.fnmatch(cloak.lower(), pattern.lower()):
|
||||||
for cmdname in s:
|
for cmdname in s:
|
||||||
if cmdname in botconfig.DENY[pattern]:
|
if cmdname in botconfig.DENY[pattern]:
|
||||||
largs[0].notice(largs[1], "You do not have permission to use that command.")
|
largs[0].notice(nick, "You do not have permission to use that command.")
|
||||||
return
|
return
|
||||||
for pattern in botconfig.ALLOW.keys():
|
for pattern in botconfig.ALLOW.keys():
|
||||||
if fnmatch.fnmatch(cloak.lower(), pattern.lower()):
|
if fnmatch.fnmatch(cloak.lower(), pattern.lower()):
|
||||||
@ -44,14 +49,14 @@ def generate(fdict, permissions=True, **kwargs):
|
|||||||
if fnmatch.fnmatch(cloak.lower(), ptn.lower())]:
|
if fnmatch.fnmatch(cloak.lower(), ptn.lower())]:
|
||||||
return f(*largs)
|
return f(*largs)
|
||||||
elif cloak:
|
elif cloak:
|
||||||
largs[0].notice(largs[1], "You are not the owner.")
|
largs[0].notice(nick, "You are not the owner.")
|
||||||
return
|
return
|
||||||
if admin_only:
|
if admin_only:
|
||||||
if cloak and [ptn for ptn in botconfig.ADMINS+botconfig.OWNERS
|
if cloak and [ptn for ptn in botconfig.ADMINS+botconfig.OWNERS
|
||||||
if fnmatch.fnmatch(cloak.lower(), ptn.lower())]:
|
if fnmatch.fnmatch(cloak.lower(), ptn.lower())]:
|
||||||
return f(*largs)
|
return f(*largs)
|
||||||
elif cloak:
|
elif cloak:
|
||||||
largs[0].notice(largs[1], "You are not an admin.")
|
largs[0].notice(nick, "You are not an admin.")
|
||||||
return
|
return
|
||||||
return f(*largs)
|
return f(*largs)
|
||||||
alias = False
|
alias = False
|
||||||
|
80
wolfgame.py
80
wolfgame.py
@ -215,6 +215,21 @@ def restart_program(cli, nick, *rest):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@cmd("frehash", admin_only=True)
|
||||||
|
def frehash(cli, nick, chan, rest):
|
||||||
|
if var.PHASE in ("day", "night"):
|
||||||
|
stop_game(cli)
|
||||||
|
else:
|
||||||
|
reset(cli)
|
||||||
|
imp.reload(botconfig)
|
||||||
|
imp.reload(var)
|
||||||
|
imp.reload(decorators.botconfig)
|
||||||
|
|
||||||
|
cli.msg(chan, "Operation successful.")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@cmd("ping")
|
@cmd("ping")
|
||||||
def pinger(cli, nick, chan, rest):
|
def pinger(cli, nick, chan, rest):
|
||||||
"""Pings the channel to get people's attention. Rate-Limited."""
|
"""Pings the channel to get people's attention. Rate-Limited."""
|
||||||
@ -679,10 +694,10 @@ def stop_game(cli, winner = ""):
|
|||||||
reset(cli)
|
reset(cli)
|
||||||
|
|
||||||
# This must be after reset(cli)
|
# This must be after reset(cli)
|
||||||
if var.ADMIN_TO_PING:
|
|
||||||
if var.AFTER_FLASTGAME:
|
if var.AFTER_FLASTGAME:
|
||||||
var.AFTER_FLASTGAME()
|
var.AFTER_FLASTGAME()
|
||||||
else:
|
var.AFTER_FLASTGAME = None
|
||||||
|
if var.ADMIN_TO_PING: # It was an flastgame
|
||||||
cli.msg(chan, "PING! " + var.ADMIN_TO_PING)
|
cli.msg(chan, "PING! " + var.ADMIN_TO_PING)
|
||||||
var.ADMIN_TO_PING = None
|
var.ADMIN_TO_PING = None
|
||||||
|
|
||||||
@ -2227,6 +2242,50 @@ def coin(cli, nick, chan, rest):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def aftergame(cli, rawnick, rest):
|
||||||
|
"""Schedule a command to be run after the game by someone."""
|
||||||
|
chan = botconfig.CHANNEL
|
||||||
|
nick = parse_nick(rawnick)[0]
|
||||||
|
|
||||||
|
rst = re.split(" +", rest)
|
||||||
|
cmd = rst.pop(0).lower().replace(botconfig.CMD_CHAR, "", 1).strip()
|
||||||
|
|
||||||
|
if cmd in PM_COMMANDS.keys():
|
||||||
|
def do_action():
|
||||||
|
for fn in PM_COMMANDS[cmd]:
|
||||||
|
fn(cli, rawnick, " ".join(rst))
|
||||||
|
elif cmd in COMMANDS.keys():
|
||||||
|
def do_action():
|
||||||
|
for fn in COMMANDS[cmd]:
|
||||||
|
fn(cli, rawnick, botconfig.CHANNEL, " ".join(rst))
|
||||||
|
else:
|
||||||
|
cli.notice(nick, "That command was not found.")
|
||||||
|
return
|
||||||
|
|
||||||
|
if var.PHASE == "none":
|
||||||
|
do_action()
|
||||||
|
return
|
||||||
|
|
||||||
|
cli.msg(chan, ("The command \02{0}\02 has been scheduled to run "+
|
||||||
|
"after this game by \02{1}\02.").format(cmd, nick))
|
||||||
|
var.AFTER_FLASTGAME = do_action
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@cmd("faftergame", admin_only=True, raw_nick=True)
|
||||||
|
def _faftergame(cli, nick, chan, rest):
|
||||||
|
if not rest.strip():
|
||||||
|
cli.notice(parse_nick(nick)[0], "Incorrect syntax for this command.")
|
||||||
|
return
|
||||||
|
aftergame(cli, nick, rest)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@pmcmd("faftergame", admin_only=True, raw_nick=True)
|
||||||
|
def faftergame(cli, nick, rest):
|
||||||
|
_faftergame(cli, nick, botconfig.CHANNEL, rest)
|
||||||
|
|
||||||
|
|
||||||
@pmcmd("flastgame", admin_only=True, raw_nick=True)
|
@pmcmd("flastgame", admin_only=True, raw_nick=True)
|
||||||
def flastgame(cli, nick, rest):
|
def flastgame(cli, nick, rest):
|
||||||
"""This command may be used in the channel or in a PM, and it disables starting or joining a game. !flastgame <optional-command-after-game-ends>"""
|
"""This command may be used in the channel or in a PM, and it disables starting or joining a game. !flastgame <optional-command-after-game-ends>"""
|
||||||
@ -2243,21 +2302,10 @@ def flastgame(cli, nick, rest):
|
|||||||
cli.msg(chan, "Starting a new game has now been disabled by \02{0}\02.".format(nick))
|
cli.msg(chan, "Starting a new game has now been disabled by \02{0}\02.".format(nick))
|
||||||
var.ADMIN_TO_PING = nick
|
var.ADMIN_TO_PING = nick
|
||||||
|
|
||||||
rst = re.split(" +", rest)
|
if rest.strip():
|
||||||
cmd = rst.pop(0).lower().replace(botconfig.CMD_CHAR, "", 1).strip()
|
aftergame(cli, rawnick, rest)
|
||||||
if cmd in PM_COMMANDS.keys():
|
|
||||||
def do_action():
|
|
||||||
for fn in PM_COMMANDS[cmd]:
|
|
||||||
fn(cli, rawnick, " ".join(rst))
|
|
||||||
elif cmd.lower() in COMMANDS.keys():
|
|
||||||
def do_action():
|
|
||||||
for fn in COMMANDS[cmd]:
|
|
||||||
fn(cli, rawnick, botconfig.CHANNEL, " ".join(rst))
|
|
||||||
else:
|
|
||||||
cli.msg(chan, "That command was not found.")
|
|
||||||
return
|
|
||||||
|
|
||||||
var.AFTER_FLASTGAME = do_action
|
|
||||||
|
|
||||||
|
|
||||||
@cmd("flastgame", admin_only=True, raw_nick=True)
|
@cmd("flastgame", admin_only=True, raw_nick=True)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user