web-dev-qa-db-fra.com

Comment créer une liste de tous les membres d'un serveur discord à l'aide de discord.py?

Salut les gars, je suis en train d'écrire à un robot discord et je suis tombé sur cette erreur en essayant d'extraire tous les membres d'un serveur avec la commande! Members dans l'événement on_message

Elif message.content.startswith('!members'):
    x = server.Server.members
    for member in x:
        print(member)

Je veux que cette commande extrait tous les membres et les affiche dans la console, mais l'erreur suivante s'affiche: TypeError: l'objet 'property' n'est pas itérable

quand je tape la commande dans le canal discord. Quelqu'un pourrait-il m'aider à dresser une liste de tous les membres de la chaîne que je pourrais utiliser ultérieurement?

2
Dragomir Aki

Vous avez besoin d'une instance de serveur pour obtenir la liste des membres.

En supposant que ce code apparaisse dans on_message(message), vous devriez pouvoir changer votre

x = server.Server.members

à

x = message.server.members

Notez que l'utilisation de Server avec un S majuscule renvoie la définition de la classe, tandis que l'utilisation de la propriété server (minuscules) du message permet de récupérer une instance de Server.

2
Sam Rockett
Elif message.content.startswith('!members'):
    x = message.server.members
    for member in x:
        print(member.name) # you'll just print out Member objects your way.
1
JeydinNewWon

Je pense que vous pouvez le faire pour que le code soit plus court

Elif message.content.startswith('!members'):
    print(", ".join([member.name for member in message.server.members])) #You do the list with names of roles and print this without cycle
0
CroUsaP