Role cleanup at end of command instead of beginning

This commit is contained in:
Zeva Rose 2021-09-02 11:39:03 -06:00
parent 3972b757c4
commit a79c15ac76

View file

@ -43,7 +43,6 @@ class RolegiverCog(commands.Cog):
for role_id in setting.value: for role_id in setting.value:
e_role = ctx.guild.get_role(role_id) e_role = ctx.guild.get_role(role_id)
if not e_role: if not e_role:
setting.value.remove(role_id)
continue continue
roles.append(e_role) roles.append(e_role)
if roles: if roles:
@ -73,6 +72,13 @@ class RolegiverCog(commands.Cog):
await ctx.send(embed=embed) 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( @cog_ext.cog_subcommand(
base="rolegiver", base="rolegiver",
name="remove", name="remove",
@ -102,7 +108,6 @@ class RolegiverCog(commands.Cog):
for role_id in setting.value: for role_id in setting.value:
e_role = ctx.guild.get_role(role_id) e_role = ctx.guild.get_role(role_id)
if not e_role: if not e_role:
setting.value.remove(role_id)
continue continue
roles.append(e_role) roles.append(e_role)
@ -132,6 +137,13 @@ class RolegiverCog(commands.Cog):
await ctx.send(embed=embed) 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( @cog_ext.cog_subcommand(
base="rolegiver", base="rolegiver",
name="list", name="list",
@ -147,7 +159,6 @@ class RolegiverCog(commands.Cog):
for role_id in setting.value: for role_id in setting.value:
e_role = ctx.guild.get_role(role_id) e_role = ctx.guild.get_role(role_id)
if not e_role: if not e_role:
setting.value.remove(role_id)
continue continue
roles.append(e_role) 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}") embed.set_footer(text=f"{ctx.author.name}#{ctx.author.discriminator} | {ctx.author.id}")
await ctx.send(embed=embed) 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() setting.save()
@cog_ext.cog_subcommand( @cog_ext.cog_subcommand(