Нужно чтоб бот выводил 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))