Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I make a list of all members in a discord server using discord.py?

I am writing a discord bot and I came across this error when trying to pull all the members from a server with the command !members in on_message event:

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

I want this command to pull all members and print them out in the console but I get the error

TypeError: 'property' object is not iterable

when I type the command in the discord channel. Could anyone help me make a list of all members in the channel that I can have for further use?

like image 788
Dragomir Aki Avatar asked Dec 09 '17 21:12

Dragomir Aki


People also ask

How do I see all members of a Discord server?

Find the server's name near the top of the screen. Tap the 3 dots next to the server's name. Scroll down to find “Members.” You'll see how many users are on the server right away.

Is discord.py easy?

discord.py is a modern, easy to use, feature-rich, and async ready API wrapper for Discord. Features: Modern Pythonic API using async / await syntax.


2 Answers

You need an instance of a server to get the members list from it.

Assuming this code appears in on_message(message), you should be able to change your

x = server.Server.members

to

x = message.server.members

Note that using Server with a capital S will return the class definition, whereas using the server property (lowercase s) from the message will retrieve an instance of Server.

If you're using a version >= 1.0.0, this will be

x = message.guild.members

instead.

like image 164
Sam Rockett Avatar answered Sep 17 '22 14:09

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.
like image 43
JeydinNewWon Avatar answered Sep 16 '22 14:09

JeydinNewWon