【问题标题】:How to get string from an emoji from a reaction如何从反应中从表情符号中获取字符串
【发布时间】:2018-06-11 16:59:32
【问题描述】:

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

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

【问题讨论】:

    标签: python python-3.x discord discord.py


    【解决方案1】:

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

    【讨论】:

    • 当使用它并与标志做出反应时,我收到此消息 - UnicodeEncodeError: 'UCS-2' codec can't encode character '\U0001f1ec' in position 0: Non-BMP character not supported in Tk
    • 看看this question。您能否添加一些打印来查看您是从 Emoji 对象还是从 Reaction.emoji 中的字符串获取的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    • 2017-12-31
    • 2018-12-13
    • 1970-01-01
    • 2015-03-17
    • 2015-03-24
    • 2019-04-18
    相关资源
    最近更新 更多