def mod_or_permissions(**perms): perms['manage_guild'] = True async def predicate(ctx): return await check_guild_permissions(ctx, perms, check=any) return commands.check(predicate)
def admin_or_permissions(**perms): perms['administrator'] = True async def predicate(ctx): return await check_guild_permissions(ctx, perms, check=any) return commands.check(predicate)
def require_cache(): async def predicate(ctx): if ctx.guild is not None and ctx.guild.id in ctx.bot.missing_guilds: raise NotCachedException return True return commands.check(predicate)
def is_in_guilds(*guild_ids): def predicate(ctx): guild = ctx.guild if guild is None: return False return guild.id in guild_ids return commands.check(predicate)
def isMod(): # for decorators async def predicate(inter): if inter.bot.isMod(inter): return True else: await inter.response.send_message(embed=inter.bot.util.embed(title="Error", description="You lack the permission to use this command"), ephemeral=True) return False return commands.check(predicate)
def bot_has_guild_permission(**kwargs): async def predicate(ctx): if ctx.guild is None: raise NoPrivateMessage() permissions = ctx.guild.me.guild_permissions missing = [ perm for perm, value in kwargs.items() if getattr(permissions, perm, None) != value ] if not missing: return True raise BotMissingPermissions(missing) return commands.check(predicate)
def is_admin(): async def pred(ctx): return await check_guild_permissions(ctx, {'administrator': True}) return commands.check(pred)
def is_mod(): async def pred(ctx): return await check_guild_permissions(ctx, {'manage_guild': True}) return commands.check(pred)
def has_guild_permissions(*, check=all, **perms): async def pred(ctx): return await check_guild_permissions(ctx, perms, check=check) return commands.check(pred)
def bc_only(): async def predicate(ctx): return is_server(ctx, 309218657798455298) return commands.check(predicate)
def is_owner(): async def predicate(ctx): return ctx.bot.is_owner(ctx.author) return commands.check(predicate)
def mod_only(): async def predicate(ctx): return is_mod(ctx.author) or is_admin(ctx.author) return commands.check(predicate)
def can_prompt(): return commands.check(can_prompt_pred)
def is_mod(): return commands.check(is_mod_pred)