Reputation: 331
I am trying to make a command that displays how many users the bot is serving as of now. I have this so far but whenever I use the command it just says '1'. I would like to know if there is any alternative way to do this.
@client.command()
async def memberserved(ctx):
members_set = set()
for guild in client.guilds:
for member in guild.members:
members_set.add(member)
members = len(members_set)
membersserved = members
emb = discord.Embed(title="This bot is serving:",description=f"{membersserved} Members",color=discord.Color((0xffff00)))
await ctx.send(embed=emb)
Upvotes: 0
Views: 41
Reputation: 15689
Make sure intents.members
are enabled, if it still doesn't work you can try with the following:
members = []
for guild in bot.guilds:
members.extend(guild.members)
members_set = set(members)
members_served = len(members_set)
To enable the intents in your code:
intents = discord.Intents.default()
intents.members = True
bot = commands.Bot(command_prefix='', intents=intents)
Reference:
Upvotes: 1