mirror of
https://github.com/arthur-pbty/bot-discord-coins.git
synced 2026-06-12 15:55:44 +02:00
Add systeme de niveau ( &bal == &lvl )
This commit is contained in:
@@ -1,33 +1,35 @@
|
||||
const { EmbedBuilder } = require('discord.js');
|
||||
const db = require('../../fonctions/database.js');
|
||||
const embedColor = require('../../fonctions/embedColor.js');
|
||||
|
||||
module.exports = {
|
||||
aliases: ['coin', 'money', 'balance', 'bal', 'wallet', 'cash'],
|
||||
description: 'Affiche le solde d\'un compte.',
|
||||
emote: '💵',
|
||||
utilisation: '[@membre]',
|
||||
permission: 0,
|
||||
|
||||
async execute(message, args, client) {
|
||||
const member = message.mentions.members.first() || message.member;
|
||||
const user = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
const pocket = user.pocket
|
||||
const bank = user.bank
|
||||
const reputation = user.reputation
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setAuthor({ name: `Détails du Compte de ${member.user.tag}`, iconURL: member.user.displayAvatarURL() })
|
||||
.setDescription(`> :moneybag: **Poche:** \`${pocket}\`\n> :bank: **Banque:** \`${bank}\`\n> :star2: **Réputation:** \`${reputation}\``)
|
||||
.setColor(await embedColor(member.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
|
||||
|
||||
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
|
||||
},
|
||||
const { EmbedBuilder } = require('discord.js');
|
||||
const db = require('../../fonctions/database.js');
|
||||
const embedColor = require('../../fonctions/embedColor.js');
|
||||
|
||||
module.exports = {
|
||||
aliases: ['coin', 'coins', 'money', 'balance', 'bal', 'wallet', 'cash', 'lvl', 'level', 'niv', 'niveau'],
|
||||
description: 'Affiche le solde d\'un compte.',
|
||||
emote: '💵',
|
||||
utilisation: '[@membre]',
|
||||
permission: 0,
|
||||
|
||||
async execute(message, args, client) {
|
||||
const member = message.mentions.members.first() || message.member;
|
||||
const user = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
const pocket = user.pocket
|
||||
const bank = user.bank
|
||||
const reputation = user.reputation
|
||||
const niveau = user.lvl
|
||||
const xp = user.xp
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setAuthor({ name: `Détails du Compte de ${member.user.tag}`, iconURL: member.user.displayAvatarURL() })
|
||||
.setDescription(`> :moneybag: **Poche:** \`${pocket}\`\n> :bank: **Banque:** \`${bank}\`\n> :star2: **Réputation:** \`${reputation}\`\n\n> :bar_chart: **Niveau:** \`${niveau}\`\n> :thought_balloon: **xp:** \`${xp}\``)
|
||||
.setColor(await embedColor(member.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
|
||||
|
||||
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,49 @@
|
||||
const { Events } = require('discord.js');
|
||||
const db = require('../fonctions/database.js');
|
||||
|
||||
module.exports = {
|
||||
name: Events.InteractionCreate,
|
||||
async execute(client, interaction) {
|
||||
|
||||
if (!interaction.isButton()) return
|
||||
|
||||
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: [] })
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
const { Message, Events, ActionRowBuilder, ActionRow, ButtonBuilder, EmbedBuilder } = require("discord.js");
|
||||
const db = require('../fonctions/database.js');
|
||||
|
||||
module.exports = {
|
||||
name: Events.MessageCreate,
|
||||
async execute(message, client) {
|
||||
if (message.author.bot) return;
|
||||
|
||||
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 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] })
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -15,6 +15,8 @@ db.run(`CREATE TABLE IF NOT EXISTS users (
|
||||
pocket INTEGER DEFAULT 0,
|
||||
bank INTEGER DEFAULT 0,
|
||||
reputation INTEGER DEFAULT 0,
|
||||
lvl INTERGER DEFAULT 0,
|
||||
xp INTERGER DEFAULT 0,
|
||||
buyer BOOLEAN DEFAULT FALSE,
|
||||
owner BOOLEAN DEFAULT FALSE,
|
||||
whitelist BOOLEAN DEFAULT FALSE,
|
||||
|
||||
Reference in New Issue
Block a user