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_author(
name=ctx.author.display_name,
icon_url=ctx.author.display_avatar,
)
embed.set_author(name=ctx.author.display_name, icon_url=ctx.author.display_avatar.url)
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)
try:
context = await self.bot.wait_for_component(
self.bot,
check=lambda x: ctx.author.id == x.author.id,
check=lambda x: ctx.author.id == x.context.author.id,
messages=message,
timeout=60 * 1,
)
removed_roles = []
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.save()
for row in components:
for component in row["components"]:
component["disabled"] = True
for component in row.components:
component.disabled = True
roles = []
for role_id in setting.roles:
@ -129,8 +130,9 @@ class RolegiverCog(Scale):
roles.sort(key=lambda x: -x.position)
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 = [
EmbedField(name="Removed Role", value=f"{role.mention}"),
EmbedField(name="Removed Role(s)", value=rvalue),
EmbedField(name="Remaining Role(s)", value=value),
]
@ -141,24 +143,21 @@ class RolegiverCog(Scale):
)
embed.set_thumbnail(url=ctx.guild.icon.url)
embed.set_author(
name=ctx.author.display_name,
icon_url=ctx.author.display_avatar,
)
embed.set_author(name=ctx.author.display_name, icon_url=ctx.author.display_avatar.url)
embed.set_footer(
text=f"{ctx.author.username}#{ctx.author.discriminator} | {ctx.author.id}"
)
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,
components=components,
)
except asyncio.TimeoutError:
for row in components:
for component in row["components"]:
component["disabled"] = True
for component in row.components:
component.disabled = True
await message.edit(components=components)
@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_author(
name=ctx.author.nick if ctx.author.nick else ctx.author.username,
icon_url=ctx.author.display_avatar,
name=ctx.author.display_name,
icon_url=ctx.author.display_avatar.url,
)
embed.set_footer(text=f"{ctx.author.username}#{ctx.author.discriminator} | {ctx.author.id}")
@ -212,8 +211,7 @@ class RolegiverCog(Scale):
select = Select(
options=options,
custom_id="to_delete",
placeholder="Select roles to remove",
placeholder="Select roles to add",
min_values=1,
max_values=len(options),
)
@ -223,7 +221,7 @@ class RolegiverCog(Scale):
try:
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,
timeout=60 * 5,
)
@ -248,14 +246,14 @@ class RolegiverCog(Scale):
embed = build_embed(
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,
)
embed.set_thumbnail(url=ctx.guild.icon.url)
embed.set_author(
name=ctx.author.display_name,
icon_url=ctx.author.display_avatar,
icon_url=ctx.author.display_avatar.url,
)
embed.set_footer(
@ -263,14 +261,14 @@ class RolegiverCog(Scale):
)
for row in components:
for component in row["components"]:
component["disabled"] = True
for component in row.components:
component.disabled = True
await context.context.edit_origin(embed=embed, content="\u200b", components=components)
except asyncio.TimeoutError:
for row in components:
for component in row["components"]:
component["disabled"] = True
for component in row.components:
component.disabled = True
await message.edit(components=components)
@slash_command(name="role", sub_cmd_name="remove", sub_cmd_description="Remove a role")
@ -305,7 +303,7 @@ class RolegiverCog(Scale):
try:
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,
timeout=60 * 5,
)
@ -329,30 +327,27 @@ class RolegiverCog(Scale):
embed = build_embed(
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,
)
embed.set_thumbnail(url=ctx.guild.icon.url)
embed.set_author(
name=ctx.author.display_name,
icon_url=ctx.author.display_avatar,
)
embed.set_author(name=ctx.author.display_name, icon_url=ctx.author.display_avatar.url)
embed.set_footer(
text=f"{ctx.author.username}#{ctx.author.discriminator} | {ctx.author.id}"
)
for row in components:
for component in row["components"]:
component["disabled"] = True
for component in row.components:
component.disabled = True
await context.context.edit_origin(embed=embed, components=components, content="\u200b")
except asyncio.TimeoutError:
for row in components:
for component in row["components"]:
component["disabled"] = True
for component in row.components:
component.disabled = True
await message.edit(components=components)
@slash_command(