vamep
@vamep
Бесполезный, не грамотный, discord.py разработчик.

Как сделать чтобы бот выдавал обратную связь если была ошибка со стороны пользователя, В чём была моя ошибка при коде?

Я не знаю почему не работает, я мало что знаю о discord.py я хотелось бы услышать обратную связь со стороны опытных разработчиков с правильным кодом.

@Client.event
async def on_command_error(error, ctx):
    if isinstance(error, commands.BadArgument):
        await ctx.send("Извените, но у вас нету разрещение или код сломан.")
    else:
        raise error
    if isinstance(error, commands.MissingRequiredArgument):
        await ctx.send("Извините, но вы вели не правильное число.")
    else:
        raise error
    if isinstance(error, commands.CommandNotFound):
        await Client.send_message(ctx.message.channel, "No such command")
    else:
        raise error
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
fenrir1121
@fenrir1121 Куратор тега discord.py
Начни с документации
Не стоит привязываться к ошибкам библиотеки. Создаете кастомную ошибку и вызываете в месте возникновения.
Сейчас вы привязываете к стандартным ошибкам текст, который в реальности не отражает проблему: скажем отсутствие разрешений это MissingPermissions или BotMissingPermissions. BadArgument это ошибка разбора аргументов.

Ну и не нужно дергать вызов ошибок в событии предназначенном для их обработки.
async def on_command_error(error, ctx):
    if isinstance(error, commands.BadArgument):
        await ctx.send("Запрос команды с ошибочным аргументом")
    elif isinstance(error, commands.CommandNotFound):
        await Client.send_message(ctx.message.channel, "Команда не найдена")
    ... # вставлять новые проверки сюда
    else:
        await Client.send_message(ctx.message.channel, "Неизвестная ошибка")
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
vamep
@vamep Автор вопроса
Бесполезный, не грамотный, discord.py разработчик.
Log:
Traceback (most recent call last):
File "C:\Users\Fps_M\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 441, in _run_event
await coro(*args, **kwargs)
File "c:\MainFrame\main.py", line 77, in on_command_error
raise error
TypeError: exceptions must derive from BaseException
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы