首页 > 解决方案 > 如何从反应中从表情符号中获取字符串

问题描述

我正在使用 discord.py,我想知道如何获取用户反应过的表情符号的字符串值。例如,如果用户对 GB 标志做出反应,我将能够获取字符串:flag_gb:,以便我可以访问他们是否对标志做出反应,如果是,那么它是什么标志。

@client.event
async def on_reaction_add(reaction, user):
    channel = reaction.message.channel

标签: pythonpython-3.xdiscorddiscord.py

解决方案


Emoji对象有一个name属性。查看Reaction对象,看起来Reaction.emoji属性可以是字符串或Emoji实例。尝试类似的东西

@client.event
async def on_reaction_add(reaction, user):
    emoji = reaction.emoji
    if isinstance(emoji, discord.Emoji):
        name = emoji.name
    elif isinstance(emoji, str):
        name = emoji
    else:
        raise ValueError("Unknown emoji of type:", type(emoji))
    print("Name of emoji:", name)
    if "flag" in name:
        print("The emoji is a flag")

推荐阅读