beheh
@beheh

Как сделать проверку наличия или правильность аргумента?

Есть команда !slap, !ban, !kick @пользователь (без разницы). И человек пишет или просто эту команду (!slap, !kick. !ban), или с непонятным аргументом (надеюсь все так пишу) (!slap 91249, !kick haha). Как сделать так что бы он писал ошибку пользователю если он напишет прошлые варианты
  • Вопрос задан
  • 145 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Создать специальный декоратор, и функцию, которая будет обрабатывать эту ошибку.
Предположим, имеем код
@bot.command()
async def kick(ctx, member: discord.Member):


Можем создать декоратор, в который будем падать, если в функции kick случится ошибка
@kick.error
async def kick_error(ctx: commands.Context, error: commands.CommandError):
    # здесь уже делаем что хотим, в зависимости от класса ошибки. Например, если не хватило аргумента, то можно сделать так
    if isinstance(error, discord.ext.commands.errors.MissingRequiredArgument):
        await ctx.send('Недостаточно аргументов')

и тд

Следует обратить внимание на раздел с обработкой ошибок
https://discordpy.readthedocs.io/en/stable/ext/com...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы