我正在创建一个机器人,其中有一个命令可以对消息进行响应。我想知道如何创建所有单击特定反应的人员的列表。我不确定用于检索反应堆的变量。
@client.command(pass_context=True)
@has_permissions(administrator=True)
async def reaction(ctx):
msg = await ctx.send("**React '✅' to this message to sign up!**")
reactions = ['✅']
for emoji in reactions:
await msg.add_reaction(emoji)
这是反应消息的代码。不和谐有可能列出做出反应的人员吗?如果是这样,将如何做? 抱歉,如果我在discord.py的文档中错过了它,那么我将找不到它。 谢谢:)
答案 0 :(得分:0)
使用on_reaction_add
将执行此操作。当然,这取决于您的漫游器的结构,但是有一个列表,您可以在其中添加对消息做出反应的所有用户。如果尚未使用齿轮,我建议您使用齿轮,因为您有两个需要存储在reaction
函数外部的变量some_list
和msg
。您可以使用全局变量,但我建议您不要这样做。
下面是代码外观的一般概述,请注意,仅粘贴代码可能无法正常工作。
some_list = []
msg = None
@client.command(pass_context=True)
@has_permissions(administrator=True)
async def reaction(ctx):
msg = await ctx.send("**React '✅' to this message to sign up!**")
reactions = ['✅']
for emoji in reactions:
await msg.add_reaction(emoji)
@client.event
async def on_reaction_add(reaction, user):
if reaction.message == msg:
some_list.append(user)