Example Usage
The below is a simplistic implementation of how to use this package in your next discord bot.
1import os
2
3import discord
4from discord.ext import commands
5from levelling import Level, LevelUpPayload
6
7
8class Bot(commands.Bot):
9 def __init__(self, *args, **kwargs):
10 super().__init__(*args, **kwargs)
11
12 self.level = Level(self)
13
14 async def on_ready(self):
15 print(f"-----\nLogged in as: {self.user.name} : {self.user.id}\n-----")
16
17 async def on_message(self, message):
18 leveled_up = await self.level.propagate(message)
19 if leveled_up:
20 await self.on_level_up(leveled_up)
21
22 await self.process_commands(message)
23
24 async def on_level_up(self, payload: LevelUpPayload):
25 # This is triggered when a Member levels up
26 member = payload.guild.get_member(payload.member.id)
27 embed = discord.Embed(
28 title=f"`{member.display_name}` has leveled up to level `{payload.level}`!"
29 )
30 await payload.channel.send(embed=embed)
31
32
33if __name__ == "__main__":
34 token = os.getenv("TOKEN")
35 Bot(command_prefix="!", intents=discord.Intents.all()).run(token)