【问题标题】:Discord PY Bot, Creating a list from reactions of a specific messageDiscord PY Bot,根据特定消息的反应创建列表
【发布时间】:2020-09-03 01:49:10
【问题描述】:

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

@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 的文档中遗漏了它,我深表歉意,如果是这样,我将无法找到它。 谢谢你:)

【问题讨论】:

    标签: python discord discord.py


    【解决方案1】:

    使用on_reaction_add 可以做到这一点。这当然取决于您的机器人的结构,但有一个列表,您可以将所有对消息做出反应的用户添加到该列表中。如果您还没有使用 cogs,我建议您使用 cogs,因为您有两个变量需要存储在 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-17
      • 1970-01-01
      • 1970-01-01
      • 2020-08-17
      • 2020-07-12
      • 2020-10-01
      • 2021-06-15
      相关资源
      最近更新 更多