我有两个按钮,我希望他们都被禁用的原始消息,它是在其中一个被点击后点击。甚至比只是禁用它们更好,我希望他们从原始邮件中删除,但这不是我需要的东西。
我的当前编码:
import discord
from discord.ext import commands
from discord.ui import Button, button, View
# Class
class MyView(View):
def __init__(self):
super().__init__(timeout=None)
@button(label="Hello!", style=discord.ButtonStyle.blurple)
async def hello(self, interaction: discord.Interaction, button: Button):
button.disabled=True
embedHelloButton=discord.Embed(title="Hi There!", color=0x5865F2)
embedHelloButton.set_author(name=f"Requested by {interaction.user.name}", icon_url=interaction.user.avatar.url)
await interaction.response.send_message(embed=embedHelloButton, ephemeral=False)
@button(label="No. Bye.", style=discord.ButtonStyle.red)
async def bye(self, interaction: discord.Interaction, button: Button):
button.disabled=True
embedByeButton=discord.Embed(title="Bye :(", color=0xff0000)
embedByeButton.set_author(name=f"Requested by {interaction.user.name}", icon_url=interaction.user.avatar.url)
await interaction.response.send_message(embed=embedByeButton, ephemeral=False)
# Command
@client.hybrid_command(name="hello", description="Say hello to the bot!")
async def hello(ctx):
embedHello=discord.Embed(title="Say hello to me!", color=0xff0000)
embedHello.set_author(name=f"Requested by {ctx.author.name}", icon_url=ctx.author.avatar.url)
await ctx.send(embed=embedHello, view=MyView())
第一条消息上的按钮仍然是可点击的,我想要么在第一条消息上禁用按钮,要么将它们完全删除。有什么办法吗?
1条答案
按热度按时间e0bqpujr1#
您可以简单地对视图类进行这些更改以禁用这两个按钮
如果您想删除所有按钮,这甚至比禁用按钮更容易
我建议你稍微修改一下斜线命令
并且作为一个快速的提醒,你只能对交互进行一次响应,以避免触发交互响应异常。因此,如果您想发送消息并编辑视图,则可以切换到followup
希望这能帮上忙。