List All Guilds With Multiple Servers On A Single Embed
This is my current code which shows the servers it is currently in. Which this does what I would like it to do, but it is not efficient and can be avoided instead of sending an emb
Solution 1:
Iterate every ten values of the list, here's an example:
>>> lst = list(range(1, 26))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ..., 25]
>>>
>>> for i inrange(0, len(lst), 10):
... print(lst[i:i + 10])
...
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
[21, 22, 23, 24, 25]
Here's applied to your code:
for i inrange(0, len(client.guilds), 10):
embed = discord.Embed(title='Guilds', colour=0x7289DA)
guilds = client.guilds[i:i + 10]
for guild in guilds:
embed.add_field(name=guild.name, value='whatever')
await ctx.send(embed=embed)
Solution 2:
I would say you should use a description in this case. You can hold all the information you want in the description about each guild. In the case below that I created, I go through every guild the bot is in and add the name and member count in the existing description_info
variable. It just keeps piling on until you reach the end of the list. Then, you can just use that one variable in your embed.
@client.command()@commands.is_owner()asyncdeflist_guilds(ctx):
servers = client.guilds
description_info = ""for guild in servers:
description_info += "**" + str(guild.name) + "**\n" + str(guild.member_count) + " members\n\n"# This will loop through each guild the bot is in and it the name and member count to a variable that holds everything
embed = discord.Embed(description = description_info, colour=0x7289DA) # Edit the embed line to include the description we created above
embed.set_footer(text=f"Guilds requested by {ctx.author}", icon_url=ctx.author.avatar_url)
await ctx.send(embed=embed)
Post a Comment for "List All Guilds With Multiple Servers On A Single Embed"