Может ли бот discord.py не быть чувствительным к регистру? - PullRequest
0 голосов
/ 16 мая 2018

Я сейчас создаю дискорд-бота, и он не будет отвечать, если я буду использовать заглавные буквы / заглавные буквы. Есть ли способ для бота обнаруживать сообщения, даже если они прописные / строчные? Есть ли способ для бота сделать то же самое с пробелами (если я случайно забуду поставить пробел или случайно объединю два слова вместе ...)?

Или я должен бесконечно следить за утверждениями if?

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Ниже приведен пример кода, как этого добиться.

from discord.ext import commands

client = commands.Bot(command_prefix='!')

@client.event
async def on_ready():
    print('client ready')

@client.command()
async def ping():
    await client.say('Pong')

@client.event
async def on_message(message):
    message.content = message.content.lower().replace(' ', '')
    await client.process_commands(message)

client.run('TOKEN')

Обратите внимание, как message.content заменяется на message.content.lower().replace(' ', ''). Поскольку команда ping указана в нижнем регистре, это означает, что когда пользователь вводит, например, !PinG, команда все равно будет выполнена.

Вы должны быть осторожны при удалении пробелов, поскольку некоторые команды, которые вы можете создать в будущем, могут принимать параметры в качестве входных данных, и в этом случае вам нужны пробелы при вызове команды для разделения параметров.

0 голосов
/ 16 мая 2018

при условии, что вы получите сообщение в переменной msg, тогда, если вы используете msg.lower(), вы получите строчную версию ответа и можете проверить ее, чтобы увидеть, что это была за команда.

также запуск msg.replace(' ', '') создаст значение, при котором все пробелы будут удалены, и вы можете проверить соответствующее значение этой переменной вместо исходного.

, например:

msg = 'HeLlO wOrLd'
print(msg.lower().replace(' ', ''))
>> helloworld

предполагая, что это интерфейс командной строки, я действительно советую вам следовать рекомендациям встроенной библиотеки argparse.

см. здесь: https://docs.python.org/3.3/library/argparse.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...