Fix rolegiver

This commit is contained in:
Zeva Rose 2022-02-04 10:33:17 -07:00
parent b142e7bcdb
commit 2595b87061

View file

@ -69,10 +69,7 @@ class RolegiverCog(Scale):
) )
embed.set_thumbnail(url=ctx.guild.icon.url) embed.set_thumbnail(url=ctx.guild.icon.url)
embed.set_author( embed.set_author(name=ctx.author.display_name, icon_url=ctx.author.display_avatar.url)
name=ctx.author.display_name,
icon_url=ctx.author.display_avatar,
)
embed.set_footer(text=f"{ctx.author.username}#{ctx.author.discriminator} | {ctx.author.id}") embed.set_footer(text=f"{ctx.author.username}#{ctx.author.discriminator} | {ctx.author.id}")
@ -106,17 +103,21 @@ class RolegiverCog(Scale):
message = await ctx.send(content="\u200b", components=components) message = await ctx.send(content="\u200b", components=components)
try: try:
context = await self.bot.wait_for_component( context = await self.bot.wait_for_component(
self.bot, check=lambda x: ctx.author.id == x.context.author.id,
check=lambda x: ctx.author.id == x.author.id,
messages=message, messages=message,
timeout=60 * 1, timeout=60 * 1,
) )
removed_roles = []
for to_delete in context.context.values: for to_delete in context.context.values:
role = await ctx.guild.get_role(to_delete)
if role:
removed_roles.append(role)
setting.roles.remove(int(to_delete)) setting.roles.remove(int(to_delete))
setting.save() setting.save()
for row in components: for row in components:
for component in row["components"]: for component in row.components:
component["disabled"] = True component.disabled = True
roles = [] roles = []
for role_id in setting.roles: for role_id in setting.roles:
@ -129,8 +130,9 @@ class RolegiverCog(Scale):
roles.sort(key=lambda x: -x.position) roles.sort(key=lambda x: -x.position)
value = "\n".join([r.mention for r in roles]) if roles else "None" value = "\n".join([r.mention for r in roles]) if roles else "None"
rvalue = "\n".join([r.mention for r in removed_roles]) if removed_roles else "None"
fields = [ fields = [
EmbedField(name="Removed Role", value=f"{role.mention}"), EmbedField(name="Removed Role(s)", value=rvalue),
EmbedField(name="Remaining Role(s)", value=value), EmbedField(name="Remaining Role(s)", value=value),
] ]
@ -141,24 +143,21 @@ class RolegiverCog(Scale):
) )
embed.set_thumbnail(url=ctx.guild.icon.url) embed.set_thumbnail(url=ctx.guild.icon.url)
embed.set_author( embed.set_author(name=ctx.author.display_name, icon_url=ctx.author.display_avatar.url)
name=ctx.author.display_name,
icon_url=ctx.author.display_avatar,
)
embed.set_footer( embed.set_footer(
text=f"{ctx.author.username}#{ctx.author.discriminator} | {ctx.author.id}" text=f"{ctx.author.username}#{ctx.author.discriminator} | {ctx.author.id}"
) )
await context.context.edit_origin( await context.context.edit_origin(
content=f"Removed {len(context.selected_options)} role(s)", content=f"Removed {len(context.context.values)} role(s)",
embed=embed, embed=embed,
components=components, components=components,
) )
except asyncio.TimeoutError: except asyncio.TimeoutError:
for row in components: for row in components:
for component in row["components"]: for component in row.components:
component["disabled"] = True component.disabled = True
await message.edit(components=components) await message.edit(components=components)
@slash_command(name="rolegiver", sub_cmd_name="list", description="List rolegiver roles") @slash_command(name="rolegiver", sub_cmd_name="list", description="List rolegiver roles")
@ -188,8 +187,8 @@ class RolegiverCog(Scale):
embed.set_thumbnail(url=ctx.guild.icon.url) embed.set_thumbnail(url=ctx.guild.icon.url)
embed.set_author( embed.set_author(
name=ctx.author.nick if ctx.author.nick else ctx.author.username, name=ctx.author.display_name,
icon_url=ctx.author.display_avatar, icon_url=ctx.author.display_avatar.url,
) )
embed.set_footer(text=f"{ctx.author.username}#{ctx.author.discriminator} | {ctx.author.id}") embed.set_footer(text=f"{ctx.author.username}#{ctx.author.discriminator} | {ctx.author.id}")
@ -212,8 +211,7 @@ class RolegiverCog(Scale):
select = Select( select = Select(
options=options, options=options,
custom_id="to_delete", placeholder="Select roles to add",
placeholder="Select roles to remove",
min_values=1, min_values=1,
max_values=len(options), max_values=len(options),
) )
@ -223,7 +221,7 @@ class RolegiverCog(Scale):
try: try:
context = await self.bot.wait_for_component( context = await self.bot.wait_for_component(
check=lambda x: ctx.author.id == x.author_id, check=lambda x: ctx.author.id == x.context.author.id,
messages=message, messages=message,
timeout=60 * 5, timeout=60 * 5,
) )
@ -248,14 +246,14 @@ class RolegiverCog(Scale):
embed = build_embed( embed = build_embed(
title="User Given Role", title="User Given Role",
description=f"{role.mention} given to {ctx.author.mention}", description=f"{len(added_roles)} role(s) given to {ctx.author.mention}",
fields=fields, fields=fields,
) )
embed.set_thumbnail(url=ctx.guild.icon.url) embed.set_thumbnail(url=ctx.guild.icon.url)
embed.set_author( embed.set_author(
name=ctx.author.display_name, name=ctx.author.display_name,
icon_url=ctx.author.display_avatar, icon_url=ctx.author.display_avatar.url,
) )
embed.set_footer( embed.set_footer(
@ -263,14 +261,14 @@ class RolegiverCog(Scale):
) )
for row in components: for row in components:
for component in row["components"]: for component in row.components:
component["disabled"] = True component.disabled = True
await context.context.edit_origin(embed=embed, content="\u200b", components=components) await context.context.edit_origin(embed=embed, content="\u200b", components=components)
except asyncio.TimeoutError: except asyncio.TimeoutError:
for row in components: for row in components:
for component in row["components"]: for component in row.components:
component["disabled"] = True component.disabled = True
await message.edit(components=components) await message.edit(components=components)
@slash_command(name="role", sub_cmd_name="remove", sub_cmd_description="Remove a role") @slash_command(name="role", sub_cmd_name="remove", sub_cmd_description="Remove a role")
@ -305,7 +303,7 @@ class RolegiverCog(Scale):
try: try:
context = await self.bot.wait_for_component( context = await self.bot.wait_for_component(
check=lambda x: ctx.author.id == x.author_id, check=lambda x: ctx.author.id == x.context.author.id,
messages=message, messages=message,
timeout=60 * 5, timeout=60 * 5,
) )
@ -329,30 +327,27 @@ class RolegiverCog(Scale):
embed = build_embed( embed = build_embed(
title="User Forfeited Role", title="User Forfeited Role",
description=f"{role.mention} taken from {ctx.author.mention}", description=f"{len(removed_roles)} role(s) removed from {ctx.author.mention}",
fields=fields, fields=fields,
) )
embed.set_thumbnail(url=ctx.guild.icon.url) embed.set_thumbnail(url=ctx.guild.icon.url)
embed.set_author( embed.set_author(name=ctx.author.display_name, icon_url=ctx.author.display_avatar.url)
name=ctx.author.display_name,
icon_url=ctx.author.display_avatar,
)
embed.set_footer( embed.set_footer(
text=f"{ctx.author.username}#{ctx.author.discriminator} | {ctx.author.id}" text=f"{ctx.author.username}#{ctx.author.discriminator} | {ctx.author.id}"
) )
for row in components: for row in components:
for component in row["components"]: for component in row.components:
component["disabled"] = True component.disabled = True
await context.context.edit_origin(embed=embed, components=components, content="\u200b") await context.context.edit_origin(embed=embed, components=components, content="\u200b")
except asyncio.TimeoutError: except asyncio.TimeoutError:
for row in components: for row in components:
for component in row["components"]: for component in row.components:
component["disabled"] = True component.disabled = True
await message.edit(components=components) await message.edit(components=components)
@slash_command( @slash_command(