'How to have separate interactions for separate buttons | discord.py pycord
How can I have different interactions response on different buttons in pycord/discord.py.
Code:
@client.command()
async def test(ctx: commands.Context):
button = Button(label="Click Below", custom_id="freefire",style=discord.ButtonStyle.green, emoji="<:freefire:944183849779335198>")
button1 = Button(label="Click Below", custom_id="bgmi",style=discord.ButtonStyle.green, emoji="<:bgmi:944184219528208384>")
async def free_fire(interaction: discord.Interaction):
role = ctx.guild.get_role(944152201784336414)
member = ctx.guild.get_member(interaction.user.id)
if role in interaction.user.roles and interaction.custom_id== "freefire":
await interaction.user.remove_roles(role)
await interaction.response.send_message(f"{role} role has been taken from you", ephemeral=True)
else:
await member.add_roles(role)
await interaction.response.send_message(f"{role} role has been given to you", ephemeral=True)
button.callback = free_fire
async def bgmi(interaction: discord.Interaction):
role = ctx.guild.get_role(944152314200088667)
member = ctx.guild.get_member(interaction.user.id)
if role in interaction.user.roles and interaction.custom_id== "bgmi":
await interaction.user.remove_roles(role)
await interaction.response.send_message(f"{role} role has been taken from you", ephemeral=True)
else:
await member.add_roles(role)
await interaction.response.send_message(f"{role} role has been given to you", ephemeral=True)
button.callback = bgmi
It simply gives the role of last button when I click the first button and other buttons do not respond at all there is no error in console or anywhere.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
