async def xp(self, ctx): s = stats.getAllRows() boardTop = [] for i, user in enumerate(sorted(s, key=lambda x: x[12], reverse=True)): if int(user[12]) == 0: break name = self.utilsCog.getDisplayName(ctx, user[0]) if int(user[0]) == int(ctx.author.id): boardTop.append("**{} (Level {:,} | {:,} XP)**".format(name, xp.calculate_level(round(int(user[12]))), round(int(user[12])))) else: boardTop.append("{} (Level {:,} | {:,} XP)".format(name, xp.calculate_level(round(int(user[12]))), round(int(user[12])))) await self.startPaginated(ctx, boardTop, "XP Leaderboard")
async def xp(self, ctx, user: discord.Member = None): if user is not None and str(ctx.author.id) != constants.myId: return await ctx.send("Je hebt geen toegang tot dit commando.") target = user if user is not None else ctx.author target_stats = stats.getOrAddUser(target.id) embed = discord.Embed(colour=discord.Colour.blue()) embed.set_author(name=target.display_name, icon_url=target.avatar_url) embed.add_field(name="Aantal Berichten", value="{}".format(int(target_stats[11]))) embed.add_field(name="Level", value=str(xp.calculate_level(target_stats[12]))) embed.add_field(name="XP", value="{:,}".format(int(target_stats[12]))) embed.set_footer(text="*Sinds Didier 2.0 Launch") await ctx.send(embed=embed)
def gainXp(user, user_db): update(user, "xp", user_db[12] + random.randint(5, 15) + (xp.calculate_level(user_db[12]) * 3)) update(user, "last_message", round(time.time()))