2016-08-31 12:15:42 +12:00
|
|
|
import asyncio
|
|
|
|
|
2016-07-09 13:27:19 +12:00
|
|
|
from discord.ext import commands
|
2016-07-30 23:58:01 +12:00
|
|
|
import discord
|
2016-07-09 13:27:19 +12:00
|
|
|
from . import config
|
|
|
|
|
2016-08-31 12:15:42 +12:00
|
|
|
loop = asyncio.get_event_loop()
|
|
|
|
|
2016-07-09 13:27:19 +12:00
|
|
|
|
2016-08-15 14:10:12 +12:00
|
|
|
def is_owner(ctx):
|
2016-08-05 02:30:34 +12:00
|
|
|
return ctx.message.author.id in config.owner_ids
|
2016-07-09 13:27:19 +12:00
|
|
|
|
2016-07-16 09:39:26 +12:00
|
|
|
|
2016-08-15 14:10:12 +12:00
|
|
|
def custom_perms(**perms):
|
2016-07-30 23:58:01 +12:00
|
|
|
def predicate(ctx):
|
|
|
|
if ctx.message.channel.is_private:
|
|
|
|
return False
|
2016-07-31 12:20:55 +12:00
|
|
|
|
2016-07-30 23:58:01 +12:00
|
|
|
member_perms = ctx.message.author.permissions_in(ctx.message.channel)
|
|
|
|
default_perms = discord.Permissions.none()
|
2016-07-31 12:20:55 +12:00
|
|
|
for perm, setting in perms.items():
|
|
|
|
setattr(default_perms, perm, setting)
|
|
|
|
|
2016-07-30 23:58:01 +12:00
|
|
|
try:
|
2016-08-31 12:44:24 +12:00
|
|
|
perm_values = config.perms
|
2016-08-31 12:15:42 +12:00
|
|
|
required_perm_value = perm_values[ctx.message.server.id][ctx.command.qualified_name]
|
2016-07-31 14:16:59 +12:00
|
|
|
required_perm = discord.Permissions(required_perm_value)
|
2016-08-31 12:23:07 +12:00
|
|
|
except (KeyError, TypeError):
|
2016-08-10 14:13:53 +12:00
|
|
|
required_perm = default_perms
|
2016-07-30 23:58:01 +12:00
|
|
|
return member_perms >= required_perm
|
2016-08-31 12:15:42 +12:00
|
|
|
|
2016-08-28 15:00:43 +12:00
|
|
|
predicate.perms = perms
|
2016-07-30 23:58:01 +12:00
|
|
|
return commands.check(predicate)
|
2016-07-16 09:39:26 +12:00
|
|
|
|
|
|
|
|
2016-08-15 14:10:12 +12:00
|
|
|
def is_pm():
|
2016-07-09 13:27:19 +12:00
|
|
|
def predicate(ctx):
|
|
|
|
return ctx.message.channel.is_private
|
|
|
|
|
|
|
|
return commands.check(predicate)
|