Пытался сделать удаление сообщения при нажатии на реакцию

@Bot.command()
async def woof(ctx):
    embed = discord.Embed(color=0xebebeb)
    embed.set_image(url=nekos.img('woof'))
    msg = await ctx.send(embed = embed)
    await msg.add_reaction('❌')
@Bot.event
async def on_reaction_add(reaction):
    if reaction.emoji == "❌":
        await Bot.message.delete()

но код не работает


Ответы (1 шт):

Автор решения: Merka

Ваш подход почти верный, за исключением того, что для удаления сообщения, надо сначала получить само сообщение) Во первых вам нужно проверять эмодзи по имени - reaction.emoji.name

Дальше у Bot нету такого атрибута как message. Поэтому прежде чем продолжать, нам надо получить само сообщение. fetch_message нам в этом поможет

@Bot.event
async def on_raw_reaction_add(reaction):
    if reaction.emoji.name == "❌":
        msg = await Bot.get_channel(reaction.channel_id).fetch_message(reaction.message_id)
        await msg.delete()
→ Ссылка