← Все вопросы
Как ответить именно на сообщение пользователя (reply), а не просто написать в канал?
6
Бот пишет ответ в канал, но это просто новое сообщение. Хочу, чтобы он отвечал «цитатой» на конкретное сообщение человека, как кнопка «Ответить» в Discord. Как это сделать в discord.py?
1 ответ
10
✓ Принятый ответ — помог автору
Вместо channel.send(...) используй message.reply(...) — это даёт ту самую привязку-цитату к сообщению:
@bot.event
async def on_message(message):
if message.author == bot.user:
return
if message.content == '!пинг':
await message.reply('Понг!') # ответит цитатой
# await message.reply('Понг!', mention_author=False) # без пинга
await bot.process_commands(message)
mention_author=False отвечает цитатой, но не пингует автора.
Важный нюанс: если ты переопределил on_message, обязательно в конце вызови await bot.process_commands(message), иначе обычные команды (@bot.command()) перестанут работать.
Ваш ответ
, чтобы ответить на вопрос.