如何获取对discord.py中的反应做出反应的人的ID

Posted

技术标签:

【中文标题】如何获取对discord.py中的反应做出反应的人的ID【英文标题】:how to get id of people who reacted to a reaction in discord.py 【发布时间】:2021-12-31 01:28:03 【问题描述】:

我正在使用此代码来获取对反应做出反应的人的列表

    new_msg = await channel.fetch_message(id)
    users = await new_msg.reactions[0].users().flatten()
    users.pop(users.index(client.user))
    if ctx.author in users:
      users.pop(users.index(ctx.author))

但我希望它返回对它做出反应的人的 ID,所以之后我可以使用这样的命令

user =  bot.get_user(userId)
await ctx.send(user.created_at)

并找出有多少用户的帐户超过 n 天

【问题讨论】:

【参考方案1】:

ID是根据discord-py Documentation在用户对象中的一个字段。

因此,您只需执行 [user.id for user in users] 即可获取 ID 列表。 但既然你无论如何都想要用户对象,你可以

for user in users:
    await ctx.send(user.created_at)

【讨论】:

并且有什么方法可以找出用户帐户“以天为单位”的年龄,基本上我在这里做的是,要求作者在命令中添加一个要求'将指定帐户的年龄应该对这条消息做出反应,我可以获得创建帐户的日期,但我无法弄清楚如何在几天内获得该日期 user.created_at 返回一个 datetime.datetime 对象。所以你可以先timespan = datetime.now() - created_at 然后timespan.days

以上是关于如何获取对discord.py中的反应做出反应的人的ID的主要内容,如果未能解决你的问题,请参考以下文章

Discord.py 反应角色和 DMing 反应堆

Discord.py 帮助命令(对编辑消息做出反应)

对表情符号 discord.py 做出反应时添加角色

当用户对 2 个反应做出反应时,机器人不会读取第二个反应.. discord.py

如何在调用函数时使用 discord.py 添加反应?

discord.py :: 我怎样才能让我的机器人对它自己的消息做出反应?