【问题标题】:Finding a user by Discord Discrim via PythonDiscord Discrim 通过 Python 查找用户
【发布时间】:2018-01-04 23:51:40
【问题描述】:

再一次,我喜欢 Discord 机器人编码。

这一次,我试图通过它的 Discrim 找到用户。 通过它的鉴别来获取用户,将很容易允许做其他事情,比如找到他的 ID,即时间、个人资料图片、姓名......

根据discord.py,我们需要使用get_user_info(user_id)。 但是对于某些人来说,找到某人的 ID 可能会很困难,所以如果我可以通过歧视获得 ID 然后做任何事情,会容易得多。

我尝试执行以下操作:

DefaultUser = discord.User
hi = DiscrimIguess[0]
hi2 = discord.User.discriminator.hi

当用户键入命令和判别时,您会得到“DiscrimIguess”。

有什么办法可以做到这一点?因为它不起作用。

【问题讨论】:

  • 谁说获取用户ID很难? \@user 并且您以 <@user_id> 的形式获得他们的 ID。如果您不想这样做,请从您的settings > appearance 切换到开发人员模式,当您右键单击用户时,您会获得他们的 ID。此外,如果您标记用户并将其打印到控制台,它已经以<@user_id> 的形式出现
  • 好的。我已经尝试使用该 get_user_info,并且我这样做了:OurUser= self.get_user_info(userId) ||然后让它用“OurUser”发送一条消息,它说不能转换为简单的str。

标签: python discord discord.py


【解决方案1】:

首先,您不应该使用区分来查找用户。ID 是唯一的,区分不是。

当两个成员同名时(即 test#0001 和 test#0002 是不同的人),每个成员都会得到区分以帮助确定谁是谁

无论如何,虽然您无法通过歧视找到单个特定用户,但您可以使用Client.get_all_members 找到共享一个歧视的所有用户的列表

p = client.get_all_members()
found_members = filter(lambda m: m.discriminator==DiscrimIguess[0], p)

如果您还有用户名,则可以将该列表缩小到单个成员,然后从中获取 ID。

member = discord.utils.get(found_members, name=username)
id = member.id

此方法仅适用于查找与机器人共享服务器的成员。要查找不与机器人共享服务器的用户,您必须已有`Client.get_user_info'的ID

【讨论】:

    猜你喜欢
    • 2018-09-25
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    • 2022-01-14
    • 2012-04-07
    • 1970-01-01
    • 2020-08-08
    • 2019-10-25
    相关资源
    最近更新 更多