Files
bot-discord-coins/events/messageCreateLVL.js
T
2024-07-08 21:21:38 +02:00

73 lines
2.4 KiB
JavaScript

const { Events, EmbedBuilder } = require("discord.js");
const db = require("../fonctions/database.js");
const embedColor = require("../fonctions/embedColor.js");
module.exports = {
name: Events.MessageCreate,
async execute(message, client) {
if (message.channel.type === "DM") return;
if (message.author.bot) return;
const user = await new Promise((resolve, reject) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
if (user.blacklist == 1) {
return;
}
//////////////////////////////////////////////////////////////////
/////////////////////////// xp systeme ///////////////////////////
//////////////////////////////////////////////////////////////////
if (message.content.length < 50) {
db.run(`UPDATE users SET xp = xp + 1 WHERE guildId = ? AND userId = ?`, [
message.guild.id,
message.author.id,
]);
} else if (message.content.length < 100) {
db.run(`UPDATE users SET xp = xp + 5 WHERE guildId = ? AND userId = ?`, [
message.guild.id,
message.author.id,
]);
} else {
db.run(`UPDATE users SET xp = xp + 10 WHERE guildId = ? AND userId = ?`, [
message.guild.id,
message.author.id,
]);
}
//////////////////////////////////////////////////////////////////
/////////////////////////// lvl systeme //////////////////////////
//////////////////////////////////////////////////////////////////
if (user.xp >= 100 * user.lvl) {
db.run(
`UPDATE users SET xp = xp - ?, lvl = lvl + 1, pocket = pocket + ?, reputation = reputation + ? WHERE guildId = ? AND userId = ?`,
[
100 * user.lvl,
(user.lvl + 1) * 250,
Math.ceil((user.lvl + 1) / 5),
message.guild.id,
message.author.id,
],
);
const embedlvl = new EmbedBuilder()
.setTitle("Nouveau niveau !")
.setDescription(
`Bravo ${message.author}, tu es passé niveau ${user.lvl + 1} sur le serveur \`${message.guild.name}\` !\nTu as reçu \`${(user.lvl + 1) * 250}\` 🪙 et \`${Math.ceil((user.lvl + 1) / 5)}\` 🔺 !`,
)
.setColor(await embedColor(message.author.id, message.guild.id));
message.author.send({ embeds: [embedlvl] });
}
},
};