ElezthemDev, т.е. у тебя print() ничего не выводит? Значит, текст выводится самим discord.py, а твой print() не выполняется вообще. А это значит, у тебя on_command_error() просто не вызывается в нужный момент, и проблема именно в этом, а не в твоём коде внутри on_command_error().
Выясняй почему. Попробуй сделать минимального бота, у которого одна команда, которая всегда выбрасывает исключение, и прикрути к нему обработчик ошибок. Если заработает - ищи разницу со своим кодом. Если нет - надо будет копать дальше.
он пишет это в консоли
Command raised an exception: Forbidden: 403 Forbidden (error code: 50013): Missing Permissions
Я спрашиваю, этот текст выводится в результате выполнения строки print(error)?
Если эту строку закомментировать, он всё равно выводится, или перестаёт?
Это позволит ответить на важный вопрос: у тебя вообще управление передаётся внутрь on_command_error(), или нет?
qw1klyy, да, нужен. Но ему не место в обработчике команды. Кури asyncio.create_task().
На крайний случай, храни ссылку на полученный таск в глобальной переменной, и проверяй её содержимое при выполнении команды. Тогда ты сможешь понять, выполняется у тебя сейчас цикл или нет, и выполнить соответствующее действие (ну или не выполнять).
qw1klyy, угу, поддерживаю Everything_is_bad. Запускай цикл проверки непосредственно при старте бота, клади последний результат куда-то (в глобальную переменную, в БД или ещё куда), а по команде просто бери этот результат и выдавай пользователю.
Впрочем, в коде я не вижу, зачем тебе вообще цикл. Проверка баланса - разовое действие вроде.
С помощью получению номера на котором находится строка с e-mail он получает пароль блягодаря getline(из другого файла), но когда я ввожу верные данные он выводит ошибка.
А теперь ещё раз, медленно, и по-русски, пожалуйста.
Если быть точным, то не для выделения памяти, а для получения экземпляра объекта. Причем не обязательно через создание нового экземпляра того же класса.
Поясни на минутку, что ты понимаешь под пулом соединений?
Если это активные соединения, то их хранить вне процесса не имеет смысла, это же, в конечном итоге, обёртки над дескриптором сокета.
Если это неактивные соединения, то их не имеет смысла хранить вообще, они непригодны к использованию. Всё равно придётся создавать новые.
Pavel-Kosii, прописывать декораторы, используя один и тот же объект dp. И да, следить, чтобы они друг другу не мешали. Т.е. если у тебя в двух файлах есть обработчик на одну и ту же команду - работать будет только один.