Discord Python机器人如何识别消息中的Emoji并实现关键词触发回复?
Discord Python机器人识别Emoji触发词解决方案
匹配规则说明
要实现带Emoji的触发词识别,需要先区分你要匹配的是全局Unicode Emoji还是服务器自定义Emoji,两种场景的填入格式完全不同:
- 匹配系统自带的全局通用Emoji(比如🍎、🧟这类全平台通用表情)
直接将Emoji本身复制粘贴到代码的XXXX位置即可,不要使用:apple:这类短名填充。Discord会将用户发送的短名自动解析为实际Unicode字符,用短名无法完成匹配。
示例代码:word_list = ['Lanfeust got 1 🧟 zombie eye'] - 匹配服务器上传的自定义Emoji
机器人收到的消息中,自定义Emoji有固定格式:静图格式为<:emoji名称:emojiID>,动图格式为<a:emoji名称:emojiID>,需要按完整格式填入,仅填ID或短名都无法匹配。
假设你要使用的僵尸眼Emoji名称为zombie_eye、ID为908223460097011743且为静图,填入后示例代码:word_list = ['Lanfeust got 1 <:zombie_eye:908223460097011743> zombie eye']
调试方法
如果还是匹配失败,可以在on_message方法中添加一行print(message.content),发送对应带Emoji的消息后查看控制台输出的原始内容,直接复制输出里的Emoji部分到触发词中,即可保证格式完全匹配。
内容的提问来源于stack exchange,提问作者Maximvaulch
相关产品推荐
相关产品推荐

