Как сделать чтобы при вводе команды не проверялся регистр? discord.py
Пользователь пишет команду /TEAM, но в коде у меня должна быть команда /team и как сделать чтобы при любом регистре команда выполнялась?
Ответы (4 шт):
Автор решения: Helper
→ Ссылка
Преобразуйте выражение к верхнему ( .upper() ) или нижнему регистру ( .lower() )
Автор решения: Bloodies
→ Ссылка
туда, где получаешь сообщение от пользователя '\TEAM'.lower() или же ctx.lower()
Автор решения: denisnumb
→ Ссылка
Самый простой вариант - через aliases:
@bot.command(aliases=['team', 'TEAM'])
async def __team(ctx):
await ctx.send('team')
Если у команды множество вариаций названий, можно проверять команду в on_message() и приводить ее название к нижнему регистру, а затем уже передавать в обработчик команды:
@bot.event
async def on_message(message):
if message.author.bot:
return
if message.content.startswith(bot.command_prefix):
splitted_content = message.content.split()
splitted_content[0] = splitted_content[0].lower()
message.content = ' '.join(splitted_content)
await bot.process_commands(message)
Автор решения: Donan
→ Ссылка
bot = commands.Bot(command_prefix='Ваш префикс', case_insensitive=True)
^^^^^^^^^^^^^^^^^^^^^