当字符串中包含 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:
,您可以在此处看到它的工作方式:
最后一部分是消息内容将包含的内容。所以在我的例子中,正确的陈述应该是这样的:
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
添加回答
举报
0/150
提交
取消