2017-07-28 1 views
0

Encore une fois, je suis dans le codage bot Discord.Trouver un utilisateur par Discord Discrim via Python

Cette fois, j'essaie de trouver un moyen de trouver un utilisateur par Discrim. Obtenir l'utilisateur par son Discrim, permettrait facilement de faire d'autres choses, comme, trouver son ID, que par le temps de signification, l'image de profil, le nom ...

Selon discord.py, nous devons utiliser get_user_info (id_utilisateur). Mais trouver la carte d'identité de quelqu'un peut être difficile pour certains, alors si je pouvais obtenir l'ID par la discrimination et ensuite faire quoi que ce soit, ce serait beaucoup plus facile.

J'ai essayé procédez comme suit:

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

Vous obtenez le « DiscrimIguess », lorsque l'utilisateur tape la commande ainsi que la discrim.

De toute façon je peux le faire? Parce que ça ne marchera pas.

+0

Qui a dit qu'il était difficile d'obtenir l'identifiant d'un utilisateur? '\ @ user' et vous obtenez leur identifiant sous la forme' <@user_id> '. Si vous ne voulez pas faire cela, passez en mode développeur à partir de votre apparence 'settings> et lorsque vous faites un clic droit sur un utilisateur, vous obtenez son identifiant. En outre, si vous marquez un utilisateur et que vous l'imprimez sur votre console, il apparaît déjà sous la forme '<@user_id>' – Wright

+0

D'accord. J'ai essayé d'utiliser get_user_info, et j'ai fait ceci: 'OurUser = self.get_user_info (userId)' || Puis l'a fait envoyer un message avec le "OurUser" et il a dit que ne pouvait pas convertir en un simple str. – Norby

Répondre

1

Premièrement, vous ne devriez pas utiliser un discriminant pour trouver un utilisateur. Les ID sont uniques, les différences ne le sont pas.

Discrims sont donnés à chacun des membres pour déterminer qui est qui quand deux membres partagent le même nom (c.-à-essai # 0001 et essai # 0002 sont différentes personnes)

Quoi qu'il en soit, alors que vous ne pouvez pas trouver un seul utilisateur spécifique par discrims, vous pouvez trouver une liste de tous les utilisateurs qui partagent une discrim en utilisant Client.get_all_members

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

Si vous avez également un nom d'utilisateur, vous pouvez réduire cette liste à un seul membre, puis obtenir l'ID de cela.

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

Cette méthode ne fonctionne que pour trouver des membres qui partagent un serveur avec le robot. Pour trouver des utilisateurs qui ne partagent pas un serveur avec le bot, doit avoir déjà un ID pour `Client.get_user_info'