【问题标题】:How to make my Discord bot respond to both custom prefixes and mentions when I use a function to get the prefix?当我使用函数获取前缀时,如何让我的 Discord 机器人同时响应自定义前缀和提及?
【发布时间】:2020-05-10 07:43:24
【问题描述】:

我想先说我之前问过这个问题,但它已关闭,标记为重复。我之前看到其他问题。我尝试了这些解决方案。他们没有工作。它们不适用于前缀 functions,只能使用前缀 strings。这就是我问这个问题的原因。我已经改写了一些内容,在标题中添加了信息,尽我所能解决这个问题,这样我就可以得到我需要的答案。请,请不要关闭这个。我想要一个有效的答案。

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

【问题讨论】:

  • 也许可以使用@bot.event 制作一个处理程序,其中机器人将自己的标签识别为文本,然后可以运行一个函数来尝试将其用作前缀
  • 自己尝试一下,如果您真的希望我研究一下,我可以在空闲时间进行
  • 我回家后会尝试安装它,谢谢。
  • 尝试比较是否正在使用前缀或是否正在使用标签,然后从那里设置前缀
  • @ironkey 接受的答案有一个更简化的解决方案,所以我选择了那个。感谢您的帮助。

标签: python discord discord.py discord.py-rewrite


【解决方案1】:

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

或者,您可以直接返回带有自定义前缀bot.user.mention 的列表(请参阅Bot.userClientUser.mention 的文档)以及提及的昵称格式(<@!{user_ID}> 而不是<@{user_ID}> ; 请参阅ClientUser.id 的文档。

【讨论】:

  • 我……不知道我怎么没有想到。谢谢。回到家后我一定会尝试的。
猜你喜欢
  • 2021-12-01
  • 2020-11-25
  • 2021-04-25
  • 1970-01-01
  • 2020-06-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-19
  • 1970-01-01
相关资源
最近更新 更多