Задать вопрос
@Krytoi_xleb

Ошибка с error?

У меня проблема с error. Они просто не работают, я без понятия почему. Могу предъявить полный код. Вот мой код:
@clear.error
async def clear_error(error, ctx):
    if isinstance(error, commands.MissingRequiredArgument):
        await ctx.send("Использование: jc!clear <количество>")
    elif isinstance(error, commands.BadArgument):
        await ctx.send("Неверный аргумент. Использование: jc!clear <количество> (количество должно быть целым числом)")
    elif isinstance(error, commands.MissingPermissions):
        await ctx.send("Недостаточно прав для выполнения команды `jc!clear`.")

@mute.error
async def mute_error(error, ctx):
    if isinstance(error, commands.MissingRequiredArgument):
        await ctx.send("Использование: jc!mute <упоминание пользователя> <время в минутах> [причина]")
    elif isinstance(error, commands.BadArgument):
        await ctx.send("Неверные аргументы. Использование: jc!mute <упоминание пользователя> <время в минутах> [причина]")
    elif isinstance(error, commands.MissingPermissions):
        await ctx.send("Недостаточно прав для выполнения команды `jc!mute`.")

@unmute.error
async def unmute_error(error, ctx):
    if isinstance(error, commands.MissingRequiredArgument):
        await ctx.send("Использование: jc!unmute <упоминание пользователя>")
    elif isinstance(error, commands.BadArgument):
        await ctx.send("Неверный аргумент. Использование: jc!unmute <упоминание пользователя>")
    elif isinstance(error, commands.MissingPermissions):
        await ctx.send("Недостаточно прав для выполнения команды `jc!unmute`.")

@ban.error
async def ban_error(error, ctx):
    if isinstance(error, commands.MissingRequiredArgument):
        await ctx.send("Использование: jc!ban <упоминание пользователя> [время(пример 1d2h)] [причина]")
    elif isinstance(error, commands.BadArgument):
        await ctx.send("Неверные аргументы. Использование: jc!ban <упоминание пользователя> [время(пример 1d2h)] [причина]")
    elif isinstance(error, commands.MissingPermissions):
        await ctx.send("Недостаточно прав для выполнения команды `jc!ban`.")

@kick.error
async def kick_error(error, ctx):
    if isinstance(error, commands.MissingRequiredArgument):
        await ctx.send("Использование: jc!kick <упоминание пользователя>")
    elif isinstance(error, commands.BadArgument):
        await ctx.send("Неверный аргумент. Использование: jc!kick <упоминание пользователя>")
    elif isinstance(error, commands.MissingPermissions):
        await ctx.send("Недостаточно прав для выполнения команды `jc!kick`.")

@temprole.error
async def temprole_error(error, ctx):
    if isinstance(error, commands.MissingRequiredArgument):
        await ctx.send("Использование: jc!temprole <упоминание пользователя> <время до снятия роли> <роль>")
    elif isinstance(error, commands.BadArgument):
        await ctx.send("Неверные аргументы. Использование: jc!temprole <упоминание пользователя> <время до снятия роли> <роль>")
    elif isinstance(error, commands.MissingPermissions):
        await ctx.send("Недостаточно прав для выполнения команды `jc!temprole`.")

@info.error
async def info_error(error, ctx):
    if isinstance(error, commands.MissingRequiredArgument):
        await ctx.send("Использование: jc!info [упоминание]")
    elif isinstance(error, commands.BadArgument):
        await ctx.send("Неверный аргумент. Использование: jc!info [упоминание]")
    elif isinstance(error, commands.CommandOnCooldown):
        await ctx.send("Пожалуйста, подождите некоторое время перед повторным использованием этой команды.")

@ball.error
async def ball_error(error, ctx):
    if isinstance(error, commands.MissingRequiredArgument):
        await ctx.send("Использование: jc!ball <вопрос>")
    elif isinstance(error, commands.BadArgument):
        await ctx.send("Неверный аргумент. Использование: jc!ball <вопрос>")
    elif isinstance(error, commands.CommandOnCooldown):
        await ctx.send("Пожалуйста, подождите некоторое время перед повторным использованием этой команды.")
  • Вопрос задан
  • 22 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
fenrir1121
@fenrir1121
Начни с документации
Декоратор error, регистрирует корутину как локальный обработчик ошибок.
Аргументы локального обработчика должны соответствовать глобальному обработчику.
on_command_error(ctx, error)
Обратите внимание на порядок.

Кроме того у вас во всех обработчиках один и тот же текст, отличается только команда.
Напишите один глобальный обработчик в текст ошибок которого будет подставляться команда из ctx.
И переходите на слеши.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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