1.0.0 • Published 3 years ago

@oskarkarpinski/discord.js-xp v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

Discord-XP

Download

You can download it from npm:

npm i @oskarkarpinski/discord.js-xp

Setting Up

Frist things first, we inclide the module into the project,

JavaScript

const XP = require('@oskarkarpinski/discord.js-xp')```
### ES
```js
import XP from '@oskarkarpinski/discord.js-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'))