You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中Discord机器人无法识别表情符号1️⃣匹配问题

解决Discord机器人无法识别1️⃣表情反应的问题

问题出在你直接将payload.emoji(这是一个PartialEmoji对象)和字符串"1️⃣"做比较,两者类型不同,永远不会相等,所以始终输出"no"。

修复方案

你需要通过PartialEmoji对象的name属性来获取表情的字符串值,再进行判断:

修改后的代码

@commands.Cog.listener()
async def on_raw_reaction_add(self, payload):
    channel = await self.client.fetch_channel(payload.channel_id)
    message = await channel.fetch_message(payload.message_id)
    user = await self.client.fetch_user(payload.user_id)
    emoji = payload.emoji
    
    if user.id != self.client.user.id:
        if emoji.name == "1️⃣":
            print("yes")
        else:
            print("no")

额外优化

原代码中message_id = message.id和if message.id == message_id:属于冗余逻辑,完全可以删除,不影响功能运行。

内容的提问来源于stack exchange,提问作者Conner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 15:39:37