client.users
is all of the User objects that have been cached at any point, mapped by their IDs.
I don't think there is a single method or property to get the total number of members of every server the bot is in. You could probably iterate over the guilds
the client is currently handling and fetch the members instead.
The following should work:
async function getTotalNumberOfMembers(client) {
const guilds = client.guilds.cache;
let numberOfMembers = 0;
// resolves once members from every guild is fetched
await Promise.all(
guilds.map(async (guild) => {
const members = await guild.members.fetch();
numberOfMembers += members.size;
}),
);
return numberOfMembers;
}
// ...
const total = await getTotalNumberOfMembers(client);
console.log(total);
Edit: Yes, you can also use the .memberCount
property:
function getTotalNumberOfMembers(client) {
const guilds = client.guilds.cache;
let numberOfMembers = 0;
guilds.each((guild) => {
numberOfMembers += guild.memberCount;
});
return numberOfMembers;
}
const total = getTotalNumberOfMembers(client);