#python #discord.py #discord.py-rewrite
#python #discord.py
Вопрос:
Я кодирую бота discord и создаю игру. Мне нужно, чтобы пользователь, который отреагировал на сообщение с определенным смайликом, был добавлен в список. Как я могу это сделать?
(мой код ниже)
@client.command(aliases=['rr'])
async def roletarussa(ctx):
embed = discord.Embed(title="ROLETA RUSSA", description="Reaja com ✅ para participar!")
embed.set_thumbnail(
url="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRa7rdwxpSOiReyDvnVd6MzqDg33rtQrxhoUwamp;usqp=CAU")
embed.add_field(name="Só os brabo consegue entrar nesse web desafio 🔫🤠",
value="Vai logo entra nesse bagaça medroso!", inline=False)
embed.set_image(url='https://media1.tenor.com/images/64e0334d77b0976b808147bd160b8534/tenor.gif?itemid=12379724')
message = await ctx.send(embed=embed)
await message.add_reaction("✅")
def check(reaction, user):
return user == ctx.author and str(reaction.emoji) in ['✅']
while True:
try:
reaction, user = await client.wait_for("reaction_add", timeout=60, check=check)
if str(reaction.emoji) == "✅":
await ctx.send('{} vai participar'.format(user))
await message.remove_reaction(reaction, user)
else:
await message.remove_reaction(reaction, user)
except asyncio.TimeoutError:
await message.delete()
break
# ending the loop if user doesn't react after x seconds
@client.command()
async def startrr(ctx):
players = []
maxlenght = 6
while len(players) < maxlenght:
rrp = ctx.message.author.mention
players.append(rrp)
players = list(set(players))
else:
await ctx.send('Sem mais vagas para o jogo.')
await ctx.send(players)
Мне нужно узнать, кто отреагировал на сообщение и сохранить в списке «игроки».
Комментарии:
1. Используйте
await reaction.users()
илиawait reaction.users().flatten()
, чтобы получить список. discordpy.readthedocs.io/en/latest /…2. Поскольку у вас есть две переменные,
reaction
иuser
где говоритсяreaction, user = await client.wait_for...
, что у вас уже есть пользователь, просто выведите пользовательскую переменную, чтобы получить пользователя, который отреагировал. используйтеreaction.users
вместо этого, если вы хотите знать всех людей, которые отреагировали, вместо того, чтобы получать того, кто отреагировал в то время