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:
+22
@@ -0,0 +1,22 @@
|
||||
&embed
|
||||
&shop
|
||||
&tshop
|
||||
&adep
|
||||
&arep
|
||||
&awh
|
||||
&blacklistAdd
|
||||
&blacklistRemove
|
||||
&servers
|
||||
&sell
|
||||
&drop
|
||||
&box
|
||||
&juge
|
||||
&tcadenas
|
||||
&tleave
|
||||
&trep
|
||||
&tdelete
|
||||
&tdemote
|
||||
&tpromote
|
||||
&tedit
|
||||
&tkick
|
||||
&towner
|
||||
@@ -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() });
|
||||
|
||||
@@ -6,7 +6,7 @@ module.exports = {
|
||||
async execute(guild) {
|
||||
db.run(`INSERT OR IGNORE INTO config (guildId, name, value) VALUES (?, ?, ?)`, [guild.id, 'prefix', '&']);
|
||||
guild.members.cache.forEach(member => {
|
||||
db.run(`INSERT OR IGNORE INTO users (guildId, userId) VALUES (?, ?)`, [guild.id, member.id]);
|
||||
db.run(`INSERT OR IGNORE INTO users (guildId, guildName, userId, userName) VALUES (?, ?)`, [guild.id, guild.name, member.id, member.name]);
|
||||
});
|
||||
},
|
||||
};
|
||||
@@ -4,6 +4,6 @@ const db = require('../fonctions/database.js');
|
||||
module.exports = {
|
||||
name: Events.GuildMemberAdd,
|
||||
async execute(member) {
|
||||
db.run(`INSERT INTO users (guildId, userId) VALUES (?, ?)`, [member.guild.id, member.id]);
|
||||
db.run(`INSERT INTO users (guildId, guildName, userId, userName) VALUES (?, ?)`, [member.guild.id, member.guild.name, member.id, member.name]);
|
||||
},
|
||||
};
|
||||
+25
-1
@@ -1,11 +1,33 @@
|
||||
const { Message, Events } = require("discord.js");
|
||||
const db = require('../fonctions/database.js');
|
||||
//const getPermissionLevel = require("../fonctions/getPermissionLevel");
|
||||
var loggT = require('../loggerT.js');
|
||||
var loggE = require('../loggerE.js');
|
||||
const getPermissionLevel = require("../fonctions/getPermissionLevel.js");
|
||||
|
||||
module.exports = {
|
||||
name: Events.MessageCreate,
|
||||
async execute(message, client) {
|
||||
if (message.author.bot) return;
|
||||
if (message.content == "<@" + client.user.id + ">") {
|
||||
const command = client.commands.get('help');
|
||||
try {
|
||||
command.execute(message, null, client);
|
||||
console.log(`[&] ${message.guild.name} | ${message.author.tag} | ${command.name}`.blue)
|
||||
loggT(`[&] ${message.guild.name} | ${message.author.tag} | ${command.name}`)
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
loggerT(error)
|
||||
message.reply("Erreur lors de l'exécution de la commande");
|
||||
}
|
||||
}
|
||||
const user = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
if (user.blacklist == true) { return }
|
||||
|
||||
const prefix = db.get(`SELECT value FROM config WHERE guildId = ? AND name = ?`, [message.guild.id, 'prefix'])?.value || '&';
|
||||
if (message.content.startsWith(prefix)) {
|
||||
@@ -22,9 +44,11 @@ module.exports = {
|
||||
|
||||
try {
|
||||
command.execute(message, args, client);
|
||||
console.log(`[&] ${message.guild.name} | ${message.author.tag} | ${command.name}`.blue)
|
||||
console.log(`[${prefix}}] ${message.guild.name} | ${message.author.tag} | ${command.name}`.blue)
|
||||
loggT(`[${prefix}] ${message.guild.name} | ${message.author.tag} | ${command.name}`)
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
loggE(error)
|
||||
message.reply("Erreur lors de l'exécution de la commande");
|
||||
}
|
||||
} else if (message.content === `<@!${client.user.id}>` || message.content === `<@${client.user.id}>`) {
|
||||
|
||||
@@ -8,6 +8,14 @@ module.exports = {
|
||||
async execute(message, client) {
|
||||
if (message.channel.type === "DM") return;
|
||||
if (message.author.bot) return;
|
||||
|
||||
const user = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
if (user.blacklist == true) { return }
|
||||
|
||||
//////////////////////////////////////////////////////////////////
|
||||
/////////////////////////// xp systeme ///////////////////////////
|
||||
@@ -34,22 +42,15 @@ module.exports = {
|
||||
/////////////////////////// lvl systeme //////////////////////////
|
||||
//////////////////////////////////////////////////////////////////
|
||||
|
||||
const user = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
|
||||
if (user.xp >= 100 * user.lvl) {
|
||||
db.run(
|
||||
`UPDATE users SET xp = xp - ?, lvl = lvl + 1, pocket = pocket + ?, reputation = reputation + ? WHERE guildId = ? AND userId = ?`,
|
||||
[100 * user.lvl, (Math.ceil((user.lvl + 1) / 5)) * 500, Math.ceil((user.lvl + 1) / 5), message.guild.id, message.author.id]
|
||||
[100 * user.lvl, ((user.lvl + 1) * 250), Math.ceil((user.lvl + 1) / 5), message.guild.id, message.author.id]
|
||||
);
|
||||
|
||||
const embedlvl = new EmbedBuilder()
|
||||
.setTitle("Nouveau niveau !")
|
||||
.setDescription(`Bravo ${message.author}, tu es passé niveau ${user.lvl + 1} sur le serveur \`${message.guild.name}\` !\nTu as reçu \`${(Math.ceil((user.lvl + 1) / 5)) * 500}\` 🪙 et \`${Math.ceil((user.lvl + 1) / 5)}\` 🔺 !`)
|
||||
.setDescription(`Bravo ${message.author}, tu es passé niveau ${user.lvl + 1} sur le serveur \`${message.guild.name}\` !\nTu as reçu \`${(user.lvl + 1) * 250}\` 🪙 et \`${Math.ceil((user.lvl + 1) / 5)}\` 🔺 !`)
|
||||
.setColor(await embedColor(message.author.id, message.guild.id));
|
||||
|
||||
message.author.send({ embeds: [embedlvl] });
|
||||
|
||||
+25
-5
@@ -1,10 +1,13 @@
|
||||
const { Events, ActivityType } = require('discord.js');
|
||||
const db = require('../fonctions/database.js');
|
||||
var loggT = require('../loggerT.js');
|
||||
var loggE = require('../loggerE.js');
|
||||
|
||||
module.exports = {
|
||||
name: Events.ClientReady,
|
||||
async execute(client) {
|
||||
console.log(`[READY] ${client.user.tag} est prêt ||| ${client.guilds.cache.size.toLocaleString('fr-FR')} serveurs | ${client.guilds.cache.reduce((acc, guild) => acc + guild.memberCount, 0).toLocaleString('fr-FR')} utilisateurs\n`.green);
|
||||
loggT(`[READY] ${client.user.tag} est prêt ||| ${client.guilds.cache.size} serveurs | ${client.guilds.cache.reduce((acc, guild) => acc + guild.memberCount, 0)} utilisateurs\n`)
|
||||
|
||||
client.user.setPresence({
|
||||
activities: [{
|
||||
@@ -19,7 +22,7 @@ module.exports = {
|
||||
client.guilds.cache.forEach(guild => {
|
||||
db.run(`INSERT OR IGNORE INTO config (guildId, name, value) VALUES (?, ?, ?)`, [guild.id, 'prefix', '&']);
|
||||
guild.members.cache.forEach(member => {
|
||||
db.run(`INSERT OR IGNORE INTO users (guildId, userId) VALUES (?, ?)`, [guild.id, member.id]);
|
||||
db.run(`INSERT OR IGNORE INTO users (guildId, guildName, userId, userName) VALUES (?, ?, ?, ?)`, [guild.id, guild.name, member.id, member.name]);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -29,31 +32,44 @@ module.exports = {
|
||||
guild.members.cache.filter(member => member.voice.channel).forEach(member => {
|
||||
if (member.voice.selfMute == true) {
|
||||
db.run('UPDATE users SET pocket = pocket + 50 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
|
||||
db.run('UPDATE users SET xp = xp + 25 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
|
||||
db.run('UPDATE users SET xp = xp + 5 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
|
||||
|
||||
} else {
|
||||
db.run('UPDATE users SET pocket = pocket + 100 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
|
||||
db.run('UPDATE users SET xp = xp + 50 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
|
||||
db.run('UPDATE users SET xp = xp + 10 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
|
||||
}
|
||||
});
|
||||
guild.members.cache.filter(member => member.voice.channel && member.voice.streaming).forEach(member => {
|
||||
db.run('UPDATE users SET pocket = pocket + 200 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
|
||||
db.run('UPDATE users SET xp = xp + 100 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
|
||||
db.run('UPDATE users SET xp = xp + 20 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
|
||||
|
||||
});
|
||||
guild.members.cache.filter(member => member.voice.channel && member.voice.selfVideo).forEach(member => {
|
||||
db.run('UPDATE users SET pocket = pocket + 200 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
|
||||
db.run('UPDATE users SET xp = xp + 100 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
|
||||
db.run('UPDATE users SET xp = xp + 20 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
|
||||
});
|
||||
});
|
||||
}, 15 * 60 * 1000);
|
||||
|
||||
setInterval(async () => {
|
||||
const team = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM teams`, (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
|
||||
if (team.location == 0) return
|
||||
db.run(`UPDATE teams SET bank = bank + ? WHERE guildId = ? AND userId = ?`, [team.location, message.guild.id, message.author.id]);
|
||||
}, 1 * 60 * 1000)
|
||||
|
||||
//AntiCrash
|
||||
process.on('unhandledRejection', (error) => {
|
||||
if (error.code == "10064") return
|
||||
if (error.code == "10008") return
|
||||
console.log(' [antiCrash] :: Unhandled Rejection/Catch'.red);
|
||||
console.log(error);
|
||||
loggE(error)
|
||||
});
|
||||
|
||||
process.on("uncaughtException", (error, origin) => {
|
||||
@@ -62,6 +78,7 @@ module.exports = {
|
||||
console.log(' [antiCrash] :: Uncaught Exception/Catch'.red);
|
||||
console.log(error);
|
||||
console.log('Information supplémentaire:', origin);
|
||||
loggE(error)
|
||||
});
|
||||
|
||||
process.on('uncaughtExceptionMonitor', (error, origin) => {
|
||||
@@ -70,6 +87,7 @@ module.exports = {
|
||||
console.log(' [antiCrash] :: Uncaught Exception Monitor/Catch'.red);
|
||||
console.log(error);
|
||||
console.log('Information supplémentaire:', origin);
|
||||
loggE(error)
|
||||
});
|
||||
|
||||
process.on('beforeExit', (code) => {
|
||||
@@ -77,6 +95,7 @@ module.exports = {
|
||||
if (error.code == "10008") return
|
||||
console.log(' [antiCrash] :: Before Exit'.red);
|
||||
console.log('Code de sortie:', code);
|
||||
loggE(error)
|
||||
});
|
||||
|
||||
process.on('exit', (code) => {
|
||||
@@ -84,6 +103,7 @@ module.exports = {
|
||||
if (error.code == "10008") return
|
||||
console.log(' [antiCrash] :: Exit'.red);
|
||||
console.log('Code de sortie:', code);
|
||||
loggE(error)
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
@@ -11,28 +11,35 @@ db.run(`CREATE TABLE IF NOT EXISTS config (
|
||||
|
||||
db.run(`CREATE TABLE IF NOT EXISTS users (
|
||||
guildId TEXT,
|
||||
guildName TEXT,
|
||||
userId TEXT,
|
||||
userName TEXT,
|
||||
pocket INTEGER DEFAULT 0,
|
||||
bank INTEGER DEFAULT 0,
|
||||
reputation INTEGER DEFAULT 0,
|
||||
lvl INTERGER DEFAULT 0,
|
||||
xp INTERGER DEFAULT 0,
|
||||
objet INTERGER DEFAULT 0,
|
||||
key INTERGER DEFAULT 0,
|
||||
buyer BOOLEAN DEFAULT FALSE,
|
||||
owner BOOLEAN DEFAULT FALSE,
|
||||
whitelist BOOLEAN DEFAULT FALSE,
|
||||
blacklist BOOLEAN DEFAULT FALSE,
|
||||
antiRob INTEGER DEFAULT 0,
|
||||
lastRob INTEGER DEFAULT 0,
|
||||
lastRecolt INTEGER DEFAULT 0,
|
||||
lastWork INTEGER DEFAULT 0,
|
||||
lastDaily INTEGER DEFAULT 0,
|
||||
lastRep INTERGER DEFAULT 0,
|
||||
lastTrep INTERGER DEFAULT 0,
|
||||
lastArep INTERGER DEFAULT 0,
|
||||
lastHack INTERGER DEFAULT 0,
|
||||
lastKill INTERGER DEFAULT 0,
|
||||
lastBraquage INTERGER DEFAULT 0,
|
||||
job TEXT,
|
||||
teamId TEXT,
|
||||
teamRole TEXT,
|
||||
teamDroper INTERGER DEFAULT 0,
|
||||
embed TEXT,
|
||||
PRIMARY KEY (guildId, userId)
|
||||
)`);
|
||||
@@ -46,12 +53,27 @@ db.run(`CREATE TABLE IF NOT EXISTS teams (
|
||||
banner TEXT,
|
||||
reputation INTERGER DEFAULT 0,
|
||||
bank INTEGER DEFAULT 0,
|
||||
location INTERGER DEFAULT 0,
|
||||
level INTEGER DEFAULT 1,
|
||||
padlock INTEGER DEFAULT 5,
|
||||
soldiers INTEGER DEFAULT 0,
|
||||
woundedSoldiers INTEGER DEFAULT 0,
|
||||
campLevel INTEGER DEFAULT 1,
|
||||
turrets INTEGER DEFAULT 0,
|
||||
alliancesId TEXT,
|
||||
PRIMARY KEY (guildId, id)
|
||||
)`);
|
||||
|
||||
db.run(`CREATE TABLE IF NOT EXISTS alliances (
|
||||
guildId TEXT,
|
||||
id TEXT,
|
||||
creator TEXT,
|
||||
name TEXT,
|
||||
description TEXT,
|
||||
icon TEXT,
|
||||
banner TEXT,
|
||||
reputation INTERGER DEFAULT 0,
|
||||
bank INTEGER DEFAULT 0,
|
||||
PRIMARY KEY (guildId, id)
|
||||
)`);
|
||||
|
||||
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
const fs = require("fs")
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//////////
|
||||
////////// logs d'erreur
|
||||
//////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function saveLOGE(LOG) {
|
||||
try {
|
||||
let data = fs.readFileSync('logs/ERROR.txt', 'utf8');
|
||||
const log = data.split('\n');
|
||||
log.push(...LOG);
|
||||
data = log.join('\n');
|
||||
fs.writeFileSync('logs/ERROR.txt', data);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
}
|
||||
module.exports = function loggE(erreur) {
|
||||
const config = require("./config.json");
|
||||
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ TIME /////////////////////////////////////////////////////////////////////////////
|
||||
const d = new Date()
|
||||
var jours = d.getDate().toString().padStart(2, "0")
|
||||
var mois = d.getMonth().toString().padStart(2, "0") + 1
|
||||
var année = d.getFullYear().toString().padStart(2, "0")
|
||||
var heures = d.getHours().toString().padStart(2, "0")
|
||||
var minutes = d.getMinutes().toString().padStart(2, "0")
|
||||
var secondes = d.getSeconds().toString().padStart(2, "0")
|
||||
var milliseconds = d.getMilliseconds().toString().padStart(3, "0")
|
||||
const time = ` ${jours}/${mois}/${année} =>> ${heures}h ${minutes}m ${secondes}s ${milliseconds}ms `
|
||||
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ CODE DE LOG ///////////////////////////////////////////////////////////////////////
|
||||
const text = erreur
|
||||
const ERROR = `[ERROR] || ${time} || ${text}`
|
||||
const LOG = [];
|
||||
LOG.push(ERROR);
|
||||
saveLOGE(LOG);
|
||||
}
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
const fs = require("fs")
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//////////
|
||||
////////// logs textuel
|
||||
//////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function saveLOGT(LOG) {
|
||||
try {
|
||||
let data = fs.readFileSync('logs/TEXT.txt', 'utf8');
|
||||
const log = data.split('\n');
|
||||
log.push(...LOG);
|
||||
data = log.join('\n');
|
||||
fs.writeFileSync('logs/TEXT.txt', data);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = function loggT(msg) {
|
||||
const config = require("./config.json");
|
||||
if (config.test == true) {
|
||||
return
|
||||
}
|
||||
|
||||
if (!msg == "\n" || !msg == "\n\n") {
|
||||
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ TIME /////////////////////////////////////////////////////////////////////////////
|
||||
const d = new Date()
|
||||
var jours = d.getDate().toString().padStart(2, "0")
|
||||
var mois = d.getMonth().toString().padStart(2, "0")
|
||||
var année = d.getFullYear().toString().padStart(2, "0")
|
||||
var heures = d.getHours().toString().padStart(2, "0")
|
||||
var minutes = d.getMinutes().toString().padStart(2, "0")
|
||||
var secondes = d.getSeconds().toString().padStart(2, "0")
|
||||
var milliseconds = d.getMilliseconds().toString().padStart(3, "0")
|
||||
const time = ` ${jours}/${mois}/${année} =>> ${heures}h ${minutes}m ${secondes}s ${milliseconds}ms `
|
||||
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ CODE DE LOG ///////////////////////////////////////////////////////////////////////
|
||||
const text = msg
|
||||
const MSG_T = `[TEXT] || ${time} || ${text}`
|
||||
const LOG = [];
|
||||
LOG.push(MSG_T);
|
||||
saveLOGT(LOG);
|
||||
}
|
||||
else {
|
||||
const MSG_T = `\n\n`
|
||||
const LOG = [];
|
||||
LOG.push(MSG_T);
|
||||
saveLOGT(LOG);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
|
||||
[ERROR] || 20/051/2024 =>> 18h 37m 19s 514ms || TypeError: team.forEach is not a function
|
||||
[ERROR] || 20/051/2024 =>> 18h 37m 19s 551ms || TypeError: team.forEach is not a function
|
||||
[ERROR] || 20/051/2024 =>> 18h 37m 19s 628ms || TypeError: team.forEach is not a function
|
||||
[ERROR] || 20/051/2024 =>> 18h 37m 19s 661ms || TypeError: team.forEach is not a function
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
[TEXT] || 20/05/2024 =>> 18h 35m 54s 210ms || 5 events loaded
|
||||
[TEXT] || 20/05/2024 =>> 18h 35m 54s 368ms || 63 commands loaded
|
||||
[TEXT] || 20/05/2024 =>> 18h 35m 55s 676ms || [READY] Coins#9235 est prêt ||| 4 serveurs | 479 utilisateurs
|
||||
|
||||
[TEXT] || 20/05/2024 =>> 18h 35m 55s 794ms || [READY] Coins#9235 est prêt ||| 4 serveurs | 479 utilisateurs
|
||||
|
||||
[TEXT] || 20/05/2024 =>> 18h 36m 17s 490ms || 5 events loaded
|
||||
[TEXT] || 20/05/2024 =>> 18h 36m 17s 606ms || 63 commands loaded
|
||||
[TEXT] || 20/05/2024 =>> 18h 36m 19s 349ms || [READY] Coins#9235 est prêt ||| 4 serveurs | 479 utilisateurs
|
||||
|
||||
[TEXT] || 20/05/2024 =>> 18h 36m 19s 504ms || [READY] Coins#9235 est prêt ||| 4 serveurs | 479 utilisateurs
|
||||
|
||||
[TEXT] || 20/05/2024 =>> 18h 38m 05s 285ms || 5 events loaded
|
||||
[TEXT] || 20/05/2024 =>> 18h 38m 05s 419ms || 63 commands loaded
|
||||
[TEXT] || 20/05/2024 =>> 18h 38m 06s 748ms || [READY] Coins#9235 est prêt ||| 4 serveurs | 479 utilisateurs
|
||||
|
||||
[TEXT] || 20/05/2024 =>> 18h 38m 06s 884ms || [READY] Coins#9235 est prêt ||| 4 serveurs | 479 utilisateurs
|
||||
|
||||
[TEXT] || 20/05/2024 =>> 18h 38m 39s 660ms || [&] Serveur Bot Coins | .power.x | box
|
||||
[TEXT] || 20/05/2024 =>> 18h 38m 39s 707ms || [&] Serveur Bot Coins | .power.x | box
|
||||
[TEXT] || 21/05/2024 =>> 07h 17m 25s 282ms || 5 events loaded
|
||||
[TEXT] || 21/05/2024 =>> 07h 17m 25s 369ms || 63 commands loaded
|
||||
[TEXT] || 21/05/2024 =>> 07h 17m 26s 194ms || [READY] Coins#9235 est prêt ||| 4 serveurs | 479 utilisateurs
|
||||
|
||||
[TEXT] || 21/05/2024 =>> 07h 17m 26s 280ms || [READY] Coins#9235 est prêt ||| 4 serveurs | 479 utilisateurs
|
||||
@@ -4,6 +4,8 @@ const loadCommands = require("./fonctions/loadCommands");
|
||||
const loadEvents = require("./fonctions/loadEvents");
|
||||
const client = new Client({intents: new IntentsBitField(3276799)});
|
||||
const color = require('colors')
|
||||
var loggT = require('./loggerT.js');
|
||||
var loggE = require('./loggerE.js');
|
||||
|
||||
client.events = new Collection();
|
||||
client.commands = new Collection();
|
||||
@@ -11,5 +13,7 @@ client.config = require("./config.json");
|
||||
|
||||
console.log(`${loadEvents(client, '..\\events')} events loaded`.grey);
|
||||
console.log(`${loadCommands(client, '..\\commands')} commands loaded`.grey);
|
||||
loggT(`${loadEvents(client, '..\\events')} events loaded`)
|
||||
loggT(`${loadCommands(client, '..\\commands')} commands loaded`)
|
||||
|
||||
client.login(process.env.TOKEN);
|
||||
Reference in New Issue
Block a user