How to make a command case insensitive in discord.py

前端 未结 3 1001
长发绾君心
长发绾君心 2020-12-19 06:49

How would one make a command case-insensitive without adding many aliases for different capitalizations like this:

@bot.command(pass_context = True, name = \         


        
相关标签:
3条回答
  • 2020-12-19 07:08

    I am not personally familiar with discord.py, and may be wrong about this.

    It looks to me like case-insensitivity is not a feature of discord.py and will not become one in the future, according to this Github thread. And I quote:

    I won't add this natively. However in the rewrite supporting this is simple from the user end:

    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)
    

    So it looks to me like you can just provide your own on_message as above, and you should be good to go.

    0 讨论(0)
  • 2020-12-19 07:12

    On the rewrite branch, commands.Bot accepts a case_insensitive parameter

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

    Note that there is a performance loss when using this feature.

    0 讨论(0)
  • 2020-12-19 07:21

    you could also use
    if message.content.lower().startswith('command'): doesnt necessarily have to be startswith

    0 讨论(0)
提交回复
热议问题