Reputation: 132
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
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