Discord PY Bot,根据特定消息的响应创建列表

时间:2020-05-17 09:32:36

标签: python discord discord.py

我正在创建一个机器人,其中有一个命令可以对消息进行响应。我想知道如何创建所有单击特定反应的人员的列表。我不确定用于检索反应堆的变量。

@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的文档中错过了它,那么我将找不到它。 谢谢:)

1 个答案:

答案 0 :(得分:0)

使用on_reaction_add将执行此操作。当然,这取决于您的漫游器的结构,但是有一个列表,您可以在其中添加对消息做出反应的所有用户。如果尚未使用齿轮,我建议您使用齿轮,因为您有两个需要存储在reaction函数外部的变量some_listmsg。您可以使用全局变量,但我建议您不要这样做。

下面是代码外观的一般概述,请注意,仅粘贴代码可能无法正常工作。

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)