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

当字符串中包含 cutstom 服务器表情符号时,我如何才能让我的机器人响应?
我的代码目前看起来像这样:

if message.content.startswith(":emoji: Hello"): 
     await client.get_channel(123456789).send("Hello to you, too!")

如果我在 Discord 中发布表情符号和句子,该命令将不会触发。我需要改变什么?


饮歌长啸
浏览 126回答 1
1回答

慕码人2483693

使用自定义表情符号时,它有一个唯一的 ID,这就是出现在消息内容中的内容,而不仅仅是表情符号的名称。您可以通过几种不同的方式访问它,但最简单的可能是\:emoji:,您可以在此处看到它的工作方式:最后一部分是消息内容将包含的内容。所以在我的例子中,正确的陈述应该是这样的:if&nbsp;message.content.lower().startswith("<:statue:709925980029845565>&nbsp;hello"):&nbsp; &nbsp;&nbsp;&nbsp;await&nbsp;message.channel.send("Hello&nbsp;to&nbsp;you&nbsp;too!")&nbsp;#&nbsp;sends&nbsp;to&nbsp;the&nbsp;same&nbsp;channel&nbsp;the&nbsp;message&nbsp;came&nbsp;from您还可以在不使用其 ID 的情况下检索表情符号:emoji&nbsp;=&nbsp;discord.utils.get(message.guild.emojis,&nbsp;name="statue") if&nbsp;message.content.lower().startswith(f"{emoji}&nbsp;hello"):&nbsp; &nbsp;&nbsp;&nbsp;await&nbsp;message.channel.send("Hello&nbsp;to&nbsp;you&nbsp;too!")请注意,我还使用.lower()了使命令不区分大小写的命令,因此无论用户键入HelLo,HELLO还是hElLo
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python