Added cleanup in allow_role and cleaned output messages

This commit is contained in:
AllfatherHatt 2025-02-24 14:13:09 +01:00
parent db042ff834
commit e8e4b7e471

View File

@ -490,10 +490,13 @@ class ReginaldCog(commands.Cog):
@commands.has_permissions(administrator=True) @commands.has_permissions(administrator=True)
async def allow_role(self, ctx, role: discord.Role): async def allow_role(self, ctx, role: discord.Role):
async with self.config.guild(ctx.guild).allowed_roles() as allowed_roles: async with self.config.guild(ctx.guild).allowed_roles() as allowed_roles:
if role.id not in allowed_roles: # ✅ Clean list of invalid roles before adding new one
allowed_roles.append(role.id) valid_roles = [role_id for role_id in allowed_roles if ctx.guild.get_role(role_id)]
await self.config.guild(ctx.guild).allowed_roles.set(allowed_roles) # Save change
await ctx.send(f"DEBUG: Role {role.id} added. Current allowed_roles: {allowed_roles}") if role.id not in valid_roles:
valid_roles.append(role.id)
await self.config.guild(ctx.guild).allowed_roles.set(valid_roles) # Save change
await ctx.send(f"✅ Role `{role.name}` has been granted access to Reginald.")
else: else:
await ctx.send(f"⚠️ Role `{role.name}` already has access.") await ctx.send(f"⚠️ Role `{role.name}` already has access.")
@ -501,7 +504,6 @@ class ReginaldCog(commands.Cog):
@commands.has_permissions(administrator=True) @commands.has_permissions(administrator=True)
async def disallow_role(self, ctx, role: discord.Role): async def disallow_role(self, ctx, role: discord.Role):
async with self.config.guild(ctx.guild).allowed_roles() as allowed_roles: async with self.config.guild(ctx.guild).allowed_roles() as allowed_roles:
# Remove invalid roles
valid_roles = [role_id for role_id in allowed_roles if ctx.guild.get_role(role_id)] valid_roles = [role_id for role_id in allowed_roles if ctx.guild.get_role(role_id)]
await self.config.guild(ctx.guild).allowed_roles.set(valid_roles) await self.config.guild(ctx.guild).allowed_roles.set(valid_roles)