diff --git a/src/listeners/xp.ts b/src/listeners/xp.ts index e84e406..8783405 100644 --- a/src/listeners/xp.ts +++ b/src/listeners/xp.ts @@ -46,6 +46,12 @@ export class XpListener extends Listener { const xp = randint(15, 25); - await addXp(user.id, xp); + const level = await addXp(user.id, xp); + + // Emits that a user has leveled up + if (level !== null) { + this.container.logger.info('User is levelling up!'); + this.container.client.emit('xpLevelUp', message.member, level); + } } } diff --git a/src/utils/database/fun/xp.ts b/src/utils/database/fun/xp.ts index 45fcf0e..4d5fc16 100644 --- a/src/utils/database/fun/xp.ts +++ b/src/utils/database/fun/xp.ts @@ -36,7 +36,7 @@ export async function addXp(userId: Snowflake, xp: number) { } } - await container.database.xp.upsert({ + const info = await container.database.xp.upsert({ where: { userId, }, @@ -63,6 +63,12 @@ export async function addXp(userId: Snowflake, xp: number) { xpForNextLevel: xp, }, }); + + if (level === 1) { + return info.level; + } else { + return null; + } } export async function checkCanAddXp(userId: Snowflake) {