为了账号安全,请及时绑定邮箱和手机立即绑定

如何让 Discord 机器人在 on_message 中使用自定义表情符号回复消息

如何让 Discord 机器人在 on_message 中使用自定义表情符号回复消息

饮歌长啸 2022-12-27 15:48:43
当字符串中包含 cutstom 服务器表情符号时,我如何才能让我的机器人响应?我的代码目前看起来像这样:if message.content.startswith(":emoji: Hello"):       await client.get_channel(123456789).send("Hello to you, too!")如果我在 Discord 中发布表情符号和句子,该命令将不会触发。我需要改变什么?
查看完整描述

1 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

使用自定义表情符号时,它有一个唯一的 ID,这就是出现在消息内容中的内容,而不仅仅是表情符号的名称。您可以通过几种不同的方式访问它,但最简单的可能是\:emoji:,您可以在此处看到它的工作方式:

//img1.sycdn.imooc.com//63aaa38800014f1702330126.jpg


最后一部分是消息内容将包含的内容。所以在我的例子中,正确的陈述应该是这样的:

if message.content.lower().startswith("<:statue:709925980029845565> hello"): 
   await message.channel.send("Hello to you too!") # sends to the same channel the message came from

您还可以在不使用其 ID 的情况下检索表情符号:

emoji = discord.utils.get(message.guild.emojis, name="statue")
if message.content.lower().startswith(f"{emoji} hello"): 
   await message.channel.send("Hello to you too!")

请注意,我还使用.lower()了使命令不区分大小写的命令,因此无论用户键入HelLo,HELLO还是hElLo


查看完整回答
反对 回复 2022-12-27
  • 1 回答
  • 0 关注
  • 123 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信