diff --git a/a_test.txt b/a_test.txt index ca694ec..3199e58 100644 --- a/a_test.txt +++ b/a_test.txt @@ -6,10 +6,9 @@ &awh &blacklistAdd &blacklistRemove -&servers -&sell +?? = &sell &drop -&box +?? = &box &juge &tcadenas &tleave @@ -18,5 +17,4 @@ &tdemote &tpromote &tedit -&tkick -&towner \ No newline at end of file +&tkick \ No newline at end of file diff --git a/commands/casino/me.js b/commands/casino/me.js index 1d39832..e97f67a 100644 --- a/commands/casino/me.js +++ b/commands/casino/me.js @@ -17,12 +17,12 @@ module.exports = { resolve(row); }); }); - const pocket = user.pocket - const bank = user.bank + const pocket = Math.round(user.pocket) + const bank = Math.round(user.bank) const reputation = user.reputation const niveau = user.lvl const xp = user.xp - const tdrop = user.tdroper + const tdrop = Math.round(user.tdroper) let anti_rob = `` if (user.antiRob + 7200000 > Date.now()) { diff --git a/commands/casino/top.js b/commands/casino/top.js index 23fee6b..ef690c1 100644 --- a/commands/casino/top.js +++ b/commands/casino/top.js @@ -3,10 +3,10 @@ const db = require('../../fonctions/database.js'); const embedColor = require('../../fonctions/embedColor.js'); module.exports = { - aliases: ['leaderboard', 'lb'], - description: 'Affiche le top 10 des membres du serveur.', + aliases: ['leaderboard', 'lb', 'ttop'], + description: 'Affiche le top 10 des membres/teams du serveur.', emote: '🏆', - utilisation: '[global|pocket|bank|reputation|niveau|teamdonnateur]', + utilisation: '[global|pocket|bank|reputation|niveau|team|teamreputation|teamdonnateur]', permission: 0, async execute(message, args, client) { @@ -20,6 +20,10 @@ module.exports = { args[0] = 'reputation' } else if (args[0] === 'niveau' || args[0] === 'lvl' || args[0] === 'level' || args[0] === 'lvl') { args[0] = 'niveau' + } else if (args[0] === 'team' || args[0] === 't') { + args[0] = 'team' + } else if (args[0] === 'teamreputation' || args[0] === 'treputation' || args[0] === 'teamrep' || args[0] === 'trep') { + args[0] = 'team' } else if (args[0] === 'teamdonnateur' || args[0] === ' tdonnateur' || args[0] === 'tdroper' || args[0] === ' tdropper' || args[0] === ' teamdrop' || args[0] === 'tdrop' || args[0] === 'teamdroper' || args[0] === 'teamdropper') { args[0] = 'teamdroper' } else if (!args[0]) { @@ -29,7 +33,7 @@ module.exports = { message.reply({ embeds: [ new EmbedBuilder() .setTitle('Argument invalide') - .setDescription(`Vous pouvez utiliser les arguments suivants: \`coins\`, \`pocket\`, \`bank\`, \`reputation\`, \`niveau\` ou ne rien mettre pour afficher le top 10 des membres du serveur.`) + .setDescription(`Vous pouvez utiliser les arguments suivants: \`coins\`, \`pocket\`, \`bank\`, \`reputation\`, \`niveau\`, \`team\`, \`teamreputation\`, \`teamdonnateur\`, ou ne rien mettre pour afficher le top 10 des membres du serveur.`) .setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp() .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) @@ -73,6 +77,20 @@ module.exports = { resolve(rows); }); }); + } else if (type === 'team') { + data = await new Promise((resolve, reject) => { + db.all(`SELECT name, bank AS coins FROM teams WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { + if (err) reject(err); + resolve(rows); + }); + }); + } else if (type === 'teamreputation') { + data = await new Promise((resolve, reject) => { + db.all(`SELECT name, reputation AS teams FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { + if (err) reject(err); + resolve(rows); + }); + }); } else if (type === 'teamdroper') { data = await new Promise((resolve, reject) => { db.all(`SELECT userId, teamdroper AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { @@ -88,6 +106,8 @@ module.exports = { bank: '🏦', reputation: '🔺', niveau: '📊', + team: '👑', + teamreputation: '🔺', teamdroper: '🎁' } @@ -150,6 +170,16 @@ module.exports = { .setEmoji('📊') .setDescription('Affiche le top en fonction du niveau') .setValue('niveau'), + new StringSelectMenuOptionBuilder() + .setLabel('Teams bank') + .setEmoji('👑') + .setDescription('Affiche le top en fonction de l\'argent des teams') + .setValue('team'), + new StringSelectMenuOptionBuilder() + .setLabel('Teams réputation') + .setEmoji('🔺') + .setDescription('Affiche le top en fonction de la réputation des teams') + .setValue('teamreputation'), new StringSelectMenuOptionBuilder() .setLabel('TeamDroper') .setEmoji('🎁') diff --git a/commands/jeux/box.js b/commands/jeux/box.js index 664b729..e539868 100644 --- a/commands/jeux/box.js +++ b/commands/jeux/box.js @@ -19,6 +19,7 @@ module.exports = { } }); }); + if (key == 0) return message.reply('Tu n\'as pas de clef, tu ne peux pas ouvrir de box') db.run(`UPDATE users SET key = key - 1 WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id]) const embed = new EmbedBuilder() diff --git a/commands/jeux/poulet.js b/commands/jeux/poulet.js new file mode 100644 index 0000000..8f40ff5 --- /dev/null +++ b/commands/jeux/poulet.js @@ -0,0 +1,134 @@ +const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); +const embedColor = require('../../fonctions/embedColor.js'); +const db = require('../../fonctions/database.js'); + +module.exports = { + aliases: ['pouletfight', 'pfight', 'poulet'], + description: 'Fait un combat de poulet.', + emote: '🐔', + utilisation: '', + permission: 0, + + async execute(message, args, client) { + let mise = 0 + const pocket = await new Promise((resolve, reject) => { + db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { + if (err) { + reject(err); + } else { + resolve(row.pocket); + } + }); + }); + if (args[0] == 'all') { + mise = pocket + } else { + mise = args[0] + } + + if (pocket < mise) { + embedColor(message.author.id, message.guild.id).then(color => { + const embed = new EmbedBuilder() + .setTitle('🐔 Poulet') + .setDescription(`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`) + .setColor(color) + .setTimestamp() + .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + + message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + }); + return + } + + if (isNaN(args[0]) && !args[0] == "all") { + embedColor(message.author.id, message.guild.id).then(color => { + const embed = new EmbedBuilder() + .setTitle('🐔 Poulet') + .setDescription(`La mise doit être un nombre.`) + .setColor(color) + .setTimestamp() + .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + + message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + }); + return + } else if (mise < 25) { + embedColor(message.author.id, message.guild.id).then(color => { + const embed = new EmbedBuilder() + .setTitle('🐔 Poulet') + .setDescription(`La mise doit être supérieure ou égale à \`25\`.`) + .setColor(color) + .setTimestamp() + .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + + message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + }); + return + } + + embedColor(message.author.id, message.guild.id).then(color => { + const embed = new EmbedBuilder() + .setTitle('🐔 Poulet') + //.setImage('') // image de combat de poulet + .setDescription(`Vous avez misé \`${mise}\` sur votre poulet. Les poulets se battent...\nRésultat dans 7.5 secondes...`) + .setColor(color) + .setTimestamp() + .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + + return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + }); + + await new Promise(resolve => setTimeout(resolve, 7500)); + + const result = Math.floor(Math.random() * 2); + let win = ''; + if (result === 0) { + win = true; + } else { + win = false; + } + + let gain = 0; + if (win == true) { + gain = Math.round(mise * 2); + } else { + gain = 0 - mise; + } + + await new Promise((resolve, reject) => { + db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [gain, message.author.id, message.guild.id], (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }); + }); + + if (gain >= 0) { + embedColor(message.author.id, message.guild.id).then(color => { + const embed = new EmbedBuilder() + .setTitle('🐔 Poulet') + .setDescription(`Vous avez misé \`${mise}\` sur votre poulet et votre poulet a gagné ! Vous avez gagné \`${gain}\`coins !`) + .setColor(color) + .setTimestamp() + .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + + message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + }); + return + } else { + embedColor(message.author.id, message.guild.id).then(color => { + const embed = new EmbedBuilder() + .setTitle('🐔 Poulet') + .setDescription(`Vous avez misé \`${mise}\` sur votre poulet et votre poulet a perdu. Vous avez perdu \`${0 - gain}\`coins !`) + .setColor(color) + .setTimestamp() + .setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) + + message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) + }); + return + } + } +}; \ No newline at end of file diff --git a/events/ready.js b/events/ready.js index c41a031..b0863ce 100644 --- a/events/ready.js +++ b/events/ready.js @@ -7,8 +7,10 @@ module.exports = { name: Events.ClientReady, async execute(client) { console.log(`[READY] ${client.user.tag} est prêt ||| ${client.guilds.cache.size} serveurs | ${client.guilds.cache.reduce((acc, guild) => acc + guild.memberCount, 0)} utilisateurs\n`.green); - loggT(`[READY] ${client.user.tag} est prêt ||| ${client.guilds.cache.size} serveurs | ${client.guilds.cache.reduce((acc, guild) => acc + guild.memberCount, 0)} utilisateurs\n`) + loggT(`\n\n`) + loggT(`[READY] ${client.user.tag} est prêt ||| ${client.guilds.cache.size} serveurs | ${client.guilds.cache.reduce((acc, guild) => acc + guild.memberCount, 0)} utilisateurs`); + console.log('setPresence : ...') client.user.setPresence({ activities: [{ name: '/azelie', @@ -17,17 +19,21 @@ module.exports = { }], status: 'online' }); + console.log('setPresence : OK') client.guilds.cache.forEach(guild => { + console.log('BD update : ...') db.run(`INSERT OR IGNORE INTO config (guildId, name, value) VALUES (?, ?, ?)`, [guild.id, 'prefix', '&']); guild.members.cache.forEach(member => { db.run(`INSERT OR IGNORE INTO users (guildId, userId) VALUES (?, ?)`, [guild.id, member.id]); }); + console.log('BD update : OK') }); setInterval(async () => { + console.log('Recompense vocal : ...') client.guilds.cache.forEach(guild => { guild.members.cache.filter(member => member.voice.channel).forEach(member => { if (member.voice.selfMute == true) { @@ -49,9 +55,11 @@ module.exports = { db.run('UPDATE users SET xp = xp + 20 WHERE guildId = ? AND userId = ?', [guild.id, member.id]); }); }); + console.log('Recompense vocal : OK') }, 15 * 60 * 1000); setInterval(async () => { + console.log('Bâtiment : ...') const team = await new Promise((resolve, reject) => { db.get(`SELECT * FROM teams`, (err, row) => { if (err) reject(err); @@ -60,7 +68,8 @@ module.exports = { }); if (team.location == 0) return - db.run(`UPDATE teams SET bank = bank + ? WHERE guildId = ? AND userId = ?`, [team.location, message.guild.id, message.author.id]); + db.run(`UPDATE teams SET bank = bank + ?`, [team.location]); + console.log('Bâtiment : OK') }, 1 * 60 * 1000) //AntiCrash @@ -68,7 +77,7 @@ module.exports = { if (error.code == "10064") return if (error.code == "10008") return console.log(' [antiCrash] :: Unhandled Rejection/Catch'.red); - console.log(error); + console.log(`${error}`.grey); loggE(error) }); @@ -76,7 +85,7 @@ module.exports = { if (error.code == "10064") return if (error.code == "10008") return console.log(' [antiCrash] :: Uncaught Exception/Catch'.red); - console.log(error); + console.log(`${error}`.grey); console.log('Information supplémentaire:', origin); loggE(error) }); @@ -85,7 +94,7 @@ module.exports = { if (error.code == "10064") return if (error.code == "10008") return console.log(' [antiCrash] :: Uncaught Exception Monitor/Catch'.red); - console.log(error); + console.log(`${error}`.grey); console.log('Information supplémentaire:', origin); loggE(error) }); @@ -95,7 +104,6 @@ module.exports = { if (error.code == "10008") return console.log(' [antiCrash] :: Before Exit'.red); console.log('Code de sortie:', code); - loggE(error) }); process.on('exit', (code) => { @@ -103,7 +111,6 @@ module.exports = { if (error.code == "10008") return console.log(' [antiCrash] :: Exit'.red); console.log('Code de sortie:', code); - loggE(error) }); }, diff --git a/logs/ERROR.txt b/logs/ERROR.txt index b07a2c9..93d2ce0 100644 --- a/logs/ERROR.txt +++ b/logs/ERROR.txt @@ -1,4 +1,3 @@ - [ERROR] || 20/051/2024 =>> 18h 37m 19s 514ms || TypeError: team.forEach is not a function [ERROR] || 20/051/2024 =>> 18h 37m 19s 551ms || TypeError: team.forEach is not a function [ERROR] || 20/051/2024 =>> 18h 37m 19s 628ms || TypeError: team.forEach is not a function diff --git a/rentaBâtiment.xlsx b/rentaBâtiment.xlsx new file mode 100644 index 0000000..36559e6 Binary files /dev/null and b/rentaBâtiment.xlsx differ