【问题标题】:discord python bot - how to send a message not using on_messagediscord python bot - 如何不使用 on_message 发送消息
【发布时间】:2020-08-16 22:39:02
【问题描述】:

我正在制作一个不和谐的 Python 机器人代码,如果我对表情符号做出反应,机器人将在频道上发送一条消息。

async def on_reaction_add(reaction, user):
    if (reaction.emoji == '\N{VICTORY HAND}'):
        await message.channel.send('hello')

但我无法发送消息... (我的英语很糟糕......对不起)

【问题讨论】:

  • 你的英语很好!如果您写了有关“无法发送消息”的更多详细信息,则会更容易为您提供帮助。你有什么错误吗?或者您不知道如何启动发送?请更明确。

标签: python bots discord.py


【解决方案1】:

需要考虑的几个项目。

  1. 考虑使用on_raw_reaction_add 而不是on_reaction_add 来捕获所有消息反应,而不仅仅是缓存的反应。
  2. 对于您的表情符号比较,您可以使用 python 的emoji.demojize() 来获取表情符号的文本表示。 pypi emoji 0.5.4。 Discord 没有将胜利手表情符号视为“\N{VICTORY HAND}”,它只是:V:。如果你将鼠标悬停在它上面,你会看到。
  3. 要发送消息,您需要设置一个频道。

试试:

import emoji

@client.event
async def on_raw_reaction_add(payload):
    if emoji.demojize(str(payload.emoji)) == ':victory_hand:':
        channel = client.get_channel(payload.channel_id)
        await channel.send('hello')

【讨论】:

    猜你喜欢
    • 2019-09-14
    • 2020-08-31
    • 2019-08-23
    • 2020-12-01
    • 2021-03-02
    • 2021-01-12
    • 2021-06-05
    • 2021-01-10
    • 1970-01-01
    相关资源
    最近更新 更多