You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
926 B
25 lines
926 B
from oyoyo.parse import parse_nick |
|
import botconfig |
|
|
|
def generate(fdict, **kwargs): |
|
"""Generates a decorator generator. Always use this""" |
|
def cmd(*s, raw_nick=False, admin_only=False): |
|
def dec(f): |
|
def innerf(*args): |
|
largs = list(args) |
|
if not raw_nick and largs[1]: |
|
largs[1] = parse_nick(largs[1])[0] |
|
if admin_only: |
|
if largs[1] and largs[1] in botconfig.ADMINS: |
|
return f(*largs) |
|
else: |
|
largs[0].notice(largs[1], "You are not an admin.") |
|
return |
|
return f(*largs) |
|
for x in s: |
|
fdict[x] = innerf |
|
return f |
|
|
|
return dec |
|
|
|
return lambda *args, **kwarargs: cmd(*args, **kwarargs) if kwarargs else cmd(*args, **kwargs) |