当我使用函数获取前缀时,如何让我的 Discord 机器人响应自定义前缀和提及?

How to make my Discord bot respond to both custom prefixes and mentions when I use a function to get the prefix?

我想在开头说我之前问过这个问题并且它被关闭,标记为重复。我之前 看过 那些其他问题。我尝试了这些解决方案。他们没有工作。它们不适用于前缀 functions,仅适用于前缀 strings。这就是我问这个问题的原因。我改写了一些内容,在标题中添加了信息,尽我所能来解决这个问题,这样我就能得到我需要的答案。拜托,请不要关闭这个。我想要一个 有效 .

的答案

我有一个函数可以从数据库文件中检索自定义前缀,但我想实现也能响应提及的功能,如 when_mentioned() 函数中所示。但是,我无法在初始化我的机器人时将两个函数都传递给 command_prefix 参数,也无法将我的前缀函数添加到 when_mentioned_or() 函数以将两者结合起来。有什么办法可以做到这一点吗?过去一个小时我一直在寻找答案,但还没有找到任何有效的答案。

您只需在自己的函数中使用 when_mentioned 函数即可检索自定义前缀。您可以使用相同的 botmsg 来调用它,它将 return a list of the mention formats (for with and without a nickname) that you can use。然后,您可以 return 该列表附加您的自定义前缀。

或者,您可以直接 return 带有自定义前缀 bot.user.mention 的列表(请参阅 Bot.user and ClientUser.mention), and the nickname format for that mention (<@!{user_ID}> rather than <@{user_ID}>; see the documentation for ClientUser.id 的文档)。