【问题标题】:Button does not respond on click discord.py单击时按钮不响应 discord.py
【发布时间】:2022-01-05 02:56:22
【问题描述】:

所以我试图在我的 discord 机器人中实现按钮,但是当点击按钮时,discord 机器人似乎没有响应。我已经完成了所有的导入。

async def testButton(ctx):
  ticket = await ctx.send(
      "_ _",
      components = [
          Button(label = "Test", style=ButtonStyle.blue, custom_id="test")
      ]
  )
  interaction = await client.wait_for("button_click", check = lambda i: i.custom_id == "test")
  await interaction.send(content='Test')

【问题讨论】:

  • 你使用什么库?

标签: python discord discord.py


【解决方案1】:

只需在主文件中的客户端声明下方添加此行DiscordComponents(client)。然后这个命令开始工作

【讨论】:

    【解决方案2】:

    假设你使用的是最常见的discord库(discordpy),你需要在函数上方添加client.command()decoratordiscordpy知道它是一个命令:

    @client.command()
    async def testButton(ctx):
      ticket = await ctx.send(
          "_ _",
          components = [
              Button(label = "Test", style=ButtonStyle.blue, custom_id="test")
          ]
      )
      interaction = await client.wait_for("button_click", check = lambda i: i.custom_id == "test")
      await interaction.send(content='Test')
    

    【讨论】:

    • 我已经添加了
    【解决方案3】:

    最近几天我在 replit 中运行 discord-components 时遇到了这个错误。在过去,它可以正常工作,但有时它无法正常工作,而在其他编辑器或其他 repli 项目中它工作正常。我不知道如何解决这个错误,但如果你想发送交互,我会建议你对我来说很好的替代方法。只需将代码的最后一行替换为 embed 并使用响应进行交互。像下面的代码

    async def testButton(ctx):
      ticket = await ctx.send(
          "_ _",
          components = [
              Button(label = "Test", style=ButtonStyle.blue, custom_id="test")
          ]
      )
      interaction = await client.wait_for("button_click", check = lambda i: i.custom_id == "test")
      embed=discord.Embed(title="Test")
      await interaction.respond(embed=embed)
    

    我希望这对你有用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-04
      • 1970-01-01
      • 2022-10-21
      • 2021-08-11
      • 1970-01-01
      • 1970-01-01
      • 2015-09-02
      相关资源
      最近更新 更多