diff --git a/jarvis/cogs/rolegiver.py b/jarvis/cogs/rolegiver.py index b19b1d7..8f8f604 100644 --- a/jarvis/cogs/rolegiver.py +++ b/jarvis/cogs/rolegiver.py @@ -43,7 +43,6 @@ class RolegiverCog(commands.Cog): for role_id in setting.value: e_role = ctx.guild.get_role(role_id) if not e_role: - setting.value.remove(role_id) continue roles.append(e_role) if roles: @@ -73,6 +72,13 @@ class RolegiverCog(commands.Cog): await ctx.send(embed=embed) + guild_roles = await ctx.guild.fetch_roles() + guild_role_ids = [x.id for x in guild_roles] + for role_id in setting.value: + if role_id not in guild_role_ids: + setting.value.remove(role_id) + setting.save() + @cog_ext.cog_subcommand( base="rolegiver", name="remove", @@ -102,7 +108,6 @@ class RolegiverCog(commands.Cog): for role_id in setting.value: e_role = ctx.guild.get_role(role_id) if not e_role: - setting.value.remove(role_id) continue roles.append(e_role) @@ -132,6 +137,13 @@ class RolegiverCog(commands.Cog): await ctx.send(embed=embed) + guild_roles = await ctx.guild.fetch_roles() + guild_role_ids = [x.id for x in guild_roles] + for role_id in setting.value: + if role_id not in guild_role_ids: + setting.value.remove(role_id) + setting.save() + @cog_ext.cog_subcommand( base="rolegiver", name="list", @@ -147,7 +159,6 @@ class RolegiverCog(commands.Cog): for role_id in setting.value: e_role = ctx.guild.get_role(role_id) if not e_role: - setting.value.remove(role_id) continue roles.append(e_role) @@ -171,6 +182,11 @@ class RolegiverCog(commands.Cog): embed.set_footer(text=f"{ctx.author.name}#{ctx.author.discriminator} | {ctx.author.id}") await ctx.send(embed=embed) + guild_roles = await ctx.guild.fetch_roles() + guild_role_ids = [x.id for x in guild_roles] + for role_id in setting.value: + if role_id not in guild_role_ids: + setting.value.remove(role_id) setting.save() @cog_ext.cog_subcommand(