如何在 discord.py 中使命令不区分大小写

新手上路,请多包涵

如果不为不同的大写字母添加许多别名,如何使命令不区分大小写,如下所示:

 @bot.command(pass_context = True, name = 'test', aliases=['Test', 'tEst', 'teSt', 'tesT', 'TEst', 'TeSt', 'TesT', 'tESt', 'tEsT'])
async def test(self, ctx):
    #do stuff

原文由 Dextication 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 840
2 个回答

在重写分支上, commands.Bot 接受一个 case_insensitive 参数

bot = commands.Bot(command_prefix='!', case_insensitive=True)

请注意,使用此功能时会有性能损失。

原文由 Patrick Haugh 发布,翻译遵循 CC BY-SA 4.0 许可协议

我个人对 discord.py 并不熟悉,对此可能是错误的。

根据这个 Github 线程,在我看来,不区分大小写不是 discord.py 的一个特性,将来也不会成为一个特性。我引用:

我不会在本地添加这个。然而,在重写中支持这一点从用户端很简单:

 async def on_message(self, message):
  ctx = await self.get_context(message)
  if ctx.prefix is not None:
    ctx.command = self.commands.get(ctx.invoked_with.lower())
    await self.invoke(ctx)

所以在我看来,您可以提供自己的 on_message 如上所述,您应该可以开始了。

原文由 Max von Hippel 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题