Discord custom button
🧩 Syntax:
# custom button class
class RoleButton(discord.ui.Button):
def __init__(self, isRoleActive: bool, btnName: str, cb: Callable):
# Set the style of the button based on the role's state
btnStyle = discord.ButtonStyle.primary if isRoleActive else discord.ButtonStyle.secondary
# Call the superclass' __init__ method with the style and label for the button
super().__init__(style=btnStyle, label=btnName)
# Set the callback method for the button
self.cb = cb
async def callback(self, interaction: discord.Interaction):
await self.cb(interaction)
# This is our actual role View
class RoleView(discord.ui.View):
def __init__(self):
super().__init__()
# Create the buttons and add them to the view
roles = ['FPS', 'MMO', 'MOBA', 'RPG', 'RTS']
# For each role, create a button and add it to the view
for role in roles:
self.add_item(RoleButton(True, role, self.fps_callback))
async def fps_callback(self):
pass