我有一个在文本中添加两个表情符号的命令:
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
答案 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 == '✔️':
...