This commit is contained in:
arthur
2024-06-21 16:17:47 +02:00
40 changed files with 2047 additions and 337 deletions
+22
View File
@@ -0,0 +1,22 @@
&embed
&shop
&tshop
&adep
&arep
&awh
&blacklistAdd
&blacklistRemove
&servers
&sell
&drop
&box
&juge
&tcadenas
&tleave
&trep
&tdelete
&tdemote
&tpromote
&tedit
&tkick
&towner
+158
View File
@@ -0,0 +1,158 @@
const { EmbedBuilder } = require('discord.js');
const embedColor = require('../../fonctions/embedColor.js');
const db = require('../../fonctions/database.js');
let allianceName
let allianceDescription
module.exports = {
aliases: ['acreate', 'alliancecreate'],
description: 'Crée une alliance.',
emote: '✒️',
utilisation: '',
permission: 0,
async execute(message, args, client) {
const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [message.guild.id, message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => {
if (err) {
reject(err);
} else {
if (row.teamRole !== 'owner') {
embedColor(message.author.id, message.guild.id).then(color => {
const embed = new EmbedBuilder()
.setTitle('🛡️ Création de alliance')
.setDescription(`Vous n'êtes pas proprietaire d'une team.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
});
} else if (row.alliancesId) {
embedColor(message.author.id, message.guild.id).then(color => {
const embed = new EmbedBuilder()
.setTitle('🛡️ Création de alliance')
.setDescription(`Votre team a deja une alliance.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
});
} else if (row.pocket < 3000) {
embedColor(message.author.id, message.guild.id).then(color => {
const embed = new EmbedBuilder()
.setTitle('🛡️ Création de alliance')
.setDescription(`Vous n'avez pas assez de fonds pour créer une alliance. Vous avez besoin de 3000coins.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
});
} else {
db.run(`UPDATE users SET pocket = pocket - 3000 WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id]);
resolve();
}
}
});
});
const embed = new EmbedBuilder()
.setTitle('🛡️ Création d\'alliance')
.setDescription(`Ecrivez le nom de votre alliance dans le chat.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
const messageTeam = await message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
const filter = m => m.author.id === message.author.id;
const collector = message.channel.createMessageCollector({ filter, time: 60000, max: 1 });
collector.on('collect', async m => {
if (m.content.length > 25) {
m.reply('Le nom de l\'alliance ne doit pas dépasser 25 caractères.');
return collector.stop();
} else if (m.content.length < 3) {
m.reply('Le nom de l\'alliance doit contenir au moins 3 caractères.');
return collector.stop();
} else {
allianceName = m.content;
const embed = new EmbedBuilder()
.setTitle('🛡️ Création de l\'alliance')
.setDescription(`Ecrivez la description de votre alliance dans le chat.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
messageTeam.edit({ embeds: [embed] });
m.delete();
const collectorD = message.channel.createMessageCollector({ filter, time: 60000, max: 1 });
collectorD.on('collect', async m => {
if (m.content.length > 250) {
m.reply('La description de l\'alliance ne doit pas dépasser 250 caractères.');
return collectorD.stop();
} else if (m.content.length < 5) {
m.reply('La description de l\'alliance doit contenir au moins 5 caractères.');
return collectorD.stop();
} else {
allianceDescription = m.content;
let idBase = allianceName.toLowerCase().replace(/ /g, '');
idBase = idBase.replace('0', '');
idBase = idBase.replace('1', '');
idBase = idBase.replace('2', '');
idBase = idBase.replace('3', '');
idBase = idBase.replace('4', '');
idBase = idBase.replace('5', '');
idBase = idBase.replace('6', '');
idBase = idBase.replace('7', '');
idBase = idBase.replace('8', '');
idBase = idBase.replace('9', '');
let id = idBase;
let increment = 0;
let exists = true;
do {
await new Promise((resolve, reject) => {
db.get(`SELECT * FROM alliances WHERE id = ? AND guildId = ?`, [id, message.guild.id], (err, row) => {
if (err) {
reject(err);
} else {
exists = !!row;
if (exists) {
increment = increment + 1;
id = idBase + increment;
} else {
db.run(`INSERT INTO alliances (guildId, id, name, description, creator) VALUES (?, ?, ?, ?, ?)`, [message.guild.id, id, allianceName, allianceDescription, message.author.id]);
db.run(`UPDATE teams SET alliancesId = ? WHERE guildId = ? AND id = ?`, [id, message.guild.id, team.id]);
}
resolve();
}
});
});
} while (exists);
const embed = new EmbedBuilder()
.setTitle('🛡️ Création de l\'alliance')
.setDescription(`Votre alliance a été créée avec succès !\n\n**ID :** ${id}\n**Nom :** ${allianceName}\n**Description :** ${allianceDescription}\n\nVous pouvez maintenant inviter des owners de team dans votre alliance avec la commande \`&allianceinvite\`.\n\nPour quitter la alliance, utilisez la commande \`&allianceleave\` (vous deverez d'abord donner l\'alliance à quelqu'un d'autre).`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
messageTeam.edit({ embeds: [embed] });
m.delete();
}
});
}
});
}
};
+104
View File
@@ -0,0 +1,104 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder, EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
module.exports = {
aliases: ['alliancedelete', 'adelete', 'aremove', 'allianceremove'],
description: 'Supprime votre alliance.',
emote: '🗑️',
util: '',
permission: 0,
async execute(message, args, client) {
const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [message.guild.id, message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
const alliance = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM teams WHERE guildId = ? AND id = ?)`, [message.guild.id, message.guild.id, team.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
if (!alliance) {
const embed = new EmbedBuilder()
.setTitle('🛡️ Suppression de l\'alliance')
.setDescription('Vous n\'êtes actuellement pas dans une alliance.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else {
if (alliance.creator !== message.author.id) {
const embed = new EmbedBuilder()
.setTitle('Suppression Impossible')
.setDescription('❌ Vous n\'avez pas la permission de supprimer votre alliance.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
const row = new ActionRowBuilder()
.addComponents(
new ButtonBuilder()
.setCustomId('confirm_delete')
.setLabel('Confirmer')
.setStyle(ButtonStyle.Danger),
new ButtonBuilder()
.setCustomId('cancel_delete')
.setLabel('Annuler')
.setStyle(ButtonStyle.Secondary)
);
const embed = new EmbedBuilder()
.setTitle('🛡️ Suppression de l\'alliance')
.setDescription(`Êtes-vous sûr de vouloir supprimer l'alliance ${alliance.name}? Cette action est irréversible.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }).then(sentMessage => {
const filter = i => i.customId === 'confirm_delete' || i.customId === 'cancel_delete' && i.user.id === message.author.id;
const collector = sentMessage.createMessageComponentCollector({ filter, time: 15000 });
collector.on('collect', async i => {
if (i.customId === 'confirm_delete') {
db.run(`DELETE FROM alliances WHERE guildId = ? AND id = ? AND creator = ?`, [message.guild.id, alliance.id, message.author.id], async (err) => {
if (err) {
return i.update({ content: 'Une erreur est survenue lors de la suppression de l\'alliance.', components: [] });
}
db.run(`UPDATE teams SET alliancesId = null WHERE guildId =? AND alliancesId =?`, [message.guild.id, alliance.id], async (err) => {
if (err) {
return i.update({ content: 'Une erreur est survenue lors de la mise à jour des teams membres.', components: [] });
}
const embed = new EmbedBuilder()
.setTitle('🛡️ Suppression de l\'alliance')
.setDescription(`L'alliance ${alliance.name} a été supprimée avec succès.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return i.update({ embeds: [embed], components: [] });
});
});
} else {
await i.update({ content: 'Suppression de l\'alliance annulée.', components: [] });
}
});
collector.on('end', collected => {
if (collected.size === 0) sentMessage.edit({ content: 'Temps écoulé. Suppression de l\'équipe annulée.', components: [] });
});
});
}
},
};
+94
View File
@@ -0,0 +1,94 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
module.exports = {
aliases: ['adep', 'adepot', 'alliancedep', 'alliancedepot'],
description: 'Dépose de l\'argent dans la banque de votre alliance. (tout le monde peux en recupéré ⚠️)',
emote: '💰',
utilisation: '<montant|all>',
permission: 0,
async execute(message, args, client) {
if (args.length == 0) {
const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible')
.setDescription('❌ Vous devez spécifier un montant à déposer.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (args[0] !== 'all' && isNaN(args[0])) {
const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible')
.setDescription('❌ Vous devez spécifier un montant valide à déposer.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (args[0] < 1) {
const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible')
.setDescription('❌ Vous devez déposer au moins 1 coin.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
const pocket = await new Promise((resolve, reject) => {
db.get(`SELECT pocket FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row.pocket);
});
});
let amout;
if (args[0] === 'all') {
amout = pocket;
} else if (args[0] > pocket) {
const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible')
.setDescription('❌ Vous n\'avez pas assez d\'argent sur vous pour déposer cette somme.\n\n💰 Vous avez actuellement **' + pocket + 'coins** sur vous.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else {
amout = args[0];
}
const alliance = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM team WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?))`, [message.guild.id, message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
if (!alliance) {
const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible')
.setDescription('❌ Vous n\'êtes pas dans une alliances.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else {
db.run(`UPDATE users SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`, [amout, message.guild.id, message.author.id]);
db.run(`UPDATE alliances SET bank = bank + ? WHERE guildId = ? AND id = ?`, [amout, message.guild.id, alliance.id]);
const embed = new EmbedBuilder()
.setTitle('Dépôt Effectué')
.setDescription('💰 Vous avez déposé **' + amout + '** coins dans la banque de votre alliances.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
},
};
+77
View File
@@ -0,0 +1,77 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
module.exports = {
aliases: ['arep', 'areputation', 'alliancereputation', 'alliancerep'],
description: 'Ajoute une reputation a une alliance. (tout le monde peux en recupéré ⚠️)',
emote: '💰',
utilisation: '<id>',
permission: 0,
async execute(message, args, client) {
if (args.length == 0) {
const embed = new EmbedBuilder()
.setTitle('Ajout de reputation')
.setDescription('❌ Vous devez spécifier une alliance a rep.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (args[0] < 3) {
const embed = new EmbedBuilder()
.setTitle('Ajout de reputation')
.setDescription('❌ Vous devez mettre l\'id d\'une alliance.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
const alliance = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM alliances WHERE guildId = ? AND id = ?`, [message.guild.id, args[0]], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
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.lastRep);
});
});
if (!alliance) {
const embed = new EmbedBuilder()
.setTitle('Ajout de reputation')
.setDescription('❌ Alliance introuvable.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (user.lastArep > Date.now() - 1800000) {
const embed = new EmbedBuilder()
.setTitle('Ajout de reputation impossible')
.setDescription(`❌ Vous avez déjà ajouté une reputation récemment. Veuillez attendre \`${Math.floor((user.lastArep + 1800000 - Date.now()) / 60000)}\` minutes avant de pouvoir travailler à nouveau.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else {
db.run(`UPDATE alliances SET reputation = reputation + 1 WHERE guildId = ? AND id = ?`, [message.guild.id, args[0]]);
const embed = new EmbedBuilder()
.setTitle('Ajout de reputation effectué')
.setDescription('💰 Vous avez ajouter `1` reputation à l\`alliance `' + args[0] + '`.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
},
};
+123
View File
@@ -0,0 +1,123 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
module.exports = {
aliases: ['awh', 'awith', 'alliancewh', 'alliancewith', 'awithdraw', 'alliancewithdraw'],
description: 'Récupere de l\'argent/des reputation dans la banque de votre alliance.',
emote: '💰',
utilisation: '<rep|coins> <montant|all>',
permission: 0,
async execute(message, args, client) {
if (args.length == 0) {
const embed = new EmbedBuilder()
.setTitle('Récuperation Impossible')
.setDescription('❌ Vous devez spécifier un type et un montant à récupérer (`awith coins 200`).')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (args[1] !== 'all' && isNaN(args[1])) {
const embed = new EmbedBuilder()
.setTitle('Récuperation Impossible')
.setDescription('❌ Vous devez spécifier un montant valide à récupérer.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (args[1] < 1) {
const embed = new EmbedBuilder()
.setTitle('Récuperation Impossible')
.setDescription('❌ Vous devez récupérer au moins 1 coin/rep.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
const alliance = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM team WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?))`, [message.guild.id, message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
if (!alliance) {
const embed = new EmbedBuilder()
.setTitle('Récuperation Impossible')
.setDescription('❌ Vous n\'êtes pas dans une alliances.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (args[0] == 'rep' || args[0] == 'r' || args[0] == 'reputation') {
let amout;
if (args[1] === 'all') {
amout = alliance.bank;
} else if (args[1] > alliance.bank) {
const embed = new EmbedBuilder()
.setTitle('Récuperation Impossible')
.setDescription('❌ Il n\'y a pas suffisament de reputation dans l\'alliance pour en recupéré autant.\n\n💰 Il y a actuellement `' + alliance.reputation + '`rep')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else {
amout = args[1];
}
db.run(`UPDATE users SET reputation = reputation + ? WHERE guildId = ? AND userId = ?`, [amout, message.guild.id, message.author.id]);
db.run(`UPDATE alliances SET reputation = reputation - ? WHERE guildId = ? AND id = ?`, [amout, message.guild.id, alliance.id]);
const embed = new EmbedBuilder()
.setTitle('Récuperation Effectué')
.setDescription('💰 Vous avez récupéré **' + amout + '** coins dans la banque de votre alliances.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (args[1] == 'coin' || args[0] == 'c' || args[0] == 'coins') {
let amout;
if (args[1] === 'all') {
amout = alliance.bank;
} else if (args[1] > alliance.bank) {
const embed = new EmbedBuilder()
.setTitle('Récuperation Impossible')
.setDescription('❌ Il n\'y a pas suffisament de coins dans l\'alliance pour récupérer cette somme.\n\n💰 il y a actuellement `' + alliance.bank + '`coins')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else {
amout = args[1];
}
db.run(`UPDATE users SET pocket = pocket + ? WHERE guildId = ? AND userId = ?`, [amout, message.guild.id, message.author.id]);
db.run(`UPDATE alliances SET bank = bank - ? WHERE guildId = ? AND id = ?`, [amout, message.guild.id, alliance.id]);
const embed = new EmbedBuilder()
.setTitle('Récuperation Effectué')
.setDescription('💰 Vous avez récupéré **' + amout + '** coins dans la banque de votre alliances.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else {
const embed = new EmbedBuilder()
.setTitle('Récuperation Impossible')
.setDescription('❌ Veuillez spécifier un type valide (rep|coins) :\n(`awith <rep|coins> <nombre>`)')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
}
};
+66
View File
@@ -0,0 +1,66 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
module.exports = {
aliases: ['a', 'ainfo', 'allianceinfo'],
description: 'Affiche les informations de votre alliance.',
emote: '🛡️',
utilisation: '',
permission: 0,
async execute(message, args, client) {
const member = message.mentions.members.first() || message.author;
const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [message.guild.id, message.guild.id, member.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
const alliance = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM teams WHERE guildId = ? AND id = ?)`, [message.guild.id, message.guild.id, team.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
if (!alliance) {
const embed = new EmbedBuilder()
.setTitle('🛡️ Informations d\'alliance')
.setDescription('<@' + member.id + '> n\'est actuellement dans aucune alliance.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else {
const memberlist = await new Promise((resolve, reject) => {
db.all(`SELECT name FROM teams WHERE guildId = ? AND alliancesId = ?`, [message.guild.id, team.alliancesId], (err, rows) => {
if (err) reject(err);
resolve(rows);
});
});
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
const embed = new EmbedBuilder()
.setTitle('🛡️ Informations de `' + alliance.name + '`:')
.setDescription(`**Id:** \`${alliance.id}\`\n**Description:** \`${alliance.description}\`\n**Banque:** \`${alliance.bank}\`coins => Tout le monde peux recupéré ces coins.\n**Reputation:** \`${alliance.reputation} => Tout le monde peux recupéré ces reputations\`\n\n**Membres (\`${memberlist.length}\`):**\n${memberlist.map(member => `**${member.allianceRole}:** <@${member.userId}>`).join('\n')}\n`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
const urlRegex1 = /(https?:\/\/[^\s]+)/g;
if (alliance.icon && urlRegex1.test(alliance.icon)) {
embed.setThumbnail(alliance.icon);
}
const urlRegex2 = /(https?:\/\/[^\s]+)/g;
if (alliance.banner && urlRegex2.test(alliance.banner)) {
embedTopDonnateur.setImage(alliance.banner);
}
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
},
};
+79 -24
View File
@@ -5,7 +5,7 @@ const embedColor = require('../../fonctions/embedColor.js');
module.exports = {
aliases: ['shop', 'magasin', 'boutique', 'store'],
description: 'Affiche le shop du bot.',
emote: '🛍️',
emote: '🛍️',
utilisation: '',
permission: 0,
@@ -13,7 +13,7 @@ module.exports = {
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setThumbnail(message.guild.iconURL())
.setDescription(`Sélectionnez un item à acheter. Voici les items disponibles :\n\n> 🔒 AntiRob - Protège contre les vols pendant 2 heures - Prix : 2000 coins`)
.setDescription(`Sélectionnez un item à acheter. Voici les items disponibles :\n\n> 🔒 AntiRob - Protège contre les vols pendant 2 heures - Prix : 2000coins\n\n> 🗝️ Clef - Permet d'ouvrir une boite 100%gagante - Prix : 2500coins\n\n\n\n> 💰 25000 Coins - Prix : 1 reputation`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
@@ -28,6 +28,18 @@ module.exports = {
.setDescription('Protège contre les vols pendant 2 heures')
.setEmoji('🔒')
.setDefault(false),
new StringSelectMenuOptionBuilder()
.setLabel('🗝️ Clef')
.setValue('key')
.setDescription('Permet d\'ouvrir une boite')
.setEmoji('🗝️')
.setDefault(false),
new StringSelectMenuOptionBuilder()
.setLabel('💰 25000 Coins')
.setValue('coins')
.setDescription('Vous donne 25K de coins contre 1reputation')
.setEmoji('💰')
.setDefault(false),
);
const row = new ActionRowBuilder()
@@ -38,32 +50,75 @@ module.exports = {
client.on('interactionCreate', async (interaction) => {
if (!interaction.isStringSelectMenu()) return;
if (interaction.customId === 'shop') {
const selected = interaction.values[0];
if (!interaction.customId === 'shop') return
const selected = interaction.values[0];
if (selected === 'antirob') {
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 (selected === 'antirob') {
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.pocket < 2000) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'argent pour acheter cet item.', ephemeral: true });
}
db.run(`UPDATE users SET pocket = pocket - 2000, antiRob = ? WHERE guildId = ? AND userId = ?`, [Date.now(), message.guild.id, message.author.id]);
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setDescription(`Vous avez acheté l'item 🔒 AntiRob pour 2000 coins !`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
if (user.pocket < 2000) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'argent pour acheter cet item.', ephemeral: true });
}
db.run(`UPDATE users SET pocket = pocket - 2000, antiRob = ? WHERE guildId = ? AND userId = ?`, [Date.now(), message.guild.id, message.author.id]);
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setDescription(`Vous avez acheté l'item 🔒 AntiRob pour 2000 coins !`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (selected === 'key') {
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.pocket < 2500) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'argent pour acheter cet item.', ephemeral: true });
}
db.run(`UPDATE users SET pocket = pocket - 2500, key = key + 1 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]);
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setDescription(`Vous avez acheté l'item 🗝️ clef pour 2500 coins !`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (selected === 'coins') {
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.reputation < 1) {
return interaction.reply({ content: 'Vous n\'avez pas assez de reputation pour acheter cet item.', ephemeral: true });
}
db.run(`UPDATE users SET pocket = pocket + 25000, reputation = reputation - 1 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]);
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setDescription(`Vous avez acheté \`25000\`coins contre une reputation !`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
});
},
+124
View File
@@ -0,0 +1,124 @@
const { EmbedBuilder, ActionRowBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
module.exports = {
aliases: ['tshop', 'tmagasin', 'tboutique', 'tstore', 'teamshop', 'teammagasin', 'tboutique', 'teamstore'],
description: 'Affiche le shop du bot.',
emote: '🛍️',
utilisation: '',
permission: 0,
async execute(message, args, client) {
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);
});
});
const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM teams WHERE guildId = ? AND id = ?`, [message.guild.id, user.teamId], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setThumbnail(message.guild.iconURL())
.setDescription(`Sélectionnez un item à acheter POUR VOTRE TEAM, les items sont cummulable, vous gagner déjà ${team.location}coins/min. Voici les items disponibles :\n\n> 🏢 Appartement - Achete un appartement et le met en location, rapporte \`70coins/min\`\nPrix : \`100000\`coins\n\n> 🏠 Maison - Achete une petite maison et la met en location, rapporte \`75coins/min\`\nPrix : \`110000\`coins\n\n> 🏠 Grande maison - Achete une grande maison et la met en location, rapporte \`125coins/min\`\nPrix : \`150000\`coins\n\n> 💎 Villa - Achete une petite maison et la met en location, rapporte \`250coins/min\`\nPrix : \`250000\`coins\n\n> 🏝️ Île - Achete une île et la met en location, rapporte \`2500coins/min\`\nPrix : \`500000\`coins`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
const select = new StringSelectMenuBuilder()
.setCustomId('shop')
.setPlaceholder('Sélectionnez un item')
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('🏢 Appartement')
.setValue('appartement')
.setDescription('Achete un appartement et le met en location, rapporte 70coins/min')
.setEmoji('🏢')
.setDefault(false),
new StringSelectMenuOptionBuilder()
.setLabel('🏠 Maison')
.setValue('maison')
.setDescription('Achete une petite maison et la met en location, rapporte 75coins/min')
.setEmoji('🏠')
.setDefault(false),
new StringSelectMenuOptionBuilder()
.setLabel('🏠 Grande maison')
.setValue('maison2')
.setDescription('Achete une grande maison et la met en location, rapporte 120coins/min')
.setEmoji('🏠')
.setDefault(false),
new StringSelectMenuOptionBuilder()
.setLabel('💎 Villa')
.setValue('villa')
.setDescription('Achete une villa et la met en location, rapporte 250coins/min')
.setEmoji('💎')
.setDefault(false),
new StringSelectMenuOptionBuilder()
.setLabel('🏝️ Île')
.setValue('ile')
.setDescription('Achete une île et la met en location, rapporte 2500coins/min')
.setEmoji('🏝️')
.setDefault(false),
);
const row = new ActionRowBuilder()
.addComponents(select);
message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } });
client.on('interactionCreate', async (interaction) => {
if (!interaction.isStringSelectMenu()) return;
if (!interaction.customId === 'shop') return
const selected = interaction.values[0];
let coup = ''
let item = ''
let win = ''
if (selected === 'appartement') {
coup = '100000'
item = 'appartement'
win = '70'
} else if (selected === 'maison') {
coup = '110000'
item = 'maison'
win = '75'
} else if (selected === 'maison2') {
coup = '150000'
item = 'grande maison'
win = '120'
} else if (selected === 'villa') {
coup = '250000'
item = 'villa'
win = '250'
} else if (selected === 'ile') {
coup = '500000'
item = 'île'
win = '2500'
}
if (user.teamRole !== 'officier' || user.teamRole !== 'officer') return interaction.reply({ content: 'Vous n\'avez pas les permissions pour faire cet achat', ephemeral: true });
if (team.bank < coup) return interaction.reply({ content: 'Vous n\'avez pas assez d\'argent pour acheter cet item.', ephemeral: true });
db.run(`UPDATE teams SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`, [coup, message.guild.id, message.author.id]);
db.run(`UPDATE teams SET location = location + ? WHERE guildId = ? AND userId = ?`, [win, message.guild.id, message.author.id]);
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setDescription(`Vous avez acheté l'item ${item} pour \`${coup}\`coins !`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
});
},
};
+37
View File
@@ -0,0 +1,37 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
module.exports = {
aliases: ['bl', 'addbl'],
description: 'Met un utilisateur comme blacklist (sur ce serveur).',
emote: '🛡️',
utilisation: '<@membre>',
permission: 10,
async execute(message, args, client) {
const member = message.mentions.users.first();
if (!member) {
const embed = new EmbedBuilder()
.setTitle('Blacklist :')
.setDescription(`**Veuillez mentionner un membre valide**`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
db.run(`UPDATE users SET blacklist = true WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id]);
const embed = new EmbedBuilder()
.setTitle('Blacklist :')
.setDescription(`**<@${member.id}> est maintement blacklist !**`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
};
+37
View File
@@ -0,0 +1,37 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
module.exports = {
aliases: ['unbl', 'removebl'],
description: 'Met un utilisateur comme non-blacklist (sur ce serveur).',
emote: '🛡️',
utilisation: '<@membre>',
permission: 10,
async execute(message, args, client) {
const member = message.mentions.users.first();
if (!member) {
const embed = new EmbedBuilder()
.setTitle('Un-blacklist :')
.setDescription(`**Veuillez mentionner un membre valide**`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
db.run(`UPDATE users SET blacklist = false WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id]);
const embed = new EmbedBuilder()
.setTitle('Un-blacklist :')
.setDescription(`**<@${member.id}> est maintement un-blacklist !**`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
};
+147 -148
View File
@@ -2,12 +2,12 @@ const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('
const embedColor = require('../../fonctions/embedColor.js');
const getPrefix = require('../../fonctions/getPrefix.js');
function commandsList (client, category, prefix) {
function commandsList(client, category, prefix) {
const casinoCommands = client.commands.filter(command => command.category === category).sort((a, b) => a.name.localeCompare(b.name));
const uniqueCommands = new Map();
casinoCommands.forEach(command => {
uniqueCommands.set(command.name, {description: command.description, emote: command.emote, utilisation: command.utilisation});
uniqueCommands.set(command.name, { description: command.description, emote: command.emote, utilisation: command.utilisation });
});
let commandsList = '';
@@ -19,174 +19,173 @@ function commandsList (client, category, prefix) {
}
module.exports = {
aliases: ['h', 'aide'],
aliases: ['', 'h', 'aide'],
description: 'Affiche la liste des commandes disponibles',
emote: '📚',
emote: '📚',
utilisation: '[commande]',
permission: 0,
async execute(message, args, client) {
if (args[0] && client.commands.has(args[0])) {
const command = client.commands.get(args[0]);
const prefix = await getPrefix(message.guild.id);
const embed = new EmbedBuilder()
.setTitle(`📚・${command.name}`)
.setThumbnail(message.guild.iconURL())
.setDescription(`> **Description :** ${command.description}\n> **Utilisation :** \`${prefix}${command.name}${command.utilisation ? ' ' + command.utilisation : ''}\`\n> **Alias :** ${command.aliases.join(', ') || 'Aucun'}\n> **Permission :** ${command.permission}\n> **Catégorie :** ${command.category}\n> **Emote :** ${command.emote}`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else {
if (args[0]) {
if (args) {
if (args[0] && client.commands.has(args[0])) {
const command = client.commands.get(args[0]);
const prefix = await getPrefix(message.guild.id);
const embed = new EmbedBuilder()
.setTitle('❌・Commande inconnue')
.setDescription('La commande que vous avez demandée n\'existe pas. Nous vous invitons à vérifier l\'orthographe dans le help si dessous et à réessayer.')
.setTitle(`📚・${command.name}`)
.setThumbnail(message.guild.iconURL())
.setDescription(`> **Description :** ${command.description}\n> **Utilisation :** \`${prefix}${command.name}${command.utilisation ? ' ' + command.utilisation : ''}\`\n> **Alias :** ${command.aliases.join(', ') || 'Aucun'}\n> **Permission :** ${command.permission}\n> **Catégorie :** ${command.category}\n> **Emote :** ${command.emote}`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
const prefix = await getPrefix(message.guild.id);
const embedPage1 = new EmbedBuilder()
.setTitle('📚 ・Information')
.setThumbnail(message.guild.iconURL())
.setDescription(`Voici le panel d'aide du bot. Pour plus d'informations sur une commande, utilisez ${prefix}help <commande>\n\n> **🎙️ Récompenses vocales :**\n> Vous gagnez \`100\` coins toutes les \`15\`minutes lorsque vous êtes en vocal (**NON MUTE** sinon c'est \`50\`coins).\n \n> **📺 Récompenses de streaming :**\n> Activer un stream vous fera gagner \`200\`.\n \n> **📷 Récompenses de caméra :**\n> Activer votre caméra vous fera gagner \`200\`.\n\n> Le coins est une monnaie fictive.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 1/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
const leftButton = new ButtonBuilder()
.setCustomId('left')
.setLabel('◀')
.setStyle(ButtonStyle.Primary);
const rightButton = new ButtonBuilder()
.setCustomId('right')
.setLabel('▶')
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(leftButton, rightButton);
let messageEmbed;
if (args[0]) {
messageEmbed = await message.channel.send({ embeds: [embedPage1], components: [row], allowedMentions: { repliedUser: false } });
} else {
messageEmbed = await message.reply({ embeds: [embedPage1], components: [row], allowedMentions: { repliedUser: false } });
if (args[0]) {
const embed = new EmbedBuilder()
.setTitle('❌・Commande inconnue')
.setDescription('La commande que vous avez demandée n\'existe pas. Nous vous invitons à vérifier l\'orthographe dans le help si dessous et à réessayer.')
.setColor(await embedColor(message.author.id, message.guild.id))
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
}
}
const prefix = await getPrefix(message.guild.id);
const embedPage1 = new EmbedBuilder()
.setTitle('📚 ・Information')
.setThumbnail(message.guild.iconURL())
.setDescription(`Voici le panel d'aide du bot. Pour plus d'informations sur une commande, utilisez ${prefix}help <commande>\n\n> **🎙️ Récompenses vocales :**\n> Vous gagnez \`100\` coins toutes les \`15\`minutes lorsque vous êtes en vocal (**NON MUTE** sinon c'est \`50\`coins).\n \n> **📺 Récompenses de streaming :**\n> Activer un stream vous fera gagner \`200\`.\n \n> **📷 Récompenses de caméra :**\n> Activer votre caméra vous fera gagner \`200\`.\n\n> Le coins est une monnaie fictive.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 1/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
const leftButton = new ButtonBuilder()
.setCustomId('left')
.setLabel('◀')
.setStyle(ButtonStyle.Primary);
const rightButton = new ButtonBuilder()
.setCustomId('right')
.setLabel('▶')
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(leftButton, rightButton);
let messageEmbed;
messageEmbed = await message.reply({ embeds: [embedPage1], components: [row], allowedMentions: { repliedUser: false } });
const filter = i => i.user.id === message.author.id;
const collector = message.channel.createMessageComponentCollector({ filter, time: 120000 });
let page = 1;
collector.on('collect', async i => {
if (i.customId === 'left') {
page--;
if (page < 1) page = 10;
} else if (i.customId === 'right') {
page++;
if (page > 10) page = 1;
}
const filter = i => i.user.id === message.author.id;
const collector = message.channel.createMessageComponentCollector({ filter, time: 90000 });
if (page === 1) {
i.update({ embeds: [embedPage1], components: [row] });
} else if (page === 2) {
const embedPage2 = new EmbedBuilder()
.setTitle('💰・Casino')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'casino', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 2/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
let page = 1;
collector.on('collect', async i => {
if (i.customId === 'left') {
page--;
if (page < 1) page = 10;
} else if (i.customId === 'right') {
page++;
if (page > 10) page = 1;
}
i.update({ embeds: [embedPage2], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 3) {
const embedPage3 = new EmbedBuilder()
.setTitle('🎲・Jeux')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'jeux', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 3/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
if (page === 1) {
i.update({ embeds: [embedPage1], components: [row] });
} else if (page === 2) {
const embedPage2 = new EmbedBuilder()
.setTitle('💰・Casino')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'casino', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 2/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage3], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 4) {
const embedPage4 = new EmbedBuilder()
.setTitle('🛍️・Achats')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'achats', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 4/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage2], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 3) {
const embedPage3 = new EmbedBuilder()
.setTitle('🎲・Jeux')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'jeux', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 3/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage4], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 5) {
const embedPage5 = new EmbedBuilder()
.setTitle('🏭・Metier et capacité')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'jobs', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 5/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage3], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 4) {
const embedPage4 = new EmbedBuilder()
.setTitle('🛍️・Achats')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'achats', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 4/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage5], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 6) {
const embedPage6 = new EmbedBuilder()
.setTitle('💼・Teams')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'teams', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 6/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage4], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 5) {
const embedPage5 = new EmbedBuilder()
.setTitle('🏭・Metier et capacité')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'jobs', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 5/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage6], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 7) {
const embedPage7 = new EmbedBuilder()
.setTitle('🛡️・Teams administration')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'teams admin', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 7/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage5], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 6) {
const embedPage6 = new EmbedBuilder()
.setTitle('💼・Teams')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'teams', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 6/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage7], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 8) {
const embedPage8 = new EmbedBuilder()
.setTitle('🤝・Alliance')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'Alliance', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 8/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage6], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 7) {
const embedPage7 = new EmbedBuilder()
.setTitle('🛡️・Teams administration')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'teams admin', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 7/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage8], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 9) {
const embedPage9 = new EmbedBuilder()
.setTitle('👑・Gestion')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'gestion', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 9/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage7], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 8) {
const embedPage8 = new EmbedBuilder()
.setTitle('🤝・Alliance')
.setThumbnail(message.guild.iconURL())
.setDescription(`page 8`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 8/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage9], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 10) {
const embedPage10 = new EmbedBuilder()
.setTitle('👑・Bot control')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'bot control', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 10/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage8], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 9) {
const embedPage9 = new EmbedBuilder()
.setTitle('👑・Gestion')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'gestion', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 9/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage10], components: [row], allowedMentions: { repliedUser: false } });
}
});
i.update({ embeds: [embedPage9], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 10) {
const embedPage10 = new EmbedBuilder()
.setTitle('👑・Bot control')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'bot control', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 10/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
collector.on('end', () => {
messageEmbed.edit({ components: [], allowedMentions: { repliedUser: false } })
});
i.update({ embeds: [embedPage10], components: [row], allowedMentions: { repliedUser: false } });
}
});
collector.on('end', () => {
messageEmbed.edit({ components: [], allowedMentions: { repliedUser: false } })
});
}
}
};
+2 -1
View File
@@ -22,6 +22,7 @@ module.exports = {
const reputation = user.reputation
const niveau = user.lvl
const xp = user.xp
const tdrop = user.tdroper
let anti_rob = ``
if (user.antiRob + 7200000 > Date.now()) {
@@ -30,7 +31,7 @@ module.exports = {
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> :small_orange_diamond: **Xp:** \`${xp}/${niveau*100}\``)
.setDescription(`> :moneybag: **Poche:** \`${pocket}\`\n> :bank: **Banque:** \`${bank}\`\n> :star2: **Réputation:** \`${reputation}\`\n\n> :bar_chart: **Niveau:** \`${niveau}\`\n> :small_orange_diamond: **Xp:** \`${xp}/${niveau*100}\`\n\nCoins donnés à une team: \`${tdrop}\`🎁`)
.setColor(await embedColor(member.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
+52
View File
@@ -0,0 +1,52 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
module.exports = {
aliases: ['recolt', 'recolte'],
description: 'Recolter des objets que vous pourrez vendre ensuite.',
emote: '💼',
utilisation: '',
permission: 0,
async execute(message, args, client) {
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);
});
});
const lastRecolt = user.lastRecolt
const objet = user.objet
if (lastRecolt > Date.now() - 2700000) {
const embed = new EmbedBuilder()
.setTitle('Recolte Impossible')
.setDescription(`❌ La météo annonce une tempete... Veuillez attendre \`${Math.floor((lastRecolt + 2700000 - Date.now()) / 60000)}\` minutes avant de pouvoir recolter.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
const randomAmount = Math.floor(Math.random() * 2) + 1;
db.run(`UPDATE users SET objet = ?, lastRecolt = ? WHERE guildId = ? AND userId = ?`, [objet + randomAmount, Date.now(), message.guild.id, message.author.id]);
const recolts = [
`🍒 Vous avez recolté des cerises sur ${randomAmount} arbre(s) dans votre jardin.`,
`🌽 Vous avez recolté ${randomAmount} parcelle(s) de maïs et vous avez tout mis à l'abri.`,
`🌳 Vous avez trouvé de quoi vous chauffer en vous promenant en foret, vous rentrer chez vous avec ${randomAmount} grosse(s) bûche(s) de bois.`
];
const embed = new EmbedBuilder()
.setTitle('Objet recolter')
.setDescription(recolts[Math.floor(Math.random() * recolts.length)])
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
};
+14
View File
@@ -28,6 +28,20 @@ module.exports = {
resolve(row);
});
});
const memberlist = await new Promise((resolve, reject) => {
db.all(`SELECT userId FROM users WHERE guildId = ? AND teamId = ?`, [message.guild.id, user.teamId], (err, rows) => {
if (err) reject(err);
resolve(rows);
});
});
if (memberlist.includes(member)) return message.reply({ embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez choisir un membre qui __n\'est pas__ dans votre team.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter(footer)
], allowedMentions: { repliedUser: false } });
if (user.lastRob + 7200000 > Date.now()) {
const embed = new EmbedBuilder()
+182
View File
@@ -0,0 +1,182 @@
const { EmbedBuilder, ActionRowBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
module.exports = {
aliases: ['vendre'],
description: 'Affiche le menu de vente des objets.',
emote: '🛍️',
utilisation: '',
permission: 0,
async execute(message, args, client) {
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);
});
});
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setThumbnail(message.guild.iconURL())
.setDescription(`Sélectionnez un nombre d'objet à vendre.\n\nVous avez \`${user.objet}\`objet.\nAttention, il est possible que de petit pourboire de client soit rajouté.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
const select = new StringSelectMenuBuilder()
.setCustomId('sell')
.setPlaceholder('Sélectionnez un nombre d\'objet')
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('👶 Debutant')
.setValue('1')
.setDescription('Vend un objet, pour \`200\`coins.')
.setEmoji('👶')
.setDefault(false)
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('🚸 Enfant')
.setValue('2')
.setDescription('Vend deux objet, pour \`400\`coins.')
.setEmoji('🚸')
.setDefault(false)
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('🔞 Mineur')
.setValue('3')
.setDescription('Vend trois objet, pour \`600\`coins.')
.setEmoji('🔞')
.setDefault(false)
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('🧐 Expert')
.setValue('4')
.setDescription('Vend quatre objet, pour \`800\`coins.')
.setEmoji('🧐')
.setDefault(false),
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('👑 Mythique')
.setValue('5')
.setDescription('Vend cinq objet, pour \`1 000\`coins.')
.setEmoji('👑')
.setDefault(false),
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('👑 Legendaire')
.setValue('10')
.setDescription('Vend dix objet, pour \`10 000\`coins !')
.setEmoji('👑')
.setDefault(false),
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('👑 Ultime')
.setValue('25')
.setDescription('Vend 25 objet, pour \`30 000\`coins !')
.setEmoji('👑')
.setDefault(false),
)
const row = new ActionRowBuilder()
.addComponents(select);
message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } });
client.on('interactionCreate', async (interaction) => {
if (!interaction.user.id !== message.author.id) return;
if (!interaction.isSelectMenu()) return;
if (!interaction.customId === 'sell') return
const selected = interaction.values[0];
if (selected === '1') {
if (user.objet < 1) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true });
}
db.run(`UPDATE users SET objet = objet - 1, pocket = pocket + 200 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]);
}
if (selected === '2') {
if (user.objet < 2) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true });
}
db.run(`UPDATE users SET objet = objet - 2, pocket = pocket + 400 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]);
}
if (selected === '3') {
if (user.objet < 3) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true });
}
db.run(`UPDATE users SET objet = objet - 3, pocket = pocket + 600 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]);
}
if (selected === '4') {
if (user.objet < 4) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true });
}
db.run(`UPDATE users SET objet = objet - 4, pocket = pocket + 850 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]);
}
if (selected === '5') {
if (user.objet < 5) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true });
}
db.run(`UPDATE users SET objet = objet - 5, pocket = pocket + 1500 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]);
}
if (selected === '10') {
if (user.objet < 10) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true });
}
db.run(`UPDATE users SET objet = objet - 10, pocket = pocket + 10500 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]);
}
if (selected === '25') {
if (user.objet < 25) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true });
}
db.run(`UPDATE users SET objet = objet - 25, pocket = pocket + 31000 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]);
}
if (select <= 9) {
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setDescription(`Vous avez vendu \`${select}\`objet pour \`${200 * select}\`coins !`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
else if (select === 10){
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setDescription(`Vous avez vendu \`${select}\`objet pour \`10000\`coins !`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
else if (select === 25){
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setDescription(`Vous avez vendu \`${select}\`objet pour \`30000\`coins !`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
});
},
};
+18 -3
View File
@@ -6,7 +6,7 @@ module.exports = {
aliases: ['leaderboard', 'lb'],
description: 'Affiche le top 10 des membres du serveur.',
emote: '🏆',
utilisation: '[global|pocket|bank|reputation|niveau]',
utilisation: '[global|pocket|bank|reputation|niveau|teamdonnateur]',
permission: 0,
async execute(message, args, client) {
@@ -20,6 +20,8 @@ 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] === '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]) {
args[0] = 'coins'
} else {
@@ -71,6 +73,13 @@ module.exports = {
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) => {
if (err) reject(err);
resolve(rows);
});
});
}
const emoji = {
@@ -78,7 +87,8 @@ module.exports = {
pocket: '💰',
bank: '🏦',
reputation: '🔺',
niveau: '📊'
niveau: '📊',
teamdroper: '🎁'
}
let leaderboard = data.map((row, i) => {
@@ -139,7 +149,12 @@ module.exports = {
.setLabel('Niveau')
.setEmoji('📊')
.setDescription('Affiche le top en fonction du niveau')
.setValue('niveau')
.setValue('niveau'),
new StringSelectMenuOptionBuilder()
.setLabel('TeamDroper')
.setEmoji('🎁')
.setDescription('Affiche le top en fonction du nombre de coins donnés à une team')
.setValue('teamdroper')
);
const row = new ActionRowBuilder()
+19 -4
View File
@@ -15,17 +15,32 @@ module.exports = {
.setLabel('💰')
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
const row = new ActionRowBuilder()
.addComponents(btn);
const sentMessage = await message.reply({
/*const sentMessage = message.channel.send('_ _')
let contage = 0
while (contage == 100) {
setTimeout(() => {
sentMessage.edit(`> Chargement : **${contage}%**`)
contage = + 1
}, 450);
}
await sentMessage.edit({
content: `Appuis vite sur le bouton pour gagner ${args[0]}coins`,
components: [row],
allowedMentions: { repliedUser: false },
});
});*/
const sentMessage = message.reply({
content: `Appuis vite sur le bouton pour gagner ${args[0]}coins`,
components: [row],
allowedMentions: { repliedUser: false },
})
const filter = i => i.customId === 'confirm' && i.user.id !== message.author.id;
const collector = sentMessage.createMessageComponentCollector({ filter, time: 30000 })
const collector = sentMessage.createMessageComponentCollector({ filter, time: 45000 })
collector.on('collect', async (interaction) => {
sentMessage.edit({
content: `Le drop est gagner par <@${interaction.user.id}>`,
+98
View File
@@ -0,0 +1,98 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const embedColor = require('../../fonctions/embedColor.js');
const db = require('../../fonctions/database.js');
module.exports = {
aliases: ['roulette'],
description: 'Lance une roulette 100% gagante. (coûte une clef)',
emote: '🎲',
utilisation: '',
permission: 0,
async execute(message, args, client) {
const key = await new Promise((resolve, reject) => {
db.get(`SELECT key FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => {
if (err) {
reject(err);
} else {
resolve(row.key);
}
});
});
db.run(`UPDATE users SET key = key - 1 WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id])
const embed = new EmbedBuilder()
.setTitle('🗝️ Box')
.setDescription(`🪙👑🗝️\n💰🔺🪙\n🪙🪙🗝️`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag} | Il te reste ${key - 1}clef`, iconURL: message.author.displayAvatarURL() })
const msg = await message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
await new Promise(resolve => setTimeout(resolve, 1000));
const result = Math.floor(Math.random() * 30);
let gain = '';
let emoji = '';
let recompense = '';
if (result === 0) {
gain = '30000';
emoji = '💰';
recompense = 'bank';
} else if (result === 1) {
gain = '5';
emoji = '🗝️';
recompense = 'key';
} else if (result === 2) {
emoji = '👑';
recompense = 'couronne';
} else if (result % 2 === 0) {
gain = '5000';
emoji = '🪙';
recompense = 'pocket';
} else {
gain = '3';
emoji = '🔺';
recompense = 'reputation';
}
if (recompense !== 'couronne') {
await new Promise((resolve, reject) => {
db.run(`UPDATE users SET ${recompense} = ${recompense} + ? WHERE userId = ? AND guildId = ?`, [gain, message.author.id, message.guild.id], (err) => {
if (err) {
reject(err);
} else {
resolve();
}
});
});
msg.delete()
message.reply({ embeds: [
new EmbedBuilder()
.setTitle('🗝️ Box')
.setDescription(`${emoji, emoji, emoji}\n${emoji, emoji, emoji}\n${emoji, emoji, emoji}\n\nVous avez gagner ${gain}${recompense} !`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag} | Il te reste ${key - 1}clef`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
} else {
db.run(`UPDATE users SET bank = bank + ? WHERE userId = ? AND guildId = ?`, [15000, message.author.id, message.guild.id])
db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [5000, message.author.id, message.guild.id])
db.run(`UPDATE users SET reputation = reputation + ? WHERE userId = ? AND guildId = ?`, [5, message.author.id, message.guild.id])
db.run(`UPDATE users SET key = key + ? WHERE userId = ? AND guildId = ?`, [5, message.author.id, message.guild.id])
db.run(`UPDATE users SET xp = xp + ? WHERE userId = ? AND guildId = ?`, [50, message.author.id, message.guild.id])
db.run(`UPDATE users SET lvl = lvl + ? WHERE userId = ? AND guildId = ?`, [2, message.author.id, message.guild.id])
msg.delete()
message.reply({ embeds: [
new EmbedBuilder()
.setTitle('🗝️ Box')
.setDescription(`${emoji, emoji, emoji}\n${emoji, emoji, emoji}\n${emoji, emoji, emoji}\n\n## **Vous avez gagner \`15000\`coins en bank, \`5000\`coins en poche, \`5\`reputation, \`5\`clef, \`50\`xp et \`5\`niveau !!**`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag} | Il te reste ${key - 1}clef`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
}
}
};
+1 -1
View File
@@ -11,6 +11,7 @@ module.exports = {
async execute(message, args, client) {
let mise = 0
let face = `${args[1]}\` et \`${args[2]}`
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) {
@@ -53,7 +54,6 @@ module.exports = {
});
return
}
let face = `${args[1]}\` et \`${args[2]}`
if (isNaN(args[0]) && !args[0] == "all") {
embedColor(message.author.id, message.guild.id).then(color => {
const embed = new EmbedBuilder()
+4 -4
View File
@@ -87,9 +87,9 @@ module.exports = {
await new Promise(resolve => setTimeout(resolve, 7500));
let nombre1 = await Math.floor(Math.random() * 9)
let nombre2 = await Math.floor(Math.random() * 9)
let nombre3 = await Math.floor(Math.random() * 9)
let nombre1 = await Math.floor(Math.random() * 10)
let nombre2 = await Math.floor(Math.random() * (nombre1 + 1))
let nombre3 = await Math.floor(Math.random() * (nombre2 + 2))
let gain = 0;
if (nombre1 === nombre2 === nombre3) {
@@ -138,7 +138,7 @@ module.exports = {
embedColor(message.author.id, message.guild.id).then(color => {
const embed = new EmbedBuilder()
.setTitle('🪙 Machine à sous')
.setDescription(`Vous avez misé \`${args[0]}\` et les nombres sont : ${nombre1}, ${nombre2}, ${nombre3}. Vous avez perdu \`${0 - gain}\` !\n\nLa probabilité de ne pas perdre à ce jeu est inferieur à 3%. La mise en cas de gain est donc mutiplier par 10`)
.setDescription(`Vous avez misé \`${args[0]}\` et les nombres sont : ${nombre1}, ${nombre2}, ${nombre3}. Vous avez perdu \`${0 - gain}\` !\n\nLa probabilité de ne pas perdre à ce jeu est inferieur à 5%. La mise en cas de gain est donc mutiplier par 10`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
+2 -2
View File
@@ -4,7 +4,7 @@ const db = require('../../fonctions/database.js');
module.exports = {
aliases: ['braquage'],
description: 'Tente un braquage. (cout : 5coins)',
description: 'Tente un braquage. (cout : 5rep)',
emote: '🏦',
utilisation: '<@membre>',
permission: 0,
@@ -152,7 +152,7 @@ module.exports = {
embedColor(message.author.id, message.guild.id).then(color => {
const embed = new EmbedBuilder()
.setTitle('🔐 Braquage')
.setDescription(`Vous avez braquer ${args[0]} mais vous etes tomber sur un policier. Vous avez non seulement perdu votre gain mais le policier vous a obliger a payer \`3\`reputation de dedommagement`)
.setDescription(`Vous avez braquer <@${cible.id}> mais vous etes tomber sur un policier. Vous avez non seulement perdu votre gain mais le policier vous a obliger a payer \`3\`reputation de dedommagement`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
+177
View File
@@ -0,0 +1,177 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const embedColor = require('../../fonctions/embedColor.js');
const db = require('../../fonctions/database.js');
const cooldown = new Set();
module.exports = {
aliases: ['jugement', 'procès', 'proces'],
description: 'Juge un membre. (cout : 1reputation + 500coins)',
emote: '🏦',
utilisation: '<@membre>',
permission: 0,
async execute(message, args, client) {
/////////////////////////////// Calcule des données de la cible ////////////////////////////////////////////////
const cible = message.mentions.users.first();
if (!cible) {
const embed = new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Vous devez mentionner un membre.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
const cibleBD = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, cible.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
/////////////////////////////// Calcule des données du message.author /////////////////////////////////////////
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);
});
});
const lastJuge = user.lastJuge
if (lastJuge > Date.now() - 3600000) {
const embed = new EmbedBuilder()
.setTitle('Jugement Impossible')
.setDescription(`❌ Vous avez déjà juger récemment. Veuillez attendre ${Math.floor((lastBraquage + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir braquer à nouveau.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
let countPr = 0
let countContre = 0
const pour = new ButtonBuilder()
.setCustomId('pour')
.setLabel('✅ Pour la sanction')
.setStyle(ButtonStyle.Primary);
const contre = new ButtonBuilder()
.setCustomId('contre')
.setLabel('😡 Contre la sanction')
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(pour);
const msg = message.channel.send({
embeds: [
new EmbedBuilder()
.setTitle(`Jugement de ${cible.user.username}`)
.setDescription(`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setImage('')
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
],
components: [row],
allowedMentions: { repliedUser: false }
});
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
const filter = i => (i.customId === 'pour' || i.customId === 'contre') && i.user.id === message.author.id;
const collector = msg.createMessageComponentCollector({ filter, time: 60000 })
collector.on('collect', async (interaction) => {
if (cooldown.has(message.author.id)) { return message.reply({ content: 'Vous avez deja voté', ephemeral: true }) }
cooldown.add(message.author.id);
if (i.customId === 'contre') {
if (i.user.id == message.author.id) { countContre = + 2 } else { countContre = + 1 }
msg.edit({
embeds: [
new EmbedBuilder()
.setTitle(`Jugement de ${cible.user.username}`)
.setDescription(`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setImage('')
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
],
components: [row],
allowedMentions: { repliedUser: false }
})
}
else {
if (i.user.id == message.author.id) { countPr = + 2 } else { countPr = + 1 }
msg.edit({
embeds: [
new EmbedBuilder()
.setTitle(`Jugement de <${cible.id}>`)
.setDescription(`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setImage('https://tenor.com/view/judge-ace-attorney-ace-attorney-aa-gif-2687377729828245947')
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
],
components: [row],
allowedMentions: { repliedUser: false }
})
}
})
collector.on('end', () => {
if (countContre > countPr) {
msg.edit({
embeds: [
new EmbedBuilder()
.setTitle(`Jugement de ${cible.user.username}`)
.setDescription(`Les charges sont abandonnée`)
.setTimestamp()
.setImage('')
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], components: [], allowedMentions: { repliedUser: false } });
}
if (countContre == countPr) {
msg.edit({
embeds: [
new EmbedBuilder()
.setTitle(`Jugement de ${cible.user.username}`)
.setDescription(`Le jury n'arrive pas à ce mettre d'accord ||(${countPr}pour VS ${countContre}contre)|| Les charges sont donc appliquer mais à moitié, ${cible.user.username} ne pourras plus faire la commande \`work\`, \`daily\`, \`rob\`, \`hack\`, \`kill\`, \`braquage\`, \`rep\`, \`trep\` et \`recolt\` pour la prochaine heures plus le cooldown de chaque commande qui recommancera a la fin de ce delai.`)
.setTimestamp()
.setImage('')
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], components: [], allowedMentions: { repliedUser: false }
});
db.run(`UPDATE users SET lastRob =? AND lastRecolt =? AND lastWork =? AND lastDaily =? AND lastRep =? AND lastTrep =? AND lastHack =? AND lastKill =? AND lastBraquage =? WHERE guildId =? AND userId =?`, [Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, message.guild.id, cible.id], (err) => {
if (err) {
console.log(`${err}`)
}
})
}
if (countContre < countPr) {
msg.edit({
embeds: [
new EmbedBuilder()
.setTitle(`Jugement de ${cible.user.username}`)
.setDescription(`Le jury c'est mis d'accord, ${cible.user.username} ne pourras plus faire les commandes \`work\`, \`daily\`, \`rob\`, \`hack\`, \`kill\`, \`braquage\`, \`rep\`, \`trep\` et \`recolt\` pour __les deux__ prochaines heure __**plus le cooldown de chaque commande** qui recommancera a la **fin de ce delai**.__`)
.setTimestamp()
.setImage('')
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], components: [], allowedMentions: { repliedUser: false }
});
db.run(`UPDATE users SET lastRob =? AND lastRecolt =? AND lastWork =? AND lastDaily =? AND lastRep =? AND lastTrep =? AND lastHack =? AND lastKill =? AND lastBraquage =? WHERE guildId =? AND userId =?`, [Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, message.guild.id, cible.id], (err) => {
if (err) {
console.log(`${err}`)
}
})
}
/* CAR TOUJOURS EN TEST ET FLEMME DE ME DROP DES REP ET COINS A CHAQUE FOIS
db.run(`UPDATE users SET reputation = reputation - 1 WHERE guildId =? AND userId =?`, [message.guild.id, message.author.id])
db.run(`UPDATE users SET pocket = pocket - 500 WHERE guildId =? AND userId =?`, [message.guild.id, message.author.id])
*/
});
}
};
+14 -3
View File
@@ -90,8 +90,19 @@ module.exports = {
teamDescription = m.content;
let idBase = teamName.toLowerCase().replace(/ /g, '');
idBase = idBase.replace('0', '');
idBase = idBase.replace('1', '');
idBase = idBase.replace('2', '');
idBase = idBase.replace('3', '');
idBase = idBase.replace('4', '');
idBase = idBase.replace('5', '');
idBase = idBase.replace('6', '');
idBase = idBase.replace('7', '');
idBase = idBase.replace('8', '');
idBase = idBase.replace('9', '');
let id = idBase;
let increment = 1;
let increment = 0;
let exists = true;
do {
await new Promise((resolve, reject) => {
@@ -101,7 +112,7 @@ module.exports = {
} else {
exists = !!row;
if (exists) {
increment++;
increment += 1;
id = idBase + increment;
} else {
db.run(`INSERT INTO teams (guildId, id, name, description) VALUES (?, ?, ?, ?)`, [message.guild.id, id, teamName, teamDescription]);
@@ -115,7 +126,7 @@ module.exports = {
const embed = new EmbedBuilder()
.setTitle('🛡️ Création de team')
.setDescription(`Votre team a été créée avec succès !\n\n**ID :** ${id}\n**Nom :** ${teamName}\n**Description :** ${teamDescription}\n\nVous pouvez maintenant inviter des membres dans votre team avec la commande \`&teaminvite\`.\n\nPour quitter la team, utilisez la commande \`&teamleave\`.`)
.setDescription(`Votre team a été créée avec succès !\n\n**ID :** ${id}\n**Nom :** ${teamName}\n**Description :** ${teamDescription}\n\nVous pouvez maintenant inviter des membres dans votre team avec la commande \`&teaminvite\`.\n\nPour quitter la team, utilisez la commande \`&teamleave\` (vous deverez d'abord donner la team a quelqu'un d'autre).`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
@@ -1,113 +1,113 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
module.exports = {
aliases: ['tretirer', 'teamwithdraw', 'teamretirer', 'teamwh', 'twh'],
description: 'Retire de l\'argent de la banque de votre team.',
emote: '💰',
utilisation: '<montant|all>',
permission: 0,
async execute(message, args, client) {
if (args.length !== 1) {
const embed = new EmbedBuilder()
.setTitle('Retrait Impossible')
.setDescription('❌ Vous devez spécifier un montant à retirer.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (args[0] !== 'all' && isNaN(args[0])) {
const embed = new EmbedBuilder()
.setTitle('Retrait Impossible')
.setDescription('❌ Vous devez spécifier un montant valide à retirer.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (args[0] < 1) {
const embed = new EmbedBuilder()
.setTitle('Retrait Impossible')
.setDescription('❌ Vous devez retirer au moins 1 coin.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
const teamRole = await new Promise((resolve, reject) => {
db.get(`SELECT teamRole FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row.teamRole);
});
});
if (!teamRole || (teamRole !== 'officier' && teamRole !== 'owner')) {
const embed = new EmbedBuilder()
.setTitle('Retrait Impossible')
.setDescription('❌ Vous n\'avez pas la permission de retirer de l\'argent de la banque de l\'équipe.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
const team = await new Promise((resolve, reject) => {
db.get(`SELECT teamId FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row.teamId);
});
});
if (!team) {
const embed = new EmbedBuilder()
.setTitle('Retrait Impossible')
.setDescription('❌ Vous n\'êtes pas dans une team.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else {
const bank = await new Promise((resolve, reject) => {
db.get(`SELECT bank FROM teams WHERE id = ? AND guildId = ?`, [team, message.guild.id], (err, row) => {
if (err) reject(err);
resolve(row.bank);
});
});
let amount;
if (args[0] === 'all') {
amount = bank;
} else if (args[0] > bank) {
const embed = new EmbedBuilder()
.setTitle('Retrait Impossible')
.setDescription(`❌ Votre team n'a pas assez d'argent dans la banque pour retirer cette somme.\n\n💰 Votre team a actuellement **${bank} coins** dans la banque.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else {
amount = args[0];
}
db.run(`UPDATE users SET pocket = pocket + ? WHERE guildId = ? AND userId = ?`, [amount, message.guild.id, message.author.id]);
db.run(`UPDATE teams SET bank = bank - ? WHERE id = ? AND guildId = ?`, [amount, team, message.guild.id]);
const embed = new EmbedBuilder()
.setTitle('Retrait Effectué')
.setDescription(`💰 Vous avez retiré **${amount}** coins de la banque de votre team.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return 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: ['tretirer', 'teamwithdraw', 'teamretirer', 'teamwh', 'twh'],
description: 'Retire de l\'argent de la banque de votre team.',
emote: '💰',
utilisation: '<montant|all>',
permission: 0,
async execute(message, args, client) {
if (args.length !== 1) {
const embed = new EmbedBuilder()
.setTitle('Retrait Impossible')
.setDescription('❌ Vous devez spécifier un montant à retirer.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (args[0] !== 'all' && isNaN(args[0])) {
const embed = new EmbedBuilder()
.setTitle('Retrait Impossible')
.setDescription('❌ Vous devez spécifier un montant valide à retirer.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (args[0] < 1) {
const embed = new EmbedBuilder()
.setTitle('Retrait Impossible')
.setDescription('❌ Vous devez retirer au moins 1 coin.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
const teamRole = await new Promise((resolve, reject) => {
db.get(`SELECT teamRole FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row.teamRole);
});
});
if (!teamRole || (teamRole !== 'officier' && teamRole !== 'owner')) {
const embed = new EmbedBuilder()
.setTitle('Retrait Impossible')
.setDescription('❌ Vous n\'avez pas la permission de retirer de l\'argent de la banque de l\'équipe.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
const team = await new Promise((resolve, reject) => {
db.get(`SELECT teamId FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row.teamId);
});
});
if (!team) {
const embed = new EmbedBuilder()
.setTitle('Retrait Impossible')
.setDescription('❌ Vous n\'êtes pas dans une team.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else {
const bank = await new Promise((resolve, reject) => {
db.get(`SELECT bank FROM teams WHERE id = ? AND guildId = ?`, [team, message.guild.id], (err, row) => {
if (err) reject(err);
resolve(row.bank);
});
});
let amount;
if (args[0] === 'all') {
amount = bank;
} else if (args[0] > bank) {
const embed = new EmbedBuilder()
.setTitle('Retrait Impossible')
.setDescription(`❌ Votre team n'a pas assez d'argent dans la banque pour retirer cette somme.\n\n💰 Votre team a actuellement **${bank} coins** dans la banque.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else {
amount = args[0];
}
db.run(`UPDATE users SET pocket = pocket + ?, teamDroper = teamDroper - ? WHERE guildId = ? AND userId = ?`, [amount, amount, message.guild.id, message.author.id]);
db.run(`UPDATE teams SET bank = bank - ? WHERE id = ? AND guildId = ?`, [amount, team, message.guild.id]);
const embed = new EmbedBuilder()
.setTitle('Retrait Effectué')
.setDescription(`💰 Vous avez retiré **${amount}** coins de la banque de votre team.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
},
};
+4 -4
View File
@@ -63,9 +63,9 @@ module.exports = {
}
const team = await new Promise((resolve, reject) => {
db.get(`SELECT teamId FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row.teamId);
resolve(row);
});
});
if (!team) {
@@ -78,8 +78,8 @@ module.exports = {
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else {
db.run(`UPDATE users SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`, [amout, message.guild.id, message.author.id]);
db.run(`UPDATE teams SET bank = bank + ? WHERE id = ?`, [amout, team]);
db.run(`UPDATE users SET pocket = pocket - ?, teamDroper = teamDroper + ? WHERE guildId = ? AND userId = ?`, [amout, amout, message.guild.id, message.author.id]);
db.run(`UPDATE teams SET bank = bank + ? WHERE guildId = ? AND id = ?`, [amout, message.guild.id, team.id]);
const embed = new EmbedBuilder()
.setTitle('Dépôt Effectué')
+61 -13
View File
@@ -5,14 +5,14 @@ const embedColor = require('../../fonctions/embedColor.js');
module.exports = {
aliases: ['t', 'tinfo', 'teaminfo'],
description: 'Affiche les informations de votre team.',
emote: '🛡️',
emote: '🛡️',
utilisation: '',
permission: 0,
async execute(message, args, client) {
const member = message.mentions.members.first() || message.member;
const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [message.guild.id, message.guild.id, member], (err, row) => {
db.get(`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [message.guild.id, message.guild.id, member.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
@@ -28,6 +28,21 @@ module.exports = {
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else {
const alliance = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM teams WHERE guildId = ? AND id = ?)`, [message.guild.id, message.guild.id, team.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
let Aname
if (alliance) {
Aname = alliance.name
}
else {
Aname = 'aucune alliance'
}
const memberlist = await new Promise((resolve, reject) => {
db.all(`SELECT userId, teamRole FROM users WHERE guildId = ? AND teamId = ?`, [message.guild.id, team.id], (err, rows) => {
if (err) reject(err);
@@ -51,24 +66,57 @@ module.exports = {
CadenaS = "🔐"
}
//////////////////////////////////////////////////// TEAM DROPER ///////////////////////////////////////////////////////////////////
data = await new Promise((resolve, reject) => {
db.all(`SELECT userId, teamDroper AS coins FROM users WHERE teamId = ? ORDER BY coins DESC LIMIT 10`, [team.id], (err, rows) => {
if (err) reject(err);
resolve(rows);
});
});
let leaderboard = data.map((row, i) => {
let position;
switch (i) {
case 0:
position = ':first_place:';
break;
case 1:
position = ':second_place:';
break;
case 2:
position = ':third_place:';
break;
default:
position = `**${i + 1}.**`;
}
return `${position} <@${row.userId}> - \`${row.coins}\`coins donné(s)`;
}).join('\n');
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
const embed = new EmbedBuilder()
.setTitle('🛡️ Informations de `' + team.name + '`:')
.setDescription(`**Id:** \`${team.id}\`\n**Description:** \`${team.description}\`\n**Banque:** \`${team.bank}\`coins\n**Niveau:** \`${team.level}\`\n**Reputation:** \`${team.reputation}\`\n\n**Soldats:** \`${team.soldiers}\`\n**Soldats blessés:** \`${team.woundedSoldiers}\`\n**Niveau du camp:** \`${team.campLevel}\`\n**Tourelles:** \`${team.turrets}\`\n**Cadenas:** \`${CadenaS}\`\n\n**Membres (\`${memberlist.length}\`):**\n${memberlist.map(member => `**${member.teamRole}:** <@${member.userId}>`).join('\n')}`)
.setDescription(`**Id:** \`${team.id}\`\n**Description:** \`${team.description}\`\n**Banque:** \`${team.bank}\`coins\n**Niveau:** \`${team.level}\`\n**Reputation:** \`${team.reputation}\`\n\n**Soldats:** \`${team.soldiers}\`\n**Soldats blessés:** \`${team.woundedSoldiers}\`\n**Niveau du camp:** \`${team.campLevel}\`\n**Tourelles:** \`${team.turrets}\`\n**Cadenas:** \`${CadenaS}\`\n\n\nAlliance : ${Aname}\n\n\n**Membres (\`${memberlist.length}\`):**\n${memberlist.map(member => `**${member.teamRole}:** <@${member.userId}>`).join('\n')}\n`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
const urlRegex1 = /(https?:\/\/[^\s]+)/g;
if (team.icon && urlRegex1.test(team.icon)) {
embed.setThumbnail(team.icon);
}
const urlRegex2 = /(https?:\/\/[^\s]+)/g;
if (team.banner && urlRegex2.test(team.banner)) {
embed.setImage(team.banner);
}
const embedTopDonnateur = new EmbedBuilder()
.setTitle('**Les 10 meilleurs donnateurs de la team sont :**')
.setDescription(`${leaderboard}`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
const urlRegex1 = /(https?:\/\/[^\s]+)/g;
if (team.icon && urlRegex1.test(team.icon)) {
embed.setThumbnail(team.icon);
}
const urlRegex2 = /(https?:\/\/[^\s]+)/g;
if (team.banner && urlRegex2.test(team.banner)) {
embedTopDonnateur.setImage(team.banner);
}
return message.reply({ embeds: [embed, embedTopDonnateur], allowedMentions: { repliedUser: false } });
}
},
};
+10
View File
@@ -38,6 +38,16 @@ module.exports = {
allowedMentions: { repliedUser: false }
});
}
const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [message.guild.id, message.guild.id, userToInvite.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
if (team) {
return message.channel.reply('<@' + userToInvite.id + '> a déjà une team')
}
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
+1 -1
View File
@@ -74,7 +74,7 @@ module.exports = {
const embed = new EmbedBuilder()
.setTitle('Reputation ajouté !')
.setDescription('Vous avez ajouter une reputation à la team `' + team.name + '`, qui a maintement `' + team.reputation + 1 + '` reputation !')
.setDescription('Vous avez ajouter une reputation à la team `' + team.name + '`, qui a maintement `' + (team.reputation + 1) + '` reputation !')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
+1 -1
View File
@@ -6,7 +6,7 @@ module.exports = {
async execute(guild) {
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]);
db.run(`INSERT OR IGNORE INTO users (guildId, guildName, userId, userName) VALUES (?, ?)`, [guild.id, guild.name, member.id, member.name]);
});
},
};
+1 -1
View File
@@ -4,6 +4,6 @@ const db = require('../fonctions/database.js');
module.exports = {
name: Events.GuildMemberAdd,
async execute(member) {
db.run(`INSERT INTO users (guildId, userId) VALUES (?, ?)`, [member.guild.id, member.id]);
db.run(`INSERT INTO users (guildId, guildName, userId, userName) VALUES (?, ?)`, [member.guild.id, member.guild.name, member.id, member.name]);
},
};
+25 -1
View File
@@ -1,11 +1,33 @@
const { Message, Events } = require("discord.js");
const db = require('../fonctions/database.js');
//const getPermissionLevel = require("../fonctions/getPermissionLevel");
var loggT = require('../loggerT.js');
var loggE = require('../loggerE.js');
const getPermissionLevel = require("../fonctions/getPermissionLevel.js");
module.exports = {
name: Events.MessageCreate,
async execute(message, client) {
if (message.author.bot) return;
if (message.content == "<@" + client.user.id + ">") {
const command = client.commands.get('help');
try {
command.execute(message, null, client);
console.log(`[&] ${message.guild.name} | ${message.author.tag} | ${command.name}`.blue)
loggT(`[&] ${message.guild.name} | ${message.author.tag} | ${command.name}`)
} catch (error) {
console.error(error);
loggerT(error)
message.reply("Erreur lors de l'exécution de la commande");
}
}
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 == true) { return }
const prefix = db.get(`SELECT value FROM config WHERE guildId = ? AND name = ?`, [message.guild.id, 'prefix'])?.value || '&';
if (message.content.startsWith(prefix)) {
@@ -22,9 +44,11 @@ module.exports = {
try {
command.execute(message, args, client);
console.log(`[&] ${message.guild.name} | ${message.author.tag} | ${command.name}`.blue)
console.log(`[${prefix}}] ${message.guild.name} | ${message.author.tag} | ${command.name}`.blue)
loggT(`[${prefix}] ${message.guild.name} | ${message.author.tag} | ${command.name}`)
} catch (error) {
console.error(error);
loggE(error)
message.reply("Erreur lors de l'exécution de la commande");
}
} else if (message.content === `<@!${client.user.id}>` || message.content === `<@${client.user.id}>`) {
+10 -9
View File
@@ -8,6 +8,14 @@ module.exports = {
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 == true) { return }
//////////////////////////////////////////////////////////////////
/////////////////////////// xp systeme ///////////////////////////
@@ -34,22 +42,15 @@ module.exports = {
/////////////////////////// lvl systeme //////////////////////////
//////////////////////////////////////////////////////////////////
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 = xp - ?, lvl = lvl + 1, pocket = pocket + ?, reputation = reputation + ? WHERE guildId = ? AND userId = ?`,
[100 * user.lvl, (Math.ceil((user.lvl + 1) / 5)) * 500, Math.ceil((user.lvl + 1) / 5), message.guild.id, message.author.id]
[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 \`${(Math.ceil((user.lvl + 1) / 5)) * 500}\` 🪙 et \`${Math.ceil((user.lvl + 1) / 5)}\` 🔺 !`)
.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] });
+25 -5
View File
@@ -1,10 +1,13 @@
const { Events, ActivityType } = require('discord.js');
const db = require('../fonctions/database.js');
var loggT = require('../loggerT.js');
var loggE = require('../loggerE.js');
module.exports = {
name: Events.ClientReady,
async execute(client) {
console.log(`[READY] ${client.user.tag} est prêt ||| ${client.guilds.cache.size.toLocaleString('fr-FR')} serveurs | ${client.guilds.cache.reduce((acc, guild) => acc + guild.memberCount, 0).toLocaleString('fr-FR')} 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`)
client.user.setPresence({
activities: [{
@@ -19,7 +22,7 @@ module.exports = {
client.guilds.cache.forEach(guild => {
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]);
db.run(`INSERT OR IGNORE INTO users (guildId, guildName, userId, userName) VALUES (?, ?, ?, ?)`, [guild.id, guild.name, member.id, member.name]);
});
});
@@ -29,31 +32,44 @@ module.exports = {
guild.members.cache.filter(member => member.voice.channel).forEach(member => {
if (member.voice.selfMute == true) {
db.run('UPDATE users SET pocket = pocket + 50 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
db.run('UPDATE users SET xp = xp + 25 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
db.run('UPDATE users SET xp = xp + 5 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
} else {
db.run('UPDATE users SET pocket = pocket + 100 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
db.run('UPDATE users SET xp = xp + 50 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
db.run('UPDATE users SET xp = xp + 10 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
}
});
guild.members.cache.filter(member => member.voice.channel && member.voice.streaming).forEach(member => {
db.run('UPDATE users SET pocket = pocket + 200 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
db.run('UPDATE users SET xp = xp + 100 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
db.run('UPDATE users SET xp = xp + 20 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
});
guild.members.cache.filter(member => member.voice.channel && member.voice.selfVideo).forEach(member => {
db.run('UPDATE users SET pocket = pocket + 200 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
db.run('UPDATE users SET xp = xp + 100 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
db.run('UPDATE users SET xp = xp + 20 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
});
});
}, 15 * 60 * 1000);
setInterval(async () => {
const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM teams`, (err, row) => {
if (err) reject(err);
resolve(row);
});
});
if (team.location == 0) return
db.run(`UPDATE teams SET bank = bank + ? WHERE guildId = ? AND userId = ?`, [team.location, message.guild.id, message.author.id]);
}, 1 * 60 * 1000)
//AntiCrash
process.on('unhandledRejection', (error) => {
if (error.code == "10064") return
if (error.code == "10008") return
console.log(' [antiCrash] :: Unhandled Rejection/Catch'.red);
console.log(error);
loggE(error)
});
process.on("uncaughtException", (error, origin) => {
@@ -62,6 +78,7 @@ module.exports = {
console.log(' [antiCrash] :: Uncaught Exception/Catch'.red);
console.log(error);
console.log('Information supplémentaire:', origin);
loggE(error)
});
process.on('uncaughtExceptionMonitor', (error, origin) => {
@@ -70,6 +87,7 @@ module.exports = {
console.log(' [antiCrash] :: Uncaught Exception Monitor/Catch'.red);
console.log(error);
console.log('Information supplémentaire:', origin);
loggE(error)
});
process.on('beforeExit', (code) => {
@@ -77,6 +95,7 @@ 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) => {
@@ -84,6 +103,7 @@ module.exports = {
if (error.code == "10008") return
console.log(' [antiCrash] :: Exit'.red);
console.log('Code de sortie:', code);
loggE(error)
});
},
+22
View File
@@ -11,28 +11,35 @@ db.run(`CREATE TABLE IF NOT EXISTS config (
db.run(`CREATE TABLE IF NOT EXISTS users (
guildId TEXT,
guildName TEXT,
userId TEXT,
userName TEXT,
pocket INTEGER DEFAULT 0,
bank INTEGER DEFAULT 0,
reputation INTEGER DEFAULT 0,
lvl INTERGER DEFAULT 0,
xp INTERGER DEFAULT 0,
objet INTERGER DEFAULT 0,
key INTERGER DEFAULT 0,
buyer BOOLEAN DEFAULT FALSE,
owner BOOLEAN DEFAULT FALSE,
whitelist BOOLEAN DEFAULT FALSE,
blacklist BOOLEAN DEFAULT FALSE,
antiRob INTEGER DEFAULT 0,
lastRob INTEGER DEFAULT 0,
lastRecolt INTEGER DEFAULT 0,
lastWork INTEGER DEFAULT 0,
lastDaily INTEGER DEFAULT 0,
lastRep INTERGER DEFAULT 0,
lastTrep INTERGER DEFAULT 0,
lastArep INTERGER DEFAULT 0,
lastHack INTERGER DEFAULT 0,
lastKill INTERGER DEFAULT 0,
lastBraquage INTERGER DEFAULT 0,
job TEXT,
teamId TEXT,
teamRole TEXT,
teamDroper INTERGER DEFAULT 0,
embed TEXT,
PRIMARY KEY (guildId, userId)
)`);
@@ -46,12 +53,27 @@ db.run(`CREATE TABLE IF NOT EXISTS teams (
banner TEXT,
reputation INTERGER DEFAULT 0,
bank INTEGER DEFAULT 0,
location INTERGER DEFAULT 0,
level INTEGER DEFAULT 1,
padlock INTEGER DEFAULT 5,
soldiers INTEGER DEFAULT 0,
woundedSoldiers INTEGER DEFAULT 0,
campLevel INTEGER DEFAULT 1,
turrets INTEGER DEFAULT 0,
alliancesId TEXT,
PRIMARY KEY (guildId, id)
)`);
db.run(`CREATE TABLE IF NOT EXISTS alliances (
guildId TEXT,
id TEXT,
creator TEXT,
name TEXT,
description TEXT,
icon TEXT,
banner TEXT,
reputation INTERGER DEFAULT 0,
bank INTEGER DEFAULT 0,
PRIMARY KEY (guildId, id)
)`);
+38
View File
@@ -0,0 +1,38 @@
const fs = require("fs")
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////
////////// logs d'erreur
//////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function saveLOGE(LOG) {
try {
let data = fs.readFileSync('logs/ERROR.txt', 'utf8');
const log = data.split('\n');
log.push(...LOG);
data = log.join('\n');
fs.writeFileSync('logs/ERROR.txt', data);
} catch (err) {
console.log(err);
}
}
module.exports = function loggE(erreur) {
const config = require("./config.json");
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ TIME /////////////////////////////////////////////////////////////////////////////
const d = new Date()
var jours = d.getDate().toString().padStart(2, "0")
var mois = d.getMonth().toString().padStart(2, "0") + 1
var année = d.getFullYear().toString().padStart(2, "0")
var heures = d.getHours().toString().padStart(2, "0")
var minutes = d.getMinutes().toString().padStart(2, "0")
var secondes = d.getSeconds().toString().padStart(2, "0")
var milliseconds = d.getMilliseconds().toString().padStart(3, "0")
const time = ` ${jours}/${mois}/${année} =>> ${heures}h ${minutes}m ${secondes}s ${milliseconds}ms `
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ CODE DE LOG ///////////////////////////////////////////////////////////////////////
const text = erreur
const ERROR = `[ERROR] || ${time} || ${text}`
const LOG = [];
LOG.push(ERROR);
saveLOGE(LOG);
}
+51
View File
@@ -0,0 +1,51 @@
const fs = require("fs")
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////
////////// logs textuel
//////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function saveLOGT(LOG) {
try {
let data = fs.readFileSync('logs/TEXT.txt', 'utf8');
const log = data.split('\n');
log.push(...LOG);
data = log.join('\n');
fs.writeFileSync('logs/TEXT.txt', data);
} catch (err) {
console.log(err);
}
}
module.exports = function loggT(msg) {
const config = require("./config.json");
if (config.test == true) {
return
}
if (!msg == "\n" || !msg == "\n\n") {
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ TIME /////////////////////////////////////////////////////////////////////////////
const d = new Date()
var jours = d.getDate().toString().padStart(2, "0")
var mois = d.getMonth().toString().padStart(2, "0")
var année = d.getFullYear().toString().padStart(2, "0")
var heures = d.getHours().toString().padStart(2, "0")
var minutes = d.getMinutes().toString().padStart(2, "0")
var secondes = d.getSeconds().toString().padStart(2, "0")
var milliseconds = d.getMilliseconds().toString().padStart(3, "0")
const time = ` ${jours}/${mois}/${année} =>> ${heures}h ${minutes}m ${secondes}s ${milliseconds}ms `
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ CODE DE LOG ///////////////////////////////////////////////////////////////////////
const text = msg
const MSG_T = `[TEXT] || ${time} || ${text}`
const LOG = [];
LOG.push(MSG_T);
saveLOGT(LOG);
}
else {
const MSG_T = `\n\n`
const LOG = [];
LOG.push(MSG_T);
saveLOGT(LOG);
}
}
+5
View File
@@ -0,0 +1,5 @@
[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
[ERROR] || 20/051/2024 =>> 18h 37m 19s 661ms || TypeError: team.forEach is not a function
+26
View File
@@ -0,0 +1,26 @@
[TEXT] || 20/05/2024 =>> 18h 35m 54s 210ms || 5 events loaded
[TEXT] || 20/05/2024 =>> 18h 35m 54s 368ms || 63 commands loaded
[TEXT] || 20/05/2024 =>> 18h 35m 55s 676ms || [READY] Coins#9235 est prêt ||| 4 serveurs | 479 utilisateurs
[TEXT] || 20/05/2024 =>> 18h 35m 55s 794ms || [READY] Coins#9235 est prêt ||| 4 serveurs | 479 utilisateurs
[TEXT] || 20/05/2024 =>> 18h 36m 17s 490ms || 5 events loaded
[TEXT] || 20/05/2024 =>> 18h 36m 17s 606ms || 63 commands loaded
[TEXT] || 20/05/2024 =>> 18h 36m 19s 349ms || [READY] Coins#9235 est prêt ||| 4 serveurs | 479 utilisateurs
[TEXT] || 20/05/2024 =>> 18h 36m 19s 504ms || [READY] Coins#9235 est prêt ||| 4 serveurs | 479 utilisateurs
[TEXT] || 20/05/2024 =>> 18h 38m 05s 285ms || 5 events loaded
[TEXT] || 20/05/2024 =>> 18h 38m 05s 419ms || 63 commands loaded
[TEXT] || 20/05/2024 =>> 18h 38m 06s 748ms || [READY] Coins#9235 est prêt ||| 4 serveurs | 479 utilisateurs
[TEXT] || 20/05/2024 =>> 18h 38m 06s 884ms || [READY] Coins#9235 est prêt ||| 4 serveurs | 479 utilisateurs
[TEXT] || 20/05/2024 =>> 18h 38m 39s 660ms || [&] Serveur Bot Coins | .power.x | box
[TEXT] || 20/05/2024 =>> 18h 38m 39s 707ms || [&] Serveur Bot Coins | .power.x | box
[TEXT] || 21/05/2024 =>> 07h 17m 25s 282ms || 5 events loaded
[TEXT] || 21/05/2024 =>> 07h 17m 25s 369ms || 63 commands loaded
[TEXT] || 21/05/2024 =>> 07h 17m 26s 194ms || [READY] Coins#9235 est prêt ||| 4 serveurs | 479 utilisateurs
[TEXT] || 21/05/2024 =>> 07h 17m 26s 280ms || [READY] Coins#9235 est prêt ||| 4 serveurs | 479 utilisateurs
+4
View File
@@ -4,6 +4,8 @@ const loadCommands = require("./fonctions/loadCommands");
const loadEvents = require("./fonctions/loadEvents");
const client = new Client({intents: new IntentsBitField(3276799)});
const color = require('colors')
var loggT = require('./loggerT.js');
var loggE = require('./loggerE.js');
client.events = new Collection();
client.commands = new Collection();
@@ -11,5 +13,7 @@ client.config = require("./config.json");
console.log(`${loadEvents(client, '..\\events')} events loaded`.grey);
console.log(`${loadCommands(client, '..\\commands')} commands loaded`.grey);
loggT(`${loadEvents(client, '..\\events')} events loaded`)
loggT(`${loadCommands(client, '..\\commands')} commands loaded`)
client.login(process.env.TOKEN);