2017-07-28 90 views
0

再一次,我进入了Discord bot编码。通过Python找到Discord Discrim的用户

这一次,我试图通过Discrim找到一个用户。 通过它的Discrim获得用户,很容易做另一件事,比如,找到他的ID,通过含义时间,个人资料图片,姓名...

根据discord.py,我们需要使用get_user_info(USER_ID)。 但是找到某人的身份证可能对某些人来说很难,所以如果我能够通过判决来获得身份证,然后做任何事,那么会容易得多。

我试着做到以下几点:

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

你得到了“DiscrimIguess”,当用户键入命令加上discrim。

我能做到这一点吗?因为它不会工作。

+0

谁说让用户的ID很难? '\ @ user',你可以用'<@user_id>'的形式得到他们的id。如果你不想这样做,从你的'settings>外观'开启开发者模式,当你右键点击一个用户时,你可以得到他们的ID。此外,如果您标记用户并将其打印到您的控制台,它已经以'<@user_id>' – Wright

+0

的形式出现好了。我尝试过使用get_user_info,并且,我这样做了:'OurUser = self.get_user_info(userId)'||然后让它发送一条消息给“OurUser”,它表示不能转换为简单的str。 – Norby

回答

1

首先,您不应该使用判别法来查找用户。 ID是唯一的,歧视不是。

Discrims被赋予每个成员,以帮助确定谁是谁当两个成员共享相同的名称(即测试#0001和测试#0002是不同的人)

不管怎么说,虽然你不能找到一个特定的用户通过discrims,您可以通过使用Client.get_all_members

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

找到所有谁共享discrim的用户列表。如果你也有一个用户名,你可以缩小该列表到一个单一的成员,然后从得到的ID。

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

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

相关问题