mirror of
https://github.com/arthur-pbty/bot-discord-coins.git
synced 2026-06-03 23:36:29 +02:00
Merge branch 'main' of https://github.com/arthur-pbty/bot-discord-coins
This commit is contained in:
@@ -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();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -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: [] });
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -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 } });
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -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 } });
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -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 } });
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -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
@@ -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 } });
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
@@ -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 } });
|
||||
});
|
||||
},
|
||||
};
|
||||
@@ -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 } });
|
||||
},
|
||||
};
|
||||
@@ -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
@@ -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 } })
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -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() });
|
||||
|
||||
@@ -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 } });
|
||||
},
|
||||
};
|
||||
@@ -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()
|
||||
|
||||
@@ -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
@@ -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()
|
||||
|
||||
@@ -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}>`,
|
||||
|
||||
@@ -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 } })
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -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()
|
||||
|
||||
@@ -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() })
|
||||
|
||||
@@ -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() })
|
||||
|
||||
@@ -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])
|
||||
*/
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -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 } });
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -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
@@ -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 } });
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -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) => {
|
||||
|
||||
@@ -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() });
|
||||
|
||||
Reference in New Issue
Block a user