MrMetacom
MrMetacom

Reputation: 132

Refreshing Member Count - Discord.py

I'm trying to create a refreshing role member count. This code works, but it only updates the member count when I restart the bot instead of every 5 seconds.

@tasks.loop(seconds=5)
async def member_count_refresh():
    guild = client.get_guild(593941391110045697)
    member_count = guild.member_count
    channel = client.get_channel(700895165665247325)
    embedvar = discord.Embed(title=f"Total member count: {member_count}", color=0x00ff00)
    msg = await channel.fetch_message(770472133281316914)
    await msg.edit(embed=embedvar)


@client.event
async def on_ready():
    member_count_refresh.start()

Upvotes: 1

Views: 592

Answers (1)

MrMetacom
MrMetacom

Reputation: 132

I figured out a different way to do it utilizing the on_member_join() and on_member_remove() functions. Here is my example of a working active member counter: (Considering you've already sent an embed message)

@client.event
async def on_member_remove(member):
    guild_id = member.guild.id
    guild = client.get_guild(guild_id)
    member_count = guild.member_count
    channel = client.get_channel(1234567890)
    embedvar = discord.Embed(title=f"Total member count: {member_count}", color=0x00ff00)
    if guild_id == 1234567890:
        msg = await channel.fetch_message(770472133281316914)
        await msg.edit(embed=embedvar)

Upvotes: 2

Related Questions