This commit is contained in:
arthur
2024-06-21 16:17:47 +02:00
40 changed files with 2047 additions and 337 deletions
+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() });