Hi I am creating a bot that makes points table/leaderboard , below is the code which works really nice.
def check(ctx):return lambda m: m.author == ctx.author and m.channel == ctx.channelasync def get_input_of_type(func, ctx):while True:try:msg = await bot.wait_for('message', check=check(ctx))return func(msg.content)except ValueError:continue@bot.command()
async def start(ctx):await ctx.send("How many total teams are there?")t = await get_input_of_type(int, ctx)embed = discord.Embed(title=f"__**{ctx.guild.name} Results:**__", color=0x03f8fc,timestamp= ctx.message.created_at)lst = []for i in range(t):await ctx.send(f"Enter team {i+1} name :")teamname = await get_input_of_type(str, ctx)await ctx.send("How many kills did they get?")firstnum = await get_input_of_type(int, ctx)await ctx.send("How much Position points did they score?")secondnum = await get_input_of_type(int, ctx)lst.append((teamname, firstnum, secondnum)) # append lstSorted = sorted(lst, key = lambda x: int(x[1]) + int(x[2],),reverse=True) # sort for teamname, firstnum, secondnum in lstSorted: # process embedembed.add_field(name=f'**{teamname}**', value=f'Kills: {firstnum}\nPosition Pt: {secondnum}\nTotal Pt: {firstnum+secondnum}',inline=True)await ctx.send(embed=embed)
The result looks something like this:
But I want to know, can I do something to get the result in tabular form like The Team Name , positions points , total pts, kill pts written in a row and the results printed below them (I really don't if that made you understand what I am trying to say.)
Below image will help you understand ,
So I want the result to be in following format. I can't think of a way doing it , if you can answer this please do so, That would be a very great help! Thanks.