Нужно чтоб бот выводил id людей которые нажали на реакцию в консоль Discord.py

Есть фрагмент кода:

@bot.command()
async def start(ctx):
    mess = await channel.send('Набор участников.')
    await asyncio.sleep(10)
    mess = await ctx.channel.fetch_message(mess.id)
    if yes_react := discord.utils.get(mess.reactions):
        async for user in yes_react.users:
            print(str(user))

Нашел в одном из ответов на вопрос. Когда запускаю выдает ошибку:

discord.ext.commands.errors.CommandInvokeError: Command raised an exception: NameError: name 'channel' is not defined

Нужно чтоб бот отправлял сообщение и выводил id участников которые отреагировали, и потом писал им в личные сообщения.


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

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

Для того, что вы хотите реализовать, необходимо использовать базу данных, можно даже самую простую, через json

    @commands.Cog.listener()
    async def on_raw_reaction_add(self, payload):
        message_id = payload.message_id
        if message_id == message_id:
            guild_id = payload.guild_id
            guild = discord.utils.find(lambda g: g.id == guild_id, self.bot.guilds)

            if payload.emoji.id == emoji_id:
                role = discord.utils.get(guild.roles, id=emoji_id)

            if role is not None:                                                                 
                member = discord.utils.find(lambda m: m.id == payload.user_id, guild.members)     
                if member:                                                           
                    print(str(member))
→ Ссылка