diff --git a/mod_perms.py b/mod_perms.py deleted file mode 100644 index 7c3b7d0..0000000 --- a/mod_perms.py +++ /dev/null @@ -1,60 +0,0 @@ -# mod_perms.py -import re -import discord -from discord.ext import commands - -def _parse_ids(raw: str): - ids = [] - if not raw: - return ids - for tok in re.split(r'[,\s]+', raw.strip()): - try: - ids.append(int(tok)) - except Exception: - pass - return ids - -def get_mod_role_ids(bot: commands.Bot): - cfg = bot.config['DEFAULT'] - # read individually; allow comma-separated in any field for flexibility - keys = ["admin_role_id", "field_mod_role_id", "intel_mod_role_id", "moderator_role_id"] - ids = [] - for k in keys: - raw = cfg.get(k, "") - for tok in re.split(r"[,\s]+", raw.strip()): - if not tok: - continue - try: - ids.append(int(tok)) - except Exception: - pass - return ids - -def is_moderator_member(member: discord.Member, bot: commands.Bot) -> bool: - if not isinstance(member, discord.Member): - return False - if member.guild_permissions.administrator: - return True - mod_ids = set(get_mod_role_ids(bot)) - return any(r.id in mod_ids for r in member.roles) - -def is_moderator_userid(guild: discord.Guild, user_id: int, bot: commands.Bot) -> bool: - m = guild.get_member(user_id) - return is_moderator_member(m, bot) if m else False - -async def require_mod_ctx(ctx: commands.Context, msg="You don’t have permission to use this."): - if not is_moderator_member(ctx.author, ctx.bot): - await ctx.reply(msg) - return False - return True - -async def require_mod_interaction(interaction: discord.Interaction, msg="This command is restricted to moderators."): - user = interaction.user - if isinstance(user, discord.Member) and is_moderator_member(user, interaction.client): - return True - # Only send a response if we haven’t already - if not interaction.response.is_done(): - await interaction.response.send_message(msg, ephemeral=True) - else: - await interaction.followup.send(msg, ephemeral=True) - return False