当多个用户做出反应时,需要帮助获取不和谐.py机器人来编辑消息



我正在尝试制作一个用于在discord中托管事件的命令。我试图让它工作的方式是,当任何用户对消息的预先发送的反应做出反应时;输入";被编辑为添加任何作出反应的用户的用户名。我让机器人等待反应,它有效地编辑了一条嵌入的消息来添加一个字段。问题是,我需要它接受多个用户的反应(多个用户(,并每次更新字段,以便它显示嵌入字段中的所有反应者。我现在拥有的代码适用于第一个用户,但在那之后就不再适用了。

这是我到目前为止的代码:

# Event creation command
@bot.command()
async def eventcreate(ctx, arg1, arg2):
eventembed = discord.Embed(
title= ":partying_face: GIVEAWAY!!! :partying_face:",
color=7419530
)
eventembed.add_field(
name= "Event",
value=arg1,
inline=False
)
eventembed.add_field(
name= "Prize",
value=arg2,
inline=False
)
message = await ctx.send(embed=eventembed)
await message.add_reaction('🥳')
def check (reaction, user):
return str(reaction.emoji) == '🥳' and user != bot.user
while True:
try:
reaction, user = await bot.wait_for('reaction_add', timeout=604800, check=check)
if str(reaction.emoji) == '🥳':
reacted = user.name
eventembed.add_field(
name= "Entered:",
value= f"```{reacted}```",
inline=False
)
await message.edit(embed=eventembed)
await message.remove_reaction(reaction, user)
except asyncio.TimeoutError:
await message.remove_reaction('🥳')

如有任何帮助,我们将不胜感激。提前感谢!!

这是因为await bot.wait_for只等待1个事件。你需要把它放在一个循环中。

最新更新