← Все вопросы
Discord-бот запустился, on_ready сработал, а на сообщения не реагирует. Почему?
11
Бот заходит онлайн, on_ready печатает что всё ок. Но on_message будто не вызывается — пишу команду в чат, бот молчит. Кода вроде по гайду.
@client.event
async def on_message(message):
if message.content == '!привет':
await message.channel.send('Привет!')
2 ответа
14
✓ Принятый ответ — помог автору
Скорее всего у бота отключён Message Content Intent — самая частая засада у новичков. Без него message.content приходит пустым, и твоё условие == '!привет' никогда не срабатывает.
Чинится в два шага:
- В Developer Portal → Bot → пролистай до Privileged Gateway Intents → включи MESSAGE CONTENT INTENT.
- В коде явно включи его:
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
Перезапусти бота. Теперь message.content будет содержать текст, и команда заработает.
3
Ещё проверь, что в on_message ты не блокируешь свои же сообщения слишком рано и не забыл await. Но в 90% случаев это именно Message Content Intent.
Ваш ответ
Войдите, чтобы ответить на вопрос.