from discord.ext import commands def is_owner_check(message): return str(message.author.id) in ['171685542553976832', '269156684155453451'] def is_owner(warn=True): def check(ctx, warn): owner = is_owner_check(ctx.message) if not owner and warn: print(ctx.message.author.name + " à essayer d'executer " + ctx.message.content + " sur le serveur " + ctx.message.guild.name) return owner owner = commands.check(lambda ctx: check(ctx, warn)) return owner """--------------------------------------------------------------------------------------------------------------------------""" async def check_permissions(ctx, perms, *, check=all): is_owner = await ctx.bot.is_owner(ctx.author) if is_owner or is_owner_check(ctx.message) == True: return True resolved = ctx.channel.permissions_for(ctx.author) return check(getattr(resolved, name, None) == value for name, value in perms.items()) def has_permissions(*, check=all, **perms): async def pred(ctx): return await check_permissions(ctx, perms, check=check) return commands.check(pred) async def check_guild_permissions(ctx, perms, *, check=all): is_owner = await ctx.bot.is_owner(ctx.author) if is_owner: return True if ctx.guild is None: return False resolved = ctx.author.guild_permissions return check(getattr(resolved, name, None) == value for name, value in perms.items()) def has_guild_permissions(*, check=all, **perms): async def pred(ctx): return await check_guild_permissions(ctx, perms, check=check) return commands.check(pred) # These do not take channel overrides into account def is_mod(): async def pred(ctx): return await check_guild_permissions(ctx, {'manage_guild': True}) return commands.check(pred) def is_admin(): async def pred(ctx): return await check_guild_permissions(ctx, {'administrator': True}) return commands.check(pred) 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 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 is_lounge_cpp(): return is_in_guilds(145079846832308224) def get_user(message, user): try: member = message.mentions[0] except: member = message.guild.get_member_named(user) if not member: try: member = message.guild.get_member(int(user)) except ValueError: pass if not member: return None return member def check_date(date: str): if len(date) == 1: return f"0{date}" else: return date