discord python bot-如何不使用on_message发送消息

时间:2020-05-02 12:32:43

标签: python bots discord.py

我正在制作一个不一致的python机器人代码,如果我用表情符号做出反应,则该机器人将在频道上发送一条消息。

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

但是我无法发送消息... (我的英语太糟了。对不起)

1 个答案:

答案 0 :(得分:0)

要考虑的几个项目。

  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')