add MessageCreate LVL

This commit is contained in:
arthur
2024-05-29 16:11:12 +02:00
parent b7bed65d9e
commit f55eeac624
2 changed files with 40 additions and 95 deletions
-48
View File
@@ -1,48 +0,0 @@
const { Events } = require('discord.js');
const db = require('../fonctions/database.js');
const embedColor = require('../fonctions/embedColor.js');
module.exports = {
name: Events.InteractionCreate,
async execute(client, interaction) {
if (interaction.customId === "lvl_Recomp_Rep") {
const lvl = interaction.message.embeds[0].fields[0].value
const serv = interaction.message.embeds[0].fields[1].value
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [serv, member.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
db.run(`UPDATE users SET reputation = reputation + ? WHERE guildId = ? AND userId = ?`, [lvl, serv, message.author.id]);
const embedClaim = new EmbedBuilder()
.setTitle('Recompense du niveau ' + lvl + ':')
.setDescription('La recompense du niveau ' + lvl + 'était de ' + lvl + 'reputation, ou bien de ' + lvl * 500 + 'coins\n\nVous avez choisi les reputations, vous avez donc `' + user.reputation + '` reputation !')
.setColor(await embedColor(message.author.id, serv))
.setTimestamp()
.setFooter({ text: `La recompense à été reçu sur le serveur ${serv.name}` })
interaction.edit({ embeds: [embedClaim], components: [] })
}
if (interaction.customId === "lvl_Recomp_Coins") {
const lvl = interaction.message.embeds[0].fields[0].value
const serv = interaction.message.embeds[0].fields[1].value
db.run(`UPDATE users SET pocket = pocket + ? WHERE guildId = ? AND userId = ?`, [lvl * 500, serv, message.author.id]);
const embedClaim = new EmbedBuilder()
.setTitle('Recompense du niveau ' + lvl + ':')
.setDescription('La recompense du niveau ' + lvl + 'était de ' + lvl + 'reputation, ou bien de ' + lvl * 500 + 'coins\n\nVous avez choisi les coins, vous avez donc `' + lvl * 500 + '` coins en plus !')
.setColor(await embedColor(message.author.id, serv))
.setTimestamp()
.setFooter({ text: `La recompense à été reçu sur le serveur ${serv.name}` })
interaction.edit({ embeds: [embedClaim], components: [] })
}
}
}
+40 -47
View File
@@ -1,53 +1,46 @@
const { Message, Events, ActionRowBuilder, ActionRow, ButtonBuilder, ButtonStyle, EmbedBuilder } = require("discord.js");
const db = require('../fonctions/database.js');
const embedColor = require('../fonctions/embedColor.js');
const db = require("../fonctions/database.js");
const embedColor = require("../fonctions/embedColor.js");
module.exports = {
name: Events.MessageCreate,
async execute(message, client) {
if (message.author.bot) return;
name: Events.MessageCreate,
if (message.content.length < 50) {
db.run(`UPDATE users SET xp = xp + 1 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]);
}
if (message.content.length >= 50) {
db.run(`UPDATE users SET xp = xp + 3 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]);
}
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.xp >= 100 * user.lvl) {
db.run(`UPDATE users SET xp = 0, lvl = lvl + 1 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]);
const embedlvl = new EmbedBuilder()
.setTitle('Nouveau niveau !')
.setDescription('Vous avez passé(e) un niveau sur ' + message.guild.name + ' !!\n\nVeuillez choisir une recompense :')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.addFields({ name: 'Le niveau passé :', value: `${user.lvl}`, inline: true })
.addFields({ name: 'Serveur id :', value: `${message.guild.id}`, inline: true})
.setFooter({ text: `Merci d'être actif/ve`, iconURL: message.author.displayAvatarURL() })
const btn1 = new ButtonBuilder()
.setCustomId('lvl_Recomp_Rep')
.setLabel(user.lvl + 'reputation')
.setStyle(ButtonStyle.Primary);
const btn2 = new ButtonBuilder()
.setCustomId('lvl_Recomp_Coins')
.setLabel(user.lvl * 500 + 'coins')
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(btn1)
.addComponents(btn2)
message.author.send({ embeds: [embedlvl], components: [row] })
}
if (message.content.length < 50) {
db.run(`UPDATE users SET xp = xp + 1 WHERE guildId = ? AND userId = ?`, [
message.guild.id,
message.author.id,
]);
}
};
if (message.content.length >= 50) {
db.run(`UPDATE users SET xp = xp + 3 WHERE guildId = ? AND userId = ?`, [
message.guild.id,
message.author.id,
]);
}
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.xp >= 100 * user.lvl) {
db.run(
`UPDATE users SET xp = 0, lvl = lvl + 1, pocket = pocket + ?, reputation = reputation + ? WHERE guildId = ? AND userId = ?`,
[user.lvl + 1, 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 \`${(Math.ceil((user.lvl + 1) / 5)) * 500}\` 🪙 et \`${Math.ceil((user.lvl + 1) / 5)}\` 🔺 !`)
.setColor(await embedColor(message.author.id, message.guild.id));
message.author.send({ embeds: [embedlvl] });
}
},
};