Как ответом на сообщение, ответить ботом disnake/discord.py

Рейтинг: 1Ответов: 1Опубликовано: 19.05.2023

Задумка: Я хочу ответить пользователю командой, чтобы он ответил вместо меня на это особщение. Знаю могу просто указать ID сообщение и после на него ответить, но я хочу сделать, что ты отвечаешь и пишешь команду, а бот уже сам находит сообщение и отвечает на него. Знаю, я тупой т.к объяснить нормально не могу, но у меня есть скриншот по которому вы все пойметепервый скрин

второй скрин

Вместо ответа DanexExe использует /test Я хочу чтобы бот ответил на сообщение па путем упоминания этого сообщения

Ответы

▲ 0

введите сюда описание изображения

введите сюда описание изображения

Чтобы сделать всё так, как на вашем первом скриншоте, пришлось сделать не команду, а обработку события через встроенный метод on_message():

@bot.event
async def on_message(message: disnake.Message):
    if message.content.startswith('/response'):
        msg = await message.channel.fetch_message(message.reference.message_id)
        content = "Текст который отвечает на чьё-то сообщение!"
        if message.content != '/response':
            content = message.content[9:]
        await message.delete()
        await response_message(message=msg, content=content)  # Пользовательская команда
    else:
        await bot.process_commands(message=message)

async def response_message(message: disnake.Message, content: str):
    await message.reply(content)

Если ваше сообщение будет как на фото, то он подставит заранее готовый текст. В ином случае - просто продолжите печатать текст, и он поставит его вместо заготовленного. Надеюсь помог.