@oskarkarpinski/discord-xp
v1.0.1
Published
A lightweight and easy to use leveling framework for discord bots, uses MongoDB.
Downloads
2
Readme
Discord-XP
Download & Update
You can download it from npm:
npm i @oskarkarpinski/discord-xp
You can update to a newer version a receive updates using npm:
npm update @oskarkarpinski/discord-xp
Setting Up
Frist things first, we inclide the module into the project,
JavaScript
const XP = require('@oskarkarpinski/discord-xp')
ES
import XP from '@oskarkarpinski/discord-xp'
After that, you need to provide a valid mongo database url, and set it. You can do so by:
XP.setURL('mongodb://...')
Examples
- Append XP to user on send message
client.on('message', async (msg) => {
if (!msg.guld) return
if (msg.author.bot) return
const randomXP = Math.floor(Math.random() * 29) + 1 // Min 1, Max 30
const hasLeveledUp = await XP.appendXP(msg.author.id, msg.guild.id, randomXP)
if (hasLeveledUp) {
const user = await XP.fetch(msg.author.id, msg.guild.id)
msg.channel.send(`${msg.author.tag}, congratulations! You have leveled up to ${user.lvl}.`)
}
})
- Rank Command
const target - msg.mention.users.frist() || msg.author
const attachment = await XP.rankImage(target.id, msg.guild.id)
if (!attachment) return msg.channel.send('Seems like this user has not earned any xp so far.')
msg.channel.send(attachment)
- Leaderboard Command
const leaderboard = await XP.computeLeaderboard(client)
const lb = leaderboard.map(e => `${e.pos}. ${e.tag}\nLevel: ${e.lvl}\nXP: ${e.xp.toLocaleString()}`)
msg.channel.send(lb.join('\n\n'))