web-dev-qa-db-ja.com

discord.pyを使用して、discordサーバーのすべてのメンバーのリストを作成するにはどうすればよいですか?

こんにちは私は不和なボットを書いていて、コマンド!members in on_message eventでサーバーからすべてのメンバーをプルしようとしたときにこのエラーに遭遇しました:

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

このコマンドですべてのメンバーをプルしてコンソールに出力したいのですが、TypeError: 'property'オブジェクトは反復可能ではありません

不協和音チャネルにコマンドを入力すると、誰かがチャンネルのすべてのメンバーのリストを作成するのを手伝ってくれませんか?

3
Dragomir Aki

サーバーからメンバーリストを取得するには、サーバーのインスタンスが必要です。

このコードがon_message(message)にあると仮定すると、

x = server.Server.members

x = message.server.members

大文字のSでServerを使用すると、クラス定義が返されますが、メッセージからserverプロパティ(小文字のs)を使用すると、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

コードを短くすることができると思います

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