Discord ограничивает, как быстро бот может отправлять запросы. Обычный бот редко это замечает, но цикл, который редактирует много сообщений или массово ставит реакции, может упереться в лимит.
Как выглядит лимит запросов
Ваша библиотека выводит предупреждение вроде You are being rate limited или ошибку со статусом 429 Too Many Requests. Библиотеки вроде discord.js и discord.py сами ждут и повторяют попытку. Несколько предупреждений это нормально. Постоянный поток означает, что ваш код отправляет слишком много.
Как уложиться в лимиты
- Делайте работу один раз. Кешируйте результаты, а не спрашивайте Discord каждый раз, когда кто-то запускает команду.
- Не перебирайте в цикле много участников или каналов и не вызывайте API для каждого. Используйте массовые действия там, где они есть, например массовое удаление.
- Замедляйте сообщения, правки и реакции в циклах, добавляя между ними небольшую паузу.
- Откладывайте долгие команды. Отвечайте на слэш-команду в течение трёх секунд, затем присылайте продолжение: Частые ошибки Discord-ботов.
- Избегайте глобальных лимитов, не запуская несколько копий одного бота с одним токеном.
За что бота могут забанить
Это определяют правила Discord, а не наши. Частые причины:
- Массовые личные сообщения людям, которые их не просили.
- Спам, в том числе заход на много серверов ради рекламы.
- Селфботы: вход с токеном обычного аккаунта пользователя. Это запрещено в Discord и запрещено на наших серверах: Правила хостинга Discord-ботов и добросовестное использование.
- Утечка токена и его неправомерное использование кем-то: Как защитить токен вашего Discord-бота.
Если скорость бота уже ограничена
- Остановите сервер, прочитайте консоль, чтобы найти, какое действие выполняется в цикле, исправьте это и запустите снова.
- Если бот заблокирован надолго, причина обычно в коде, который агрессивно повторяет запросы. Добавьте паузу или лимит.
- Сбросьте токен, если думаете, что им воспользовался кто-то другой.





