【问题标题】:How to react to a specific message (discord.py)如何对特定消息做出反应 (discord.py)
【发布时间】:2019-05-24 08:44:42
【问题描述】:

我正在编写一个建议机器人,它应该将玩家的建议发送到我服务器中的建议频道,并在建议频道中使用一些表情符号做出反应。

问题是使用“消息”作为消息参数会对发送的消息做出反应以触发代码,但我希望它对机器人发送到建议频道的消息做出反应。我对编码很陌生。如何让机器人对不同频道中的消息做出反应?

text_channel = client.get_channel('527127778982625291')
msg = 'Your suggestion has been sent to '+str(text_channel.mention)+' to be voted on!'
await client.send_message(message.channel, msg)
msg = str(message.author.mention)+' suggested "'+str(repAdder)+'"'
await client.send_message(discord.Object(id='527127778982625291'), msg)
print(message)
await client.add_reaction(bot_message, ":yes:527184699098136577")
await client.add_reaction(bot_message, ":no:527184806929235999")
await client.add_reaction(bot_message, '????')

【问题讨论】:

  • 如果我理解这一点,它是对玩家发送的消息做出反应,而不是机器人在#suggestions 中发送的消息,对吗?您应该在#suggestions 中获取机器人发送的消息并使用 add_reaction(bot_message, "") 而不是对玩家发送的消息“消息”的反应。
  • 我刚刚尝试将“message”替换为“bot_message”,但现在出现错误:NameError: name 'bot_message' is not defined
  • 我只是以变量 bot_message 为例,哈哈,在你的代码中,你有“await client.send_message(message.channel, msg)”。那是机器人发送的信息对吗?将该消息作为变量获取,它应该可以工作。
  • 我做到了,而且成功了!非常感谢您的帮助!

标签: discord discord.py


【解决方案1】:

您需要将反应添加到机器人发送的消息中,而不是用户发送的消息中。 将 bot-sent-message 作为 Message 对象而不是原始消息传递给 client.add_reaction() 应该可以解决问题。

【讨论】:

    猜你喜欢
    • 2021-03-05
    • 2020-11-20
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 2021-08-14
    • 2021-04-11
    • 2020-10-29
    相关资源
    最近更新 更多