27 lines
1.4 KiB
Python
27 lines
1.4 KiB
Python
import discord
|
|
from libs.Roles import Roles
|
|
|
|
|
|
class FrameworkButton(discord.ui.Button):
|
|
|
|
def __init__(self, style=discord.ButtonStyle.green, label="Not Set", language_role=None):
|
|
super().__init__()
|
|
self.style = style
|
|
self.label = label
|
|
self.disabled: bool = False
|
|
self.language_role = language_role
|
|
|
|
async def callback(self, interaction: discord.Interaction):
|
|
role = await Roles().get_role(interaction.guild, self.label)
|
|
language_role = await Roles().get_role(interaction.guild, self.language_role)
|
|
messages = []
|
|
if role in interaction.user.roles:
|
|
await Roles().remove_role(interaction.guild, self.label, interaction.user)
|
|
messages.append(f"You are no longer associated with the {self.label} framework group.")
|
|
else:
|
|
if language_role is not None and language_role not in interaction.user.roles:
|
|
await Roles().add_role(interaction.guild, self.language_role, interaction.user)
|
|
messages.append(f"You are now associated with the {self.language_role} language group.")
|
|
await Roles().add_role(interaction.guild, self.label, interaction.user)
|
|
messages.append(f"You are now associated with the {self.label} framework group.")
|
|
await interaction.response.send_message("\n".join(messages), delete_after=5, ephemeral=True) |