Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import discord, sqlite3
- from discord.ext import commands
- from .local import Database
- from random import randint as gain
- class Leveling:
- def __init__(self, bot):
- self.bot = bot
- def level_embed(self, user: discord.Member, results):
- embed=discord.Embed()
- embed.add_field(name=f'Search Results for **{user.name}#{user.discriminator}**', value=f'We found the following information on {user.mention}: \n\nLeaderboard Ranking: {results[0]} \nLevel: {results[1]} \nTotal XP: {results[2]}')
- return embed.set_footer(text='Provided by: SimplySavant via SavantBot')
- def leaderboard_embed(self):
- embed=discord.Embed()
- embed.add_field(name='Server Leaderboard', value='Make sure to give a MASSIVE Congratulations to these people for making into the Top 10!')
- return embed.set_footer(text='Provided by: SimplySavant via SavantBot')
- async def on_message(self, message):
- if message.guild is not None:
- exp = gain(5, 25)
- Database.addXP(str(message.guild.id), str(message.author.id), exp)
- @commands.command(description='Command to Check Individual Progression')
- async def check(self, ctx, user: discord.Member=None):
- if not user:
- user = ctx.message.author
- results = Database.userXP(str(ctx.guild.id), str(user.id))
- await ctx.send(embed=self.level_embed(user, results))
- @commands.command(description='Command to Check Top 10 Members of A Guild')
- async def top(self, ctx):
- results = Database.leaderboard(str(ctx.guild.id))
- leaderboard = ''
- counter = 1
- for id in results.keys():
- if counter == 1:
- leaderboard += f'{counter}. {self.bot.get_user(id).mention} - Level: {results[id][0]} ({results[id][1] XP}) 👑 \n'
- counter += 1
- else:
- leaderboard += f'{counter}. {self.bot.get_user(id).mention} - Level: {results[id][0]} ({results[id][1] XP}) \n'
- counter += 1
- e = self.leaderboard_embed()
- e.add_field(name='', value=leaderboard)
- await ctx.send(embed=e)
- def setup(bot):
- bot.add_cog(Leveling(bot))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement