on_reaction_add自定义表情符号

时间:2018-11-23 05:13:57

标签: python bots discord discord.py

我有一个在文本中添加两个表情符号的命令:

await Bot.add_reaction(msg, ":name:id")
await Bot.add_reaction(msg, "✔️")

使用 on_reaction_add ,点击表情符号后,它会执行以下操作:

@Bot.event
async def on_reaction_add(reaction, user):
    try:
        if reaction.emoji == "<:name:id>":
          ##stuffs

        if reaction.emoji == "✔️":
          ##stuffs

    except KeyError:
        pass

但是只有✔️表情符号会反应,当自定义表情符号:name:id 反应时,它什么也不做,我应该怎么做才能使其起作用? 我已经尝试在没有 <> 的情况下使用 if reaction.emoji ==“:name:id”:,但也无法正常工作。 只是为了明确:name:id name 是表情符号的名称, id 是表情符号的ID

1 个答案:

答案 0 :(得分:1)

如果反应是使用自定义表情符号,则reaction.Emoji将是代表该表情符号的discord.Emoji对象。否则它将是一个字符串。

from discord import Emoji

@Bot.event
async def on_reaction_add(reaction, user):
    emoji = reaction.emoji
    if isinstance(emoji, Emoji):
        if emoji.name == 'myemoji':
            ...
    else:
        if emoji == '✔️':
            ...