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
相关产品推荐
相关产品推荐

