【问题标题】:Discord.py respond to reactionsDiscord.py 响应反应
【发布时间】:2021-05-13 17:03:54
【问题描述】:

我如何能够等待反应,然后将该反应用作响应

我想让代码做什么:

用户 -> .buy

Bot -> “你想怎么购买”

用户 -> 反应 1️⃣

Bot -> 对反应 1️⃣ 做出回应

到目前为止,这是我的代码:

message = await ctx.send("How would you like to purchase") 
for emoji in ('0️⃣', '1️⃣', '2️⃣', '3️⃣', '4️⃣', '5️⃣'): 
    await message.add_reaction(emoji)

我希望机器人能够以不同的响应来响应这些反应中的每一个

【问题讨论】:

    标签: python discord discord.py


    【解决方案1】:

    我知道这是一篇旧帖子,但这是为了防止有人回来寻求帮助:

    如果您打算将反应事物仅用于确认等命令,请改用wait_for

    【讨论】:

      【解决方案2】:

      如果您尝试等待响应的响应,您可以尝试使用on_reaction_add 事件。这样的事情可能会奏效:

      @client.event
      async def on_reaction_add(reaction, user):
          if reaction.message.author.bot:     #checks if message is from bot
              if reaction.emoji == '0️⃣':
                  #process for this reaction
              elif reaction.emoji == '1️⃣':
                  #process for this reaction
              #this goes on for as many reactions you have
      

      或者,您可以使用 switch 代替 if elif 语句块。你可以使用这样的 switch 语句:switch = {'0️⃣':#process,'1️⃣':#process, #and so on}

      你可以这样做:

      switch.get(reaction.emoji)
      

      这会从switch语句中的具体反应中得到流程。我希望这可能会有所帮助。

      【讨论】:

      • 谢谢,我不知道reaction.emoji!
      猜你喜欢
      • 2022-01-24
      • 2021-06-22
      • 2021-03-04
      • 2021-03-12
      • 2021-03-11
      • 2021-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多