it-swarm.com.de

Wie erstelle ich mit discord.py eine Liste aller Mitglieder eines Discord-Servers?

Hallo Leute, ich schreibe einen Zwietracht-Bot und bin auf diesen Fehler gestoßen, als ich versuchte, alle Mitglieder von einem Server mit dem Befehl! Mitglieder im Ereignis on_message abzurufen:

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

Ich möchte, dass mit diesem Befehl alle Member abgerufen und in der Konsole gedruckt werden. Ich erhalte jedoch die Fehlermeldung TypeError: 'property' -Objekt ist nicht wiederholbar

wenn ich den Befehl in den Zwietrachtkanal eingebe. Könnte mir jemand helfen, eine Liste aller Mitglieder in dem Kanal zu erstellen, die ich zur weiteren Verwendung haben kann?

2
Dragomir Aki

Sie benötigen eine Instanz eines Servers, um die Mitgliederliste daraus abzurufen.

Wenn dieser Code in on_message(message) angezeigt wird, sollten Sie Ihren Code ändern können

x = server.Server.members

zu

x = message.server.members

Beachten Sie, dass bei Verwendung von Server mit einem großen S die Klassendefinition zurückgegeben wird, während bei Verwendung der server-Eigenschaft (Kleinbuchstaben s) der Nachricht eine Instanz von Server abgerufen wird.

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

Ich denke, Sie können es tun, damit der Code kürzer ist

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