Здравствуйте! Знаю что вы уже знаете ответ на вопрос. Но отвечу для тех кто будет это смотреть.
let db = require('quick.db') // для примера использую простой в использовании пакет БД "quick.db"
let discord = require('discord.js')
let client = new discord.Client()
client.on('message', async (message) => {
let uid = message.author.id
let sid = message.guild.id
let xp = db.get(`xp_${sid}_${uid}`)
let lvl = db.get(`lvl_${sid}_${uid}`)
if (xp == null){
db.set(`xp_${sid}_${uid}`, 0)
xp = 0
}
if (lvl == null){
db.set(`lvl_${sid}_${uid}`, 1)
lvl = 1
}
db.add(`xp_${sid}_${uid}`, 1)
if (xp >= (lvl * 10)){ // прибавляем уровень если очков опыта больше/равно чем уровней в 10 раз
db.add(`lvl_${sid}_${uid}`, 1) // добавляем 1 уровень
db.set(`xp_${sid}_${uid}`, 0) // сбрасываем очки опыта
message.channel.send(`${message.author}, ты поднял(-а) уровень!`)
}
})
Вот и получилась простая система уровня! А как выдавать роли есть в интернете
Конечно же можно использовать любую БД или даже файл JSON
Версия discord.js 12.5.3