如何让我的 Discord 机器人响应提及?

How can I make my Discord bot respond to mentions?

我正在尝试让我的 Discord 机器人响应诸如“@TLG-bot#5376 你几岁?”之类的提及。 我正在使用 Discord.py 来实现这一点。

我试图将我的机器人变成一个对话机器人,但现在不需要了:)

尽管您的评论表明您已经完成了研究,但您在搜索 discord.py 时似乎没有阅读 google 上的第一个 link,这是他们的 API 参考。 Thats this.

开个玩笑,里面有一个函数叫做

discord.on_message(message)

Called when a message is created and sent to a server.

您可以使用此功能在每次发送消息时被告知,然后扫描它以获取您的机器人用户名。

Discord 以一种从表面上看并不明显的方式处理提及。

每次提及实际上都是这样的字符串:<@user_id>(如果成员有昵称,则为 <@!user_id>。)您可以通过复制您的机器人用户 ID 并替换 user_id 与它(例如 <@330407844660641792>

如果您使用 discord.py 中包含的 ext.commands 框架,您可以在 commands.Bot(...) 初始化中使用 when_mentioned 作为前缀。

您也可以使用消息中提到的Message.mentions to get a list of discord.Member。请注意,这将解析整个消息中的提及,而不仅仅是开头,并将解析提到的每个成员,而不仅仅是你的机器人。

否则,使用 on_message 事件以您认为合适的任何方法从消息内容中手动解析字符串。