FunkyBot/libs/FrameworkButton.py

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_guild_role(interaction.guild, self.label)
language_role = await Roles().get_guild_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)