format all file

This commit is contained in:
arthur
2024-06-24 00:32:05 +02:00
parent 4b9530443b
commit 6e5f371801
82 changed files with 9299 additions and 5804 deletions
+1
View File
@@ -1,2 +1,3 @@
# bot-discord-coins # bot-discord-coins
un bot de coins pour discord un bot de coins pour discord
+175 -100
View File
@@ -1,158 +1,233 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
let allianceName let allianceName;
let allianceDescription let allianceDescription;
module.exports = { module.exports = {
aliases: ['acreate', 'alliancecreate'], aliases: ["acreate", "alliancecreate"],
description: 'Crée une alliance.', description: "Crée une alliance.",
emote: '✒️', emote: "✒️",
utilisation: '', utilisation: "",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const team = await new Promise((resolve, reject) => { 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) => { db.get(
if (err) reject(err); `SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`,
resolve(row); [message.guild.id, message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { db.get(
if (err) { `SELECT * FROM users WHERE userId = ? AND guildId = ?`,
reject(err); [message.author.id, message.guild.id],
} else { (err, row) => {
if (row.teamRole !== 'owner') { if (err) {
embedColor(message.author.id, message.guild.id).then(color => { reject(err);
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 { } else {
db.run(`UPDATE users SET pocket = pocket - 3000 WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id]); if (row.teamRole !== "owner") {
resolve(); 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() const embed = new EmbedBuilder()
.setTitle('🛡️ Création d\'alliance') .setTitle("🛡️ Création d'alliance")
.setDescription(`Ecrivez le nom de votre alliance dans le chat.`) .setDescription(`Ecrivez le nom de votre alliance dans le chat.`)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
const messageTeam = await message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); const messageTeam = await message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
const filter = m => m.author.id === message.author.id; const filter = (m) => m.author.id === message.author.id;
const collector = message.channel.createMessageCollector({ filter, time: 60000, max: 1 }); const collector = message.channel.createMessageCollector({
collector.on('collect', async m => { filter,
time: 60000,
max: 1,
});
collector.on("collect", async (m) => {
if (m.content.length > 25) { if (m.content.length > 25) {
m.reply('Le nom de l\'alliance ne doit pas dépasser 25 caractères.'); m.reply("Le nom de l'alliance ne doit pas dépasser 25 caractères.");
return collector.stop(); return collector.stop();
} else if (m.content.length < 3) { } else if (m.content.length < 3) {
m.reply('Le nom de l\'alliance doit contenir au moins 3 caractères.'); m.reply("Le nom de l'alliance doit contenir au moins 3 caractères.");
return collector.stop(); return collector.stop();
} else { } else {
allianceName = m.content; allianceName = m.content;
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🛡️ Création de l\'alliance') .setTitle("🛡️ Création de l'alliance")
.setDescription(`Ecrivez la description de votre alliance dans le chat.`) .setDescription(
`Ecrivez la description de votre alliance dans le chat.`,
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
messageTeam.edit({ embeds: [embed] }); messageTeam.edit({ embeds: [embed] });
m.delete(); m.delete();
const collectorD = message.channel.createMessageCollector({ filter, time: 60000, max: 1 }); const collectorD = message.channel.createMessageCollector({
collectorD.on('collect', async m => { filter,
time: 60000,
max: 1,
});
collectorD.on("collect", async (m) => {
if (m.content.length > 250) { if (m.content.length > 250) {
m.reply('La description de l\'alliance ne doit pas dépasser 250 caractères.'); m.reply(
"La description de l'alliance ne doit pas dépasser 250 caractères.",
);
return collectorD.stop(); return collectorD.stop();
} else if (m.content.length < 5) { } else if (m.content.length < 5) {
m.reply('La description de l\'alliance doit contenir au moins 5 caractères.'); m.reply(
"La description de l'alliance doit contenir au moins 5 caractères.",
);
return collectorD.stop(); return collectorD.stop();
} else { } else {
allianceDescription = m.content; allianceDescription = m.content;
let idBase = allianceName.toLowerCase().replace(/ /g, ''); let idBase = allianceName.toLowerCase().replace(/ /g, "");
idBase = idBase.replace('0', ''); idBase = idBase.replace("0", "");
idBase = idBase.replace('1', ''); idBase = idBase.replace("1", "");
idBase = idBase.replace('2', ''); idBase = idBase.replace("2", "");
idBase = idBase.replace('3', ''); idBase = idBase.replace("3", "");
idBase = idBase.replace('4', ''); idBase = idBase.replace("4", "");
idBase = idBase.replace('5', ''); idBase = idBase.replace("5", "");
idBase = idBase.replace('6', ''); idBase = idBase.replace("6", "");
idBase = idBase.replace('7', ''); idBase = idBase.replace("7", "");
idBase = idBase.replace('8', ''); idBase = idBase.replace("8", "");
idBase = idBase.replace('9', ''); idBase = idBase.replace("9", "");
let id = idBase; let id = idBase;
let increment = 0; let increment = 0;
let exists = true; let exists = true;
do { do {
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
db.get(`SELECT * FROM alliances WHERE id = ? AND guildId = ?`, [id, message.guild.id], (err, row) => { db.get(
if (err) { `SELECT * FROM alliances WHERE id = ? AND guildId = ?`,
reject(err); [id, message.guild.id],
} else { (err, row) => {
exists = !!row; if (err) {
if (exists) { reject(err);
increment = increment + 1;
id = idBase + increment;
} else { } else {
db.run(`INSERT INTO alliances (guildId, id, name, description, creator) VALUES (?, ?, ?, ?, ?)`, [message.guild.id, id, allianceName, allianceDescription, message.author.id]); exists = !!row;
db.run(`UPDATE teams SET alliancesId = ? WHERE guildId = ? AND id = ?`, [id, message.guild.id, team.id]); 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();
} }
resolve(); },
} );
});
}); });
} while (exists); } while (exists);
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🛡️ Création de l\'alliance') .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).`) .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)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
messageTeam.edit({ embeds: [embed] }); messageTeam.edit({ embeds: [embed] });
m.delete(); m.delete();
} }
}); });
} }
}); });
} },
}; };
+139 -68
View File
@@ -1,104 +1,175 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder, EmbedBuilder } = require('discord.js'); const {
const db = require('../../fonctions/database.js'); ButtonStyle,
const embedColor = require('../../fonctions/embedColor.js'); ButtonBuilder,
ActionRowBuilder,
EmbedBuilder,
} = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['alliancedelete', 'adelete', 'aremove', 'allianceremove'], aliases: ["alliancedelete", "adelete", "aremove", "allianceremove"],
description: 'Supprime votre alliance.', description: "Supprime votre alliance.",
emote: '🗑️', emote: "🗑️",
util: '', util: "",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const team = await new Promise((resolve, reject) => { 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) => { db.get(
if (err) reject(err); `SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`,
resolve(row); [message.guild.id, message.guild.id, message.author.id],
}); (err, 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); if (err) reject(err);
resolve(row); 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) { if (!alliance) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🛡️ Suppression de l\'alliance') .setTitle("🛡️ Suppression de l'alliance")
.setDescription('Vous n\'êtes actuellement pas dans une alliance.') .setDescription("Vous n'êtes actuellement pas dans une alliance.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else { } else {
if (alliance.creator !== message.author.id) { if (alliance.creator !== message.author.id) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Suppression Impossible') .setTitle("Suppression Impossible")
.setDescription('❌ Vous n\'avez pas la permission de supprimer votre alliance.') .setDescription(
"❌ Vous n'avez pas la permission de supprimer votre alliance.",
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
const row = new ActionRowBuilder() const row = new ActionRowBuilder().addComponents(
.addComponents( new ButtonBuilder()
new ButtonBuilder() .setCustomId("confirm_delete")
.setCustomId('confirm_delete') .setLabel("Confirmer")
.setLabel('Confirmer') .setStyle(ButtonStyle.Danger),
.setStyle(ButtonStyle.Danger), new ButtonBuilder()
new ButtonBuilder() .setCustomId("cancel_delete")
.setCustomId('cancel_delete') .setLabel("Annuler")
.setLabel('Annuler') .setStyle(ButtonStyle.Secondary),
.setStyle(ButtonStyle.Secondary) );
);
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🛡️ Suppression de l\'alliance') .setTitle("🛡️ Suppression de l'alliance")
.setDescription(`Êtes-vous sûr de vouloir supprimer l'alliance ${alliance.name}? Cette action est irréversible.`) .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)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }).then(sentMessage => { message
const filter = i => i.customId === 'confirm_delete' || i.customId === 'cancel_delete' && i.user.id === message.author.id; .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 }); const collector = sentMessage.createMessageComponentCollector({
filter,
time: 15000,
});
collector.on('collect', async i => { collector.on("collect", async (i) => {
if (i.customId === 'confirm_delete') { 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) => { db.run(
if (err) { `DELETE FROM alliances WHERE guildId = ? AND id = ? AND creator = ?`,
return i.update({ content: 'Une erreur est survenue lors de la suppression de l\'alliance.', components: [] }); [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) => { db.run(
if (err) { `UPDATE teams SET alliancesId = null WHERE guildId =? AND alliancesId =?`,
return i.update({ content: 'Une erreur est survenue lors de la mise à jour des teams membres.', components: [] }); [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() const embed = new EmbedBuilder()
.setTitle('🛡️ Suppression de l\'alliance') .setTitle("🛡️ Suppression de l'alliance")
.setDescription(`L'alliance ${alliance.name} a été supprimée avec succès.`) .setDescription(
.setColor(await embedColor(message.author.id, message.guild.id)) `L'alliance ${alliance.name} a été supprimée avec succès.`,
.setTimestamp() )
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .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: [] }); return i.update({ embeds: [embed], components: [] });
},
);
},
);
} else {
await i.update({
content: "Suppression de l'alliance annulée.",
components: [],
}); });
}); }
} else { });
await i.update({ content: 'Suppression de l\'alliance annulée.', components: [] });
}
});
collector.on('end', collected => { collector.on("end", (collected) => {
if (collected.size === 0) sentMessage.edit({ content: 'Temps écoulé. Suppression de l\'équipe annulée.', components: [] }); if (collected.size === 0)
sentMessage.edit({
content: "Temps écoulé. Suppression de l'équipe annulée.",
components: [],
});
});
}); });
});
} }
}, },
}; };
+103 -44
View File
@@ -1,94 +1,153 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['adep', 'adepot', 'alliancedep', 'alliancedepot'], aliases: ["adep", "adepot", "alliancedep", "alliancedepot"],
description: 'Dépose de l\'argent dans la banque de votre alliance. (tout le monde peux en recupéré ⚠️)', description:
emote: '💰', "Dépose de l'argent dans la banque de votre alliance. (tout le monde peux en recupéré ⚠️)",
utilisation: '<montant|all>', emote: "💰",
utilisation: "<montant|all>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
if (args.length == 0) { if (args.length == 0) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible') .setTitle("Dépôt Impossible")
.setDescription('❌ Vous devez spécifier un montant à déposer.') .setDescription("❌ Vous devez spécifier un montant à déposer.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
} else if (args[0] !== 'all' && isNaN(args[0])) { embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (args[0] !== "all" && isNaN(args[0])) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible') .setTitle("Dépôt Impossible")
.setDescription('❌ Vous devez spécifier un montant valide à déposer.') .setDescription("❌ Vous devez spécifier un montant valide à déposer.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (args[0] < 1) { } else if (args[0] < 1) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible') .setTitle("Dépôt Impossible")
.setDescription('❌ Vous devez déposer au moins 1 coin.') .setDescription("❌ Vous devez déposer au moins 1 coin.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
const pocket = await new Promise((resolve, reject) => { 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) => { db.get(
if (err) reject(err); `SELECT pocket FROM users WHERE guildId = ? AND userId = ?`,
resolve(row.pocket); [message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
resolve(row.pocket);
},
);
}); });
let amout; let amout;
if (args[0] === 'all') { if (args[0] === "all") {
amout = pocket; amout = pocket;
} else if (args[0] > pocket) { } else if (args[0] > pocket) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible') .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.') .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)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else { } else {
amout = args[0]; amout = args[0];
} }
const alliance = await new Promise((resolve, reject) => { 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) => { db.get(
if (err) reject(err); `SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM team WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?))`,
resolve(row); [message.guild.id, message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
if (!alliance) { if (!alliance) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible') .setTitle("Dépôt Impossible")
.setDescription('❌ Vous n\'êtes pas dans une alliances.') .setDescription("❌ Vous n'êtes pas dans une alliances.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else { } else {
db.run(`UPDATE users SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`, [amout, message.guild.id, message.author.id]); db.run(
db.run(`UPDATE alliances SET bank = bank + ? WHERE guildId = ? AND id = ?`, [amout, message.guild.id, alliance.id]); `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() const embed = new EmbedBuilder()
.setTitle('Dépôt Effectué') .setTitle("Dépôt Effectué")
.setDescription('💰 Vous avez déposé **' + amout + '** coins dans la banque de votre alliances.') .setDescription(
"💰 Vous avez déposé **" +
amout +
"** coins dans la banque de votre alliances.",
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
}, },
}; };
+115 -69
View File
@@ -1,77 +1,123 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['arep', 'areputation', 'alliancereputation', 'alliancerep'], aliases: ["arep", "areputation", "alliancereputation", "alliancerep"],
description: 'Ajoute une reputation a une alliance. (tout le monde peux en recupéré ⚠️)', description:
emote: '💰', "Ajoute une reputation a une alliance. (tout le monde peux en recupéré ⚠️)",
utilisation: '<id>', emote: "💰",
permission: 0, utilisation: "<id>",
permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
if (args.length == 0) { if (args.length == 0) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Ajout de reputation') .setTitle("Ajout de reputation")
.setDescription('❌ Vous devez spécifier une alliance a rep.') .setDescription("❌ Vous devez spécifier une alliance a rep.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); iconURL: message.author.displayAvatarURL(),
} 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) { return message.reply({
const embed = new EmbedBuilder() embeds: [embed],
.setTitle('Ajout de reputation') allowedMentions: { repliedUser: false },
.setDescription('❌ Alliance introuvable.') });
.setColor(await embedColor(message.author.id, message.guild.id)) } else if (args[0] < 3) {
.setTimestamp() const embed = new EmbedBuilder()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .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 } }); return message.reply({
} else if (user.lastArep > Date.now() - 1800000) { embeds: [embed],
const embed = new EmbedBuilder() allowedMentions: { repliedUser: false },
.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() const alliance = await new Promise((resolve, reject) => {
.setTitle('Ajout de reputation effectué') db.get(
.setDescription('💰 Vous avez ajouter `1` reputation à l\`alliance `' + args[0] + '`.') `SELECT * FROM alliances WHERE guildId = ? AND id = ?`,
.setColor(await embedColor(message.author.id, message.guild.id)) [message.guild.id, args[0]],
.setTimestamp() (err, row) => {
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); 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);
},
);
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); 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 },
});
}
},
};
+160 -60
View File
@@ -1,123 +1,223 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['awh', 'awith', 'alliancewh', 'alliancewith', 'awithdraw', 'alliancewithdraw'], aliases: [
description: 'Récupere de l\'argent/des reputation dans la banque de votre alliance.', "awh",
emote: '💰', "awith",
utilisation: '<rep|coins> <montant|all>', "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, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
if (args.length == 0) { if (args.length == 0) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Récuperation Impossible') .setTitle("Récuperation Impossible")
.setDescription('❌ Vous devez spécifier un type et un montant à récupérer (`awith coins 200`).') .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)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
} else if (args[1] !== 'all' && isNaN(args[1])) { embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (args[1] !== "all" && isNaN(args[1])) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Récuperation Impossible') .setTitle("Récuperation Impossible")
.setDescription('❌ Vous devez spécifier un montant valide à récupérer.') .setDescription(
"❌ Vous devez spécifier un montant valide à récupérer.",
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (args[1] < 1) { } else if (args[1] < 1) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Récuperation Impossible') .setTitle("Récuperation Impossible")
.setDescription('❌ Vous devez récupérer au moins 1 coin/rep.') .setDescription("❌ Vous devez récupérer au moins 1 coin/rep.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
const alliance = await new Promise((resolve, reject) => { 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) => { db.get(
if (err) reject(err); `SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM team WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?))`,
resolve(row); [message.guild.id, message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
if (!alliance) { if (!alliance) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Récuperation Impossible') .setTitle("Récuperation Impossible")
.setDescription('❌ Vous n\'êtes pas dans une alliances.') .setDescription("❌ Vous n'êtes pas dans une alliances.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
} else if (args[0] == 'rep' || args[0] == 'r' || args[0] == 'reputation') { embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (args[0] == "rep" || args[0] == "r" || args[0] == "reputation") {
let amout; let amout;
if (args[1] === 'all') { if (args[1] === "all") {
amout = alliance.bank; amout = alliance.bank;
} else if (args[1] > alliance.bank) { } else if (args[1] > alliance.bank) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Récuperation Impossible') .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') .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)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else { } else {
amout = args[1]; amout = args[1];
} }
db.run(`UPDATE users SET reputation = reputation + ? WHERE guildId = ? AND userId = ?`, [amout, message.guild.id, message.author.id]); db.run(
db.run(`UPDATE alliances SET reputation = reputation - ? WHERE guildId = ? AND id = ?`, [amout, message.guild.id, alliance.id]); `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() const embed = new EmbedBuilder()
.setTitle('Récuperation Effectué') .setTitle("Récuperation Effectué")
.setDescription('💰 Vous avez récupéré **' + amout + '** coins dans la banque de votre alliances.') .setDescription(
"💰 Vous avez récupéré **" +
amout +
"** coins dans la banque de votre alliances.",
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
} else if (args[1] == 'coin' || args[0] == 'c' || args[0] == 'coins') { embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (args[1] == "coin" || args[0] == "c" || args[0] == "coins") {
let amout; let amout;
if (args[1] === 'all') { if (args[1] === "all") {
amout = alliance.bank; amout = alliance.bank;
} else if (args[1] > alliance.bank) { } else if (args[1] > alliance.bank) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Récuperation Impossible') .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') .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)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else { } else {
amout = args[1]; amout = args[1];
} }
db.run(`UPDATE users SET pocket = pocket + ? WHERE guildId = ? AND userId = ?`, [amout, message.guild.id, message.author.id]); db.run(
db.run(`UPDATE alliances SET bank = bank - ? WHERE guildId = ? AND id = ?`, [amout, message.guild.id, alliance.id]); `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() const embed = new EmbedBuilder()
.setTitle('Récuperation Effectué') .setTitle("Récuperation Effectué")
.setDescription('💰 Vous avez récupéré **' + amout + '** coins dans la banque de votre alliances.') .setDescription(
"💰 Vous avez récupéré **" +
amout +
"** coins dans la banque de votre alliances.",
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else { } else {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Récuperation Impossible') .setTitle("Récuperation Impossible")
.setDescription('❌ Veuillez spécifier un type valide (rep|coins) :\n(`awith <rep|coins> <nombre>`)') .setDescription(
.setColor(await embedColor(message.author.id, message.guild.id)) "❌ Veuillez spécifier un type valide (rep|coins) :\n(`awith <rep|coins> <nombre>`)",
.setTimestamp() )
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .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 } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
} },
}; };
+57 -29
View File
@@ -1,54 +1,79 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['a', 'ainfo', 'allianceinfo'], aliases: ["a", "ainfo", "allianceinfo"],
description: 'Affiche les informations de votre alliance.', description: "Affiche les informations de votre alliance.",
emote: '🛡️', emote: "🛡️",
utilisation: '', utilisation: "",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const member = message.mentions.members.first() || message.author; const member = message.mentions.members.first() || message.author;
const team = await new Promise((resolve, reject) => { 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) => { db.get(
if (err) reject(err); `SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`,
resolve(row); [message.guild.id, message.guild.id, member.id],
}); (err, 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); if (err) reject(err);
resolve(row); 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) { if (!alliance) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🛡️ Informations d\'alliance') .setTitle("🛡️ Informations d'alliance")
.setDescription('<@' + member.id + '> n\'est actuellement dans aucune alliance.') .setDescription(
"<@" + member.id + "> n'est actuellement dans aucune alliance.",
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else { } else {
const memberlist = await new Promise((resolve, reject) => { const memberlist = await new Promise((resolve, reject) => {
db.all(`SELECT name FROM teams WHERE guildId = ? AND alliancesId = ?`, [message.guild.id, team.alliancesId], (err, rows) => { db.all(
if (err) reject(err); `SELECT name FROM teams WHERE guildId = ? AND alliancesId = ?`,
resolve(rows); [message.guild.id, team.alliancesId],
}); (err, rows) => {
if (err) reject(err);
resolve(rows);
},
);
}); });
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🛡️ Informations de `' + alliance.name + '`:') .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`) .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)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
const urlRegex1 = /(https?:\/\/[^\s]+)/g; const urlRegex1 = /(https?:\/\/[^\s]+)/g;
if (alliance.icon && urlRegex1.test(alliance.icon)) { if (alliance.icon && urlRegex1.test(alliance.icon)) {
@@ -60,7 +85,10 @@ module.exports = {
embedTopDonnateur.setImage(alliance.banner); embedTopDonnateur.setImage(alliance.banner);
} }
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
}, },
}; };
+212 -151
View File
@@ -1,151 +1,212 @@
const { EmbedBuilder, StringSelectMenuBuilder, ActionRowBuilder } = require('discord.js'); const {
const db = require('../../fonctions/database.js'); EmbedBuilder,
const embedColor = require('../../fonctions/embedColor.js'); StringSelectMenuBuilder,
ActionRowBuilder,
module.exports = { } = require("discord.js");
aliases: [], const db = require("../../fonctions/database.js");
description: 'Change la couleur de vos embed.', const embedColor = require("../../fonctions/embedColor.js");
emote: '🔵',
utilisation: '', module.exports = {
permission: 0, aliases: [],
description: "Change la couleur de vos embed.",
async execute(message, args, client) { emote: "🔵",
const embed = new EmbedBuilder() utilisation: "",
.setTitle('🔵 Embed') permission: 0,
.setDescription(`Sélectionnez une couleur pour vos embeds`)
.setColor(await embedColor(message.author.id, message.guild.id)) async execute(message, args, client) {
.setTimestamp() const embed = new EmbedBuilder()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setTitle("🔵 Embed")
.setDescription(`Sélectionnez une couleur pour vos embeds`)
const select = new StringSelectMenuBuilder() .setColor(await embedColor(message.author.id, message.guild.id))
.setCustomId('color') .setTimestamp()
.setPlaceholder('Sélectionnez une couleur') .setFooter({
.addOptions([ text: `Demandé par ${message.author.tag}`,
{ iconURL: message.author.displayAvatarURL(),
label: '🔴 Rouge', });
description: 'Prix : 3 rep🔺',
value: 'red', const select = new StringSelectMenuBuilder()
}, .setCustomId("color")
{ .setPlaceholder("Sélectionnez une couleur")
label: '🟠 Orange', .addOptions([
description: 'Prix : 3 rep🔺', {
value: 'orange', label: "🔴 Rouge",
}, description: "Prix : 3 rep🔺",
{ value: "red",
label: '🟡 Jaune', },
description: 'Prix : 3 rep🔺', {
value: 'yellow', label: "🟠 Orange",
}, description: "Prix : 3 rep🔺",
{ value: "orange",
label: '🟢 Vert', },
description: 'Prix : 3 rep🔺', {
value: 'green', label: "🟡 Jaune",
}, description: "Prix : 3 rep🔺",
{ value: "yellow",
label: '🔵 Bleu', },
description: 'Prix : 3 rep🔺', {
value: 'blue', label: "🟢 Vert",
}, description: "Prix : 3 rep🔺",
{ value: "green",
label: '🟣 Violet', },
description: 'Prix : 3 rep🔺', {
value: 'purple', label: "🔵 Bleu",
}, description: "Prix : 3 rep🔺",
{ value: "blue",
label: '🟤 Marron', },
description: 'Prix : 3 rep🔺', {
value: 'brown', label: "🟣 Violet",
}, description: "Prix : 3 rep🔺",
{ value: "purple",
label: '⚫ Noir', },
description: 'Prix : 3 rep🔺', {
value: 'black', label: "🟤 Marron",
}, description: "Prix : 3 rep🔺",
{ value: "brown",
label: '⚪ Blanc', },
description: 'Prix : 3 rep🔺', {
value: 'white', label: "⚫ Noir",
}, description: "Prix : 3 rep🔺",
{ value: "black",
label: 'Aléatoire 🌈', },
description: 'Prix : 5 rep🔺', {
value: 'random', label: "⚪ Blanc",
}, description: "Prix : 3 rep🔺",
]); value: "white",
},
const row = new ActionRowBuilder() {
.addComponents(select); label: "Aléatoire 🌈",
description: "Prix : 5 rep🔺",
const embedMessage = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); value: "random",
},
const filter = (interaction) => interaction.user.id === message.author.id; ]);
const collector = embedMessage.createMessageComponentCollector({ filter, time: 60000 });
collector.on('collect', async (interaction) => { const row = new ActionRowBuilder().addComponents(select);
if (interaction.isStringSelectMenu()) {
if (!client.user) return const embedMessage = await message.reply({
const value = interaction.values[0]; embeds: [embed],
const user = await new Promise((resolve, reject) => { components: [row],
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { allowedMentions: { repliedUser: false },
if (err) reject(err); });
resolve(row);
}); const filter = (interaction) => interaction.user.id === message.author.id;
}); const collector = embedMessage.createMessageComponentCollector({
const reputation = user.reputation; filter,
time: 60000,
if (value === 'random') { });
if (reputation < 5) { collector.on("collect", async (interaction) => {
const embed = new EmbedBuilder() if (interaction.isStringSelectMenu()) {
.setTitle('Erreur') if (!client.user) return;
.setDescription('❌ Vous n\'avez pas assez de réputations pour acheter cette couleur.') const value = interaction.values[0];
.setColor(await embedColor(message.author.id, message.guild.id)) const user = await new Promise((resolve, reject) => {
.setTimestamp() db.get(
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
return interaction.reply({ embeds: [embed], ephemeral: true, allowedMentions: { repliedUser: false } }); (err, row) => {
} if (err) reject(err);
resolve(row);
db.run(`UPDATE users SET reputation = reputation - 5, embed = 'random' WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err) => { },
if (err) return console.error(err); );
}); });
const reputation = user.reputation;
const embed = new EmbedBuilder()
.setTitle('🔵 Embed') if (value === "random") {
.setDescription('✅ Vous avez acheté la couleur aléatoire pour vos embeds.') if (reputation < 5) {
.setColor(await embedColor(message.author.id, message.guild.id)) const embed = new EmbedBuilder()
.setTimestamp() .setTitle("Erreur")
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setDescription(
"❌ Vous n'avez pas assez de réputations pour acheter cette couleur.",
interaction.reply({ embeds: [embed], ephemeral: true, allowedMentions: { repliedUser: false } }); )
} else { .setColor(await embedColor(message.author.id, message.guild.id))
if (reputation < 3) { .setTimestamp()
const embed = new EmbedBuilder() .setFooter({
.setTitle('Erreur') text: `Demandé par ${message.author.tag}`,
.setDescription('❌ Vous n\'avez pas assez de réputations pour acheter cette couleur.') iconURL: message.author.displayAvatarURL(),
.setColor(await embedColor(message.author.id, message.guild.id)) });
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); return interaction.reply({
embeds: [embed],
return interaction.reply({ embeds: [embed], ephemeral: true, allowedMentions: { repliedUser: false } }); ephemeral: true,
} allowedMentions: { repliedUser: false },
});
db.run(`UPDATE users SET reputation = reputation - 3, embed = ? WHERE guildId = ? AND userId = ?`, [value, message.guild.id, message.author.id], (err) => { }
if (err) return console.error(err);
}); db.run(
`UPDATE users SET reputation = reputation - 5, embed = 'random' WHERE guildId = ? AND userId = ?`,
const embed = new EmbedBuilder() [message.guild.id, message.author.id],
.setTitle('🔵 Embed') (err) => {
.setDescription(`✅ Vous avez acheté la couleur ${value} pour vos embeds.`) if (err) return console.error(err);
.setColor(await embedColor(message.author.id, message.guild.id)) },
.setTimestamp() );
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
const embed = new EmbedBuilder()
interaction.reply({ embeds: [embed], ephemeral: true, allowedMentions: { repliedUser: false } }); .setTitle("🔵 Embed")
} .setDescription(
} "✅ Vous avez acheté la couleur aléatoire pour vos embeds.",
}); )
.setColor(await embedColor(message.author.id, message.guild.id))
collector.on('end', async () => { .setTimestamp()
embedMessage.edit({ components: [] }); .setFooter({
}); text: `Demandé par ${message.author.tag}`,
}, iconURL: message.author.displayAvatarURL(),
}; });
interaction.reply({
embeds: [embed],
ephemeral: true,
allowedMentions: { repliedUser: false },
});
} else {
if (reputation < 3) {
const embed = new EmbedBuilder()
.setTitle("Erreur")
.setDescription(
"❌ Vous n'avez pas assez de réputations pour acheter cette couleur.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return interaction.reply({
embeds: [embed],
ephemeral: true,
allowedMentions: { repliedUser: false },
});
}
db.run(
`UPDATE users SET reputation = reputation - 3, embed = ? WHERE guildId = ? AND userId = ?`,
[value, message.guild.id, message.author.id],
(err) => {
if (err) return console.error(err);
},
);
const embed = new EmbedBuilder()
.setTitle("🔵 Embed")
.setDescription(
`✅ Vous avez acheté la couleur ${value} pour vos embeds.`,
)
.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],
ephemeral: true,
allowedMentions: { repliedUser: false },
});
}
}
});
collector.on("end", async () => {
embedMessage.edit({ components: [] });
});
},
};
+191 -125
View File
@@ -1,125 +1,191 @@
const { EmbedBuilder, ActionRowBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } = require('discord.js'); const {
const db = require('../../fonctions/database.js'); EmbedBuilder,
const embedColor = require('../../fonctions/embedColor.js'); ActionRowBuilder,
StringSelectMenuBuilder,
module.exports = { StringSelectMenuOptionBuilder,
aliases: ['shop', 'magasin', 'boutique', 'store'], } = require("discord.js");
description: 'Affiche le shop du bot.', const db = require("../../fonctions/database.js");
emote: '🛍️', const embedColor = require("../../fonctions/embedColor.js");
utilisation: '',
permission: 0, module.exports = {
aliases: ["shop", "magasin", "boutique", "store"],
async execute(message, args, client) { description: "Affiche le shop du bot.",
const embed = new EmbedBuilder() emote: "🛍️",
.setTitle('🛍️ Shop') utilisation: "",
.setThumbnail(message.guild.iconURL()) permission: 0,
.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)) async execute(message, args, client) {
.setTimestamp() const embed = new EmbedBuilder()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setTitle("🛍️ Shop")
.setThumbnail(message.guild.iconURL())
const select = new StringSelectMenuBuilder() .setDescription(
.setCustomId('shop') `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`,
.setPlaceholder('Sélectionnez un item') )
.addOptions( .setColor(await embedColor(message.author.id, message.guild.id))
new StringSelectMenuOptionBuilder() .setTimestamp()
.setLabel('🔒 AntiRob') .setFooter({
.setValue('antirob') text: `Demandé par ${message.author.tag}`,
.setDescription('Protège contre les vols pendant 2 heures') iconURL: message.author.displayAvatarURL(),
.setEmoji('🔒') });
.setDefault(false),
new StringSelectMenuOptionBuilder() const select = new StringSelectMenuBuilder()
.setLabel('🗝️ Clef') .setCustomId("shop")
.setValue('key') .setPlaceholder("Sélectionnez un item")
.setDescription('Permet d\'ouvrir une boite') .addOptions(
.setEmoji('🗝️') new StringSelectMenuOptionBuilder()
.setDefault(false), .setLabel("🔒 AntiRob")
new StringSelectMenuOptionBuilder() .setValue("antirob")
.setLabel('💰 25000 Coins') .setDescription("Protège contre les vols pendant 2 heures")
.setValue('coins') .setEmoji("🔒")
.setDescription('Vous donne 25K de coins contre 1reputation') .setDefault(false),
.setEmoji('💰') new StringSelectMenuOptionBuilder()
.setDefault(false), .setLabel("🗝️ Clef")
); .setValue("key")
.setDescription("Permet d'ouvrir une boite")
const row = new ActionRowBuilder() .setEmoji("🗝️")
.addComponents(select); .setDefault(false),
new StringSelectMenuOptionBuilder()
message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); .setLabel("💰 25000 Coins")
.setValue("coins")
client.on('interactionCreate', async (interaction) => { .setDescription("Vous donne 25K de coins contre 1reputation")
if (!interaction.isStringSelectMenu()) return; .setEmoji("💰")
.setDefault(false),
if (!interaction.customId === 'shop') return );
const selected = interaction.values[0];
const row = new ActionRowBuilder().addComponents(select);
if (selected === 'antirob') {
const user = await new Promise((resolve, reject) => { message.reply({
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { embeds: [embed],
if (err) reject(err); components: [row],
resolve(row); allowedMentions: { repliedUser: false },
}); });
});
client.on("interactionCreate", async (interaction) => {
if (user.pocket < 2000) { if (!interaction.isStringSelectMenu()) return;
return interaction.reply({ content: 'Vous n\'avez pas assez d\'argent pour acheter cet item.', ephemeral: true });
} if (!interaction.customId === "shop") return;
const selected = interaction.values[0];
db.run(`UPDATE users SET pocket = pocket - 2000, antiRob = ? WHERE guildId = ? AND userId = ?`, [Date.now(), message.guild.id, message.author.id]);
if (selected === "antirob") {
const embed = new EmbedBuilder() const user = await new Promise((resolve, reject) => {
.setTitle('🛍️ Shop') db.get(
.setDescription(`Vous avez acheté l'item 🔒 AntiRob pour 2000 coins !`) `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
.setColor(await embedColor(message.author.id, message.guild.id)) [message.guild.id, message.author.id],
.setTimestamp() (err, row) => {
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); if (err) reject(err);
resolve(row);
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); if (user.pocket < 2000) {
resolve(row); return interaction.reply({
}); content: "Vous n'avez pas assez d'argent pour acheter cet item.",
}); ephemeral: true,
});
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 - 2000, antiRob = ? WHERE guildId = ? AND userId = ?`,
db.run(`UPDATE users SET pocket = pocket - 2500, key = key + 1 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]); [Date.now(), message.guild.id, message.author.id],
);
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop') const embed = new EmbedBuilder()
.setDescription(`Vous avez acheté l'item 🗝️ clef pour 2500 coins !`) .setTitle("🛍️ Shop")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(
.setTimestamp() `Vous avez acheté l'item 🔒 AntiRob pour 2000 coins !`,
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); )
.setColor(await embedColor(message.author.id, message.guild.id))
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); .setTimestamp()
} else if (selected === 'coins') { .setFooter({
const user = await new Promise((resolve, reject) => { text: `Demandé par ${message.author.tag}`,
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { iconURL: message.author.displayAvatarURL(),
if (err) reject(err); });
resolve(row);
}); interaction.reply({
}); embeds: [embed],
allowedMentions: { repliedUser: false },
if (user.reputation < 1) { });
return interaction.reply({ content: 'Vous n\'avez pas assez de reputation pour acheter cet item.', ephemeral: true }); } else if (selected === "key") {
} const user = await new Promise((resolve, reject) => {
db.get(
db.run(`UPDATE users SET pocket = pocket + 25000, reputation = reputation - 1 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
const embed = new EmbedBuilder() (err, row) => {
.setTitle('🛍️ Shop') if (err) reject(err);
.setDescription(`Vous avez acheté \`25000\`coins contre une reputation !`) resolve(row);
.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 < 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 },
});
}
});
},
};
+142 -80
View File
@@ -1,124 +1,186 @@
const { EmbedBuilder, ActionRowBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } = require('discord.js'); const {
const db = require('../../fonctions/database.js'); EmbedBuilder,
const embedColor = require('../../fonctions/embedColor.js'); ActionRowBuilder,
StringSelectMenuBuilder,
StringSelectMenuOptionBuilder,
} = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['tshop', 'tmagasin', 'tboutique', 'tstore', 'teamshop', 'teammagasin', 'tboutique', 'teamstore'], aliases: [
description: 'Affiche le shop du bot.', "tshop",
emote: '🛍️', "tmagasin",
utilisation: '', "tboutique",
"tstore",
"teamshop",
"teammagasin",
"tboutique",
"teamstore",
],
description: "Affiche le shop du bot.",
emote: "🛍️",
utilisation: "",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const user = await new Promise((resolve, reject) => { const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
const team = await new Promise((resolve, reject) => { const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM teams WHERE guildId = ? AND id = ?`, [message.guild.id, user.teamId], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM teams WHERE guildId = ? AND id = ?`,
resolve(row); [message.guild.id, user.teamId],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🛍️ Shop') .setTitle("🛍️ Shop")
.setThumbnail(message.guild.iconURL()) .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`) .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)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
const select = new StringSelectMenuBuilder() const select = new StringSelectMenuBuilder()
.setCustomId('shop') .setCustomId("shop")
.setPlaceholder('Sélectionnez un item') .setPlaceholder("Sélectionnez un item")
.addOptions( .addOptions(
new StringSelectMenuOptionBuilder() new StringSelectMenuOptionBuilder()
.setLabel('🏢 Appartement') .setLabel("🏢 Appartement")
.setValue('appartement') .setValue("appartement")
.setDescription('Achete un appartement et le met en location, rapporte 70coins/min') .setDescription(
.setEmoji('🏢') "Achete un appartement et le met en location, rapporte 70coins/min",
)
.setEmoji("🏢")
.setDefault(false), .setDefault(false),
new StringSelectMenuOptionBuilder() new StringSelectMenuOptionBuilder()
.setLabel('🏠 Maison') .setLabel("🏠 Maison")
.setValue('maison') .setValue("maison")
.setDescription('Achete une petite maison et la met en location, rapporte 75coins/min') .setDescription(
.setEmoji('🏠') "Achete une petite maison et la met en location, rapporte 75coins/min",
)
.setEmoji("🏠")
.setDefault(false), .setDefault(false),
new StringSelectMenuOptionBuilder() new StringSelectMenuOptionBuilder()
.setLabel('🏠 Grande maison') .setLabel("🏠 Grande maison")
.setValue('maison2') .setValue("maison2")
.setDescription('Achete une grande maison et la met en location, rapporte 120coins/min') .setDescription(
.setEmoji('🏠') "Achete une grande maison et la met en location, rapporte 120coins/min",
)
.setEmoji("🏠")
.setDefault(false), .setDefault(false),
new StringSelectMenuOptionBuilder() new StringSelectMenuOptionBuilder()
.setLabel('💎 Villa') .setLabel("💎 Villa")
.setValue('villa') .setValue("villa")
.setDescription('Achete une villa et la met en location, rapporte 250coins/min') .setDescription(
.setEmoji('💎') "Achete une villa et la met en location, rapporte 250coins/min",
)
.setEmoji("💎")
.setDefault(false), .setDefault(false),
new StringSelectMenuOptionBuilder() new StringSelectMenuOptionBuilder()
.setLabel('🏝️ Île') .setLabel("🏝️ Île")
.setValue('ile') .setValue("ile")
.setDescription('Achete une île et la met en location, rapporte 2500coins/min') .setDescription(
.setEmoji('🏝️') "Achete une île et la met en location, rapporte 2500coins/min",
)
.setEmoji("🏝️")
.setDefault(false), .setDefault(false),
); );
const row = new ActionRowBuilder() const row = new ActionRowBuilder().addComponents(select);
.addComponents(select);
message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); message.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
});
client.on('interactionCreate', async (interaction) => { client.on("interactionCreate", async (interaction) => {
if (!interaction.isStringSelectMenu()) return; if (!interaction.isStringSelectMenu()) return;
if (!interaction.customId === 'shop') return if (!interaction.customId === "shop") return;
const selected = interaction.values[0]; const selected = interaction.values[0];
let coup = '' let coup = "";
let item = '' let item = "";
let win = '' let win = "";
if (selected === 'appartement') { if (selected === "appartement") {
coup = '100000' coup = "100000";
item = 'appartement' item = "appartement";
win = '70' win = "70";
} else if (selected === 'maison') { } else if (selected === "maison") {
coup = '110000' coup = "110000";
item = 'maison' item = "maison";
win = '75' win = "75";
} else if (selected === 'maison2') { } else if (selected === "maison2") {
coup = '150000' coup = "150000";
item = 'grande maison' item = "grande maison";
win = '120' win = "120";
} else if (selected === 'villa') { } else if (selected === "villa") {
coup = '250000' coup = "250000";
item = 'villa' item = "villa";
win = '250' win = "250";
} else if (selected === 'ile') { } else if (selected === "ile") {
coup = '500000' coup = "500000";
item = 'île' item = "île";
win = '2500' 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 (user.teamRole !== "officier" || user.teamRole !== "officer")
if (team.bank < coup) return interaction.reply({ content: 'Vous n\'avez pas assez d\'argent pour acheter cet item.', ephemeral: true }); return interaction.reply({
content: "Vous n'avez pas les permissions pour faire cet achat",
db.run(`UPDATE teams SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`, [coup, message.guild.id, message.author.id]); ephemeral: true,
db.run(`UPDATE teams SET location = location + ? WHERE guildId = ? AND userId = ?`, [win, message.guild.id, message.author.id]); });
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() const embed = new EmbedBuilder()
.setTitle('🛍️ Shop') .setTitle("🛍️ Shop")
.setDescription(`Vous avez acheté l'item ${item} pour \`${coup}\`coins !`) .setDescription(
`Vous avez acheté l'item ${item} pour \`${coup}\`coins !`,
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
interaction.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
}, },
}; };
+27 -16
View File
@@ -1,36 +1,47 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['bl', 'addbl'], aliases: ["bl", "addbl"],
description: 'Met un utilisateur comme blacklist (sur ce serveur).', description: "Met un utilisateur comme blacklist (sur ce serveur).",
emote: '🛡️', emote: "🛡️",
utilisation: '<@membre>', utilisation: "<@membre>",
permission: 10, permission: 10,
async execute(message, args, client) { async execute(message, args, client) {
const member = message.mentions.users.first(); const member = message.mentions.users.first();
if (!member) { if (!member) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Blacklist :') .setTitle("Blacklist :")
.setDescription(`**Veuillez mentionner un membre valide**`) .setDescription(`**Veuillez mentionner un membre valide**`)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); 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]); db.run(
`UPDATE users SET blacklist = true WHERE guildId = ? AND userId = ?`,
[message.guild.id, member.id],
);
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Blacklist :') .setTitle("Blacklist :")
.setDescription(`**<@${member.id}> est maintement blacklist !**`) .setDescription(`**<@${member.id}> est maintement blacklist !**`)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}, },
+27 -16
View File
@@ -1,36 +1,47 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['unbl', 'removebl'], aliases: ["unbl", "removebl"],
description: 'Met un utilisateur comme non-blacklist (sur ce serveur).', description: "Met un utilisateur comme non-blacklist (sur ce serveur).",
emote: '🛡️', emote: "🛡️",
utilisation: '<@membre>', utilisation: "<@membre>",
permission: 10, permission: 10,
async execute(message, args, client) { async execute(message, args, client) {
const member = message.mentions.users.first(); const member = message.mentions.users.first();
if (!member) { if (!member) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Un-blacklist :') .setTitle("Un-blacklist :")
.setDescription(`**Veuillez mentionner un membre valide**`) .setDescription(`**Veuillez mentionner un membre valide**`)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); 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]); db.run(
`UPDATE users SET blacklist = false WHERE guildId = ? AND userId = ?`,
[message.guild.id, member.id],
);
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Un-blacklist :') .setTitle("Un-blacklist :")
.setDescription(`**<@${member.id}> est maintement un-blacklist !**`) .setDescription(`**<@${member.id}> est maintement un-blacklist !**`)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}, },
+291 -191
View File
@@ -1,191 +1,291 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const {
const embedColor = require('../../fonctions/embedColor.js'); EmbedBuilder,
const getPrefix = require('../../fonctions/getPrefix.js'); ButtonStyle,
ButtonBuilder,
function commandsList(client, category, prefix) { ActionRowBuilder,
const casinoCommands = client.commands.filter(command => command.category === category).sort((a, b) => a.name.localeCompare(b.name)); } = require("discord.js");
const uniqueCommands = new Map(); const embedColor = require("../../fonctions/embedColor.js");
const getPrefix = require("../../fonctions/getPrefix.js");
casinoCommands.forEach(command => {
uniqueCommands.set(command.name, { description: command.description, emote: command.emote, utilisation: command.utilisation }); function commandsList(client, category, prefix) {
}); const casinoCommands = client.commands
.filter((command) => command.category === category)
let commandsList = ''; .sort((a, b) => a.name.localeCompare(b.name));
uniqueCommands.forEach((command, name) => { const uniqueCommands = new Map();
commandsList += `> ${command.emote} \`${prefix}${name}${command.utilisation ? ' ' + command.utilisation : ''}\`\n> ┖ ${command.description}\n\n`;
}); casinoCommands.forEach((command) => {
uniqueCommands.set(command.name, {
return commandsList; description: command.description,
} emote: command.emote,
utilisation: command.utilisation,
module.exports = { });
aliases: ['', 'h', 'aide'], });
description: 'Affiche la liste des commandes disponibles',
emote: '📚', let commandsList = "";
utilisation: '[commande]', uniqueCommands.forEach((command, name) => {
permission: 0, commandsList += `> ${command.emote} \`${prefix}${name}${command.utilisation ? " " + command.utilisation : ""}\`\n> ┖ ${command.description}\n\n`;
});
async execute(message, args, client) {
if (args) { return commandsList;
if (args[0] && client.commands.has(args[0])) { }
const command = client.commands.get(args[0]);
const prefix = await getPrefix(message.guild.id); module.exports = {
const embed = new EmbedBuilder() aliases: ["", "h", "aide"],
.setTitle(`📚・${command.name}`) description: "Affiche la liste des commandes disponibles",
.setThumbnail(message.guild.iconURL()) emote: "📚",
.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}`) utilisation: "[commande]",
.setColor(await embedColor(message.author.id, message.guild.id)) permission: 0,
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); async execute(message, args, client) {
if (args) {
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); if (args[0] && client.commands.has(args[0])) {
} else { const command = client.commands.get(args[0]);
if (args[0]) { const prefix = await getPrefix(message.guild.id);
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('❌・Commande inconnue') .setTitle(`📚・${command.name}`)
.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.') .setThumbnail(message.guild.iconURL())
.setColor(await embedColor(message.author.id, message.guild.id)) .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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); )
} .setColor(await embedColor(message.author.id, message.guild.id))
} .setTimestamp()
} .setFooter({
const prefix = await getPrefix(message.guild.id); text: `Demandé par ${message.author.tag}`,
const embedPage1 = new EmbedBuilder() iconURL: message.author.displayAvatarURL(),
.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.`) message.reply({
.setColor(await embedColor(message.author.id, message.guild.id)) embeds: [embed],
.setTimestamp() allowedMentions: { repliedUser: false },
.setFooter({ text: `Page 1/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); });
} else {
const leftButton = new ButtonBuilder() if (args[0]) {
.setCustomId('left') const embed = new EmbedBuilder()
.setLabel('◀') .setTitle("❌・Commande inconnue")
.setStyle(ButtonStyle.Primary); .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.",
const rightButton = new ButtonBuilder() )
.setCustomId('right') .setColor(await embedColor(message.author.id, message.guild.id));
.setLabel('▶')
.setStyle(ButtonStyle.Primary); message.reply({
embeds: [embed],
const row = new ActionRowBuilder() allowedMentions: { repliedUser: false },
.addComponents(leftButton, rightButton); });
}
let messageEmbed; }
messageEmbed = await message.reply({ embeds: [embedPage1], components: [row], allowedMentions: { repliedUser: false } }); }
const prefix = await getPrefix(message.guild.id);
const filter = i => i.user.id === message.author.id; const embedPage1 = new EmbedBuilder()
const collector = message.channel.createMessageComponentCollector({ filter, time: 120000 }); .setTitle("📚 ・Information")
.setThumbnail(message.guild.iconURL())
let page = 1; .setDescription(
collector.on('collect', async i => { `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.`,
if (i.customId === 'left') { )
page--; .setColor(await embedColor(message.author.id, message.guild.id))
if (page < 1) page = 10; .setTimestamp()
} else if (i.customId === 'right') { .setFooter({
page++; text: `Page 1/10 | Demandé par ${message.author.tag}`,
if (page > 10) page = 1; iconURL: message.author.displayAvatarURL(),
} });
if (page === 1) { const leftButton = new ButtonBuilder()
i.update({ embeds: [embedPage1], components: [row] }); .setCustomId("left")
} else if (page === 2) { .setLabel("◀")
const embedPage2 = new EmbedBuilder() .setStyle(ButtonStyle.Primary);
.setTitle('💰・Casino')
.setThumbnail(message.guild.iconURL()) const rightButton = new ButtonBuilder()
.setDescription(commandsList(client, 'casino', prefix)) .setCustomId("right")
.setColor(await embedColor(message.author.id, message.guild.id)) .setLabel("▶")
.setTimestamp() .setStyle(ButtonStyle.Primary);
.setFooter({ text: `Page 2/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
const row = new ActionRowBuilder().addComponents(leftButton, rightButton);
i.update({ embeds: [embedPage2], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 3) { let messageEmbed;
const embedPage3 = new EmbedBuilder() messageEmbed = await message.reply({
.setTitle('🎲・Jeux') embeds: [embedPage1],
.setThumbnail(message.guild.iconURL()) components: [row],
.setDescription(commandsList(client, 'jeux', prefix)) allowedMentions: { repliedUser: false },
.setColor(await embedColor(message.author.id, message.guild.id)) });
.setTimestamp()
.setFooter({ text: `Page 3/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); const filter = (i) => i.user.id === message.author.id;
const collector = message.channel.createMessageComponentCollector({
i.update({ embeds: [embedPage3], components: [row], allowedMentions: { repliedUser: false } }); filter,
} else if (page === 4) { time: 120000,
const embedPage4 = new EmbedBuilder() });
.setTitle('🛍️・Achats')
.setThumbnail(message.guild.iconURL()) let page = 1;
.setDescription(commandsList(client, 'achats', prefix)) collector.on("collect", async (i) => {
.setColor(await embedColor(message.author.id, message.guild.id)) if (i.customId === "left") {
.setTimestamp() page--;
.setFooter({ text: `Page 4/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); if (page < 1) page = 10;
} else if (i.customId === "right") {
i.update({ embeds: [embedPage4], components: [row], allowedMentions: { repliedUser: false } }); page++;
} else if (page === 5) { if (page > 10) page = 1;
const embedPage5 = new EmbedBuilder() }
.setTitle('🏭・Metier et capacité')
.setThumbnail(message.guild.iconURL()) if (page === 1) {
.setDescription(commandsList(client, 'jobs', prefix)) i.update({ embeds: [embedPage1], components: [row] });
.setColor(await embedColor(message.author.id, message.guild.id)) } else if (page === 2) {
.setTimestamp() const embedPage2 = new EmbedBuilder()
.setFooter({ text: `Page 5/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setTitle("💰・Casino")
.setThumbnail(message.guild.iconURL())
i.update({ embeds: [embedPage5], components: [row], allowedMentions: { repliedUser: false } }); .setDescription(commandsList(client, "casino", prefix))
} else if (page === 6) { .setColor(await embedColor(message.author.id, message.guild.id))
const embedPage6 = new EmbedBuilder() .setTimestamp()
.setTitle('💼・Teams') .setFooter({
.setThumbnail(message.guild.iconURL()) text: `Page 2/10 | Demandé par ${message.author.tag}`,
.setDescription(commandsList(client, 'teams', prefix)) iconURL: message.author.displayAvatarURL(),
.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: [embedPage2],
i.update({ embeds: [embedPage6], components: [row], allowedMentions: { repliedUser: false } }); components: [row],
} else if (page === 7) { allowedMentions: { repliedUser: false },
const embedPage7 = new EmbedBuilder() });
.setTitle('🛡️・Teams administration') } else if (page === 3) {
.setThumbnail(message.guild.iconURL()) const embedPage3 = new EmbedBuilder()
.setDescription(commandsList(client, 'teams admin', prefix)) .setTitle("🎲・Jeux")
.setColor(await embedColor(message.author.id, message.guild.id)) .setThumbnail(message.guild.iconURL())
.setTimestamp() .setDescription(commandsList(client, "jeux", prefix))
.setFooter({ text: `Page 7/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
i.update({ embeds: [embedPage7], components: [row], allowedMentions: { repliedUser: false } }); .setFooter({
} else if (page === 8) { text: `Page 3/10 | Demandé par ${message.author.tag}`,
const embedPage8 = new EmbedBuilder() iconURL: message.author.displayAvatarURL(),
.setTitle('🤝・Alliance') });
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'Alliance', prefix)) i.update({
.setColor(await embedColor(message.author.id, message.guild.id)) embeds: [embedPage3],
.setTimestamp() components: [row],
.setFooter({ text: `Page 8/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); allowedMentions: { repliedUser: false },
});
i.update({ embeds: [embedPage8], components: [row], allowedMentions: { repliedUser: false } }); } else if (page === 4) {
} else if (page === 9) { const embedPage4 = new EmbedBuilder()
const embedPage9 = new EmbedBuilder() .setTitle("🛍️・Achats")
.setTitle('👑・Gestion') .setThumbnail(message.guild.iconURL())
.setThumbnail(message.guild.iconURL()) .setDescription(commandsList(client, "achats", prefix))
.setDescription(commandsList(client, 'gestion', prefix)) .setColor(await embedColor(message.author.id, message.guild.id))
.setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp()
.setTimestamp() .setFooter({
.setFooter({ text: `Page 9/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); text: `Page 4/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() i.update({
.setTitle('👑・Bot control') embeds: [embedPage4],
.setThumbnail(message.guild.iconURL()) components: [row],
.setDescription(commandsList(client, 'bot control', prefix)) allowedMentions: { repliedUser: false },
.setColor(await embedColor(message.author.id, message.guild.id)) });
.setTimestamp() } else if (page === 5) {
.setFooter({ text: `Page 10/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); const embedPage5 = new EmbedBuilder()
.setTitle("🏭・Metier et capacité")
i.update({ embeds: [embedPage10], components: [row], allowedMentions: { repliedUser: false } }); .setThumbnail(message.guild.iconURL())
} .setDescription(commandsList(client, "jobs", prefix))
}); .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
collector.on('end', () => { .setFooter({
messageEmbed.edit({ components: [], allowedMentions: { repliedUser: false } }) text: `Page 5/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: [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: [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: [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: [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: [embedPage10],
components: [row],
allowedMentions: { repliedUser: false },
});
}
});
collector.on("end", () => {
messageEmbed.edit({
components: [],
allowedMentions: { repliedUser: false },
});
});
},
};
+49 -40
View File
@@ -1,40 +1,49 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require("discord.js");
module.exports = { module.exports = {
aliases: ['latence'], aliases: ["latence"],
description: 'Avoir la latence du bot.', description: "Avoir la latence du bot.",
emote: '⏱️', emote: "⏱️",
utilisation: '', utilisation: "",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const ping = new ButtonBuilder() const ping = new ButtonBuilder()
.setCustomId('confirm') .setCustomId("confirm")
.setLabel('🔄') .setLabel("🔄")
.setStyle(ButtonStyle.Primary); .setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder() const row = new ActionRowBuilder().addComponents(ping);
.addComponents(ping); const sentMessage = await message.reply({
const sentMessage = await message.reply({ content: `La latence est de : ${client.ws.ping}`,
content: `La latence est de : ${client.ws.ping}`, components: [row],
components: [row], allowedMentions: { repliedUser: false },
allowedMentions: { repliedUser: false }, });
});
const filter = (i) =>
i.customId === "confirm" && i.user.id === message.author.id;
const filter = i => i.customId === 'confirm' && i.user.id === message.author.id; const collector = sentMessage.createMessageComponentCollector({
const collector = sentMessage.createMessageComponentCollector({ filter, time: 15000 }) filter,
collector.on('collect', async (interaction) => { time: 15000,
sentMessage.edit({ });
content: `La latence est de : ${client.ws.ping}`, collector.on("collect", async (interaction) => {
components: [row], sentMessage.edit({
allowedMentions: { repliedUser: false }, content: `La latence est de : ${client.ws.ping}`,
}); components: [row],
interaction.reply({ content: 'La latence a été rafraichie', ephemeral: true, allowedMentions: { repliedUser: false } }); allowedMentions: { repliedUser: false },
}); });
interaction.reply({
collector.on('end', () => { content: "La latence a été rafraichie",
sentMessage.edit({ components: [], allowedMentions: { repliedUser: false } }); ephemeral: true,
}); allowedMentions: { repliedUser: false },
} });
}; });
collector.on("end", () => {
sentMessage.edit({
components: [],
allowedMentions: { repliedUser: false },
});
});
},
};
+11 -11
View File
@@ -1,18 +1,18 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require("discord.js");
module.exports = { module.exports = {
aliases: ['dire', 'envoyer', 'send'], aliases: ["dire", "envoyer", "send"],
description: 'Permet de dire un message sous le noms du bot', description: "Permet de dire un message sous le noms du bot",
emote: '💬', emote: "💬",
utilisation: '<message>', utilisation: "<message>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
message.delete() message.delete();
let msg = "" let msg = "";
for (let i = 0; i < args.length; i++) { for (let i = 0; i < args.length; i++) {
msg += args[i] + ' ' msg += args[i] + " ";
} }
message.channel.send(msg) message.channel.send(msg);
} },
}; };
+49 -45
View File
@@ -1,53 +1,57 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require("discord.js");
module.exports = { module.exports = {
aliases: ['morse'], aliases: ["morse"],
description: 'Permet de dire un message sous le noms du bot', description: "Permet de dire un message sous le noms du bot",
emote: '💬', emote: "💬",
utilisation: '<message>', utilisation: "<message>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
message.delete() message.delete();
const morseCode = { const morseCode = {
"A": ".- ", A: ".- ",
"B": "-... ", B: "-... ",
"C": "-.-. ", C: "-.-. ",
"D": "-.. ", D: "-.. ",
"E": ". ", E: ". ",
"F": "..-. ", F: "..-. ",
"G": "--. ", G: "--. ",
"H": ".... ", H: ".... ",
"I": ".. ", I: ".. ",
"J": ".--- ", J: ".--- ",
"K": "-.- ", K: "-.- ",
"L": ".-.. ", L: ".-.. ",
"M": "-- ", M: "-- ",
"N": "-. ", N: "-. ",
"O": "--- ", O: "--- ",
"P": ".--. ", P: ".--. ",
"Q": "--.- ", Q: "--.- ",
"R": ".-. ", R: ".-. ",
"S": "... ", S: "... ",
"T": "- ", T: "- ",
"U": "..- ", U: "..- ",
"V": "...- ", V: "...- ",
"W": ".-- ", W: ".-- ",
"X": "-..- ", X: "-..- ",
"Y": "-.-- ", Y: "-.-- ",
"Z": "--.. ", Z: "--.. ",
" ": " " " ": " ",
};
const convertToMorse = (str) => {
return str.toUpperCase().split("").map(el => {
return morseCode[el] ? morseCode[el] : el;
}).join("");
}; };
let msg = message.content const convertToMorse = (str) => {
msg = msg.replace('&morse ', '') return str
msg = msg.replace('&saymorse ', '') .toUpperCase()
message.channel.send(convertToMorse(msg)) .split("")
} .map((el) => {
}; return morseCode[el] ? morseCode[el] : el;
})
.join("");
};
let msg = message.content;
msg = msg.replace("&morse ", "");
msg = msg.replace("&saymorse ", "");
message.channel.send(convertToMorse(msg));
},
};
+51 -48
View File
@@ -1,53 +1,56 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require("discord.js");
module.exports = { module.exports = {
aliases: ['unmorse'], aliases: ["unmorse"],
description: 'Permet de dire un message sous le noms du bot', description: "Permet de dire un message sous le noms du bot",
emote: '💬', emote: "💬",
utilisation: '<message>', utilisation: "<message>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
message.delete() message.delete();
const morseCode = { const morseCode = {
".-": "A", ".-": "A",
"-...": "B", "-...": "B",
"-.-.": "C", "-.-.": "C",
"-..": "D", "-..": "D",
".": "E", ".": "E",
"..-.": "F", "..-.": "F",
"--.": "G", "--.": "G",
"....": "H", "....": "H",
"..": "I", "..": "I",
".---": "J", ".---": "J",
"-.-": "K", "-.-": "K",
".-..": "L", ".-..": "L",
"--": "M", "--": "M",
"-.": "N", "-.": "N",
"---": "O", "---": "O",
".--.": "P", ".--.": "P",
"--.-": "Q", "--.-": "Q",
".-.": "R", ".-.": "R",
"...": "S", "...": "S",
"-": "T", "-": "T",
"..-": "U", "..-": "U",
"...-": "V", "...-": "V",
".--": "W", ".--": "W",
"-..-": "X", "-..-": "X",
"-.--": "Y", "-.--": "Y",
"--..": "Z", "--..": "Z",
" ": " " " ": " ",
}; };
const convertFromMorse = (str) => { const convertFromMorse = (str) => {
return str.split(" ").map(el => { return str
return morseCode[el] ? morseCode[el] : el; .split(" ")
}).join(""); .map((el) => {
}; return morseCode[el] ? morseCode[el] : el;
})
.join("");
};
let msg = message.content let msg = message.content;
msg = msg.replace('&unmorse ', '') msg = msg.replace("&unmorse ", "");
msg = msg.replace('&sayunmorse ', '') msg = msg.replace("&sayunmorse ", "");
message.channel.send(convertFromMorse(msg)) message.channel.send(convertFromMorse(msg));
} },
}; };
+66 -47
View File
@@ -1,47 +1,66 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const {
const embedColor = require('../../fonctions/embedColor.js'); EmbedBuilder,
ButtonStyle,
module.exports = { ButtonBuilder,
aliases: ['srvs'], ActionRowBuilder,
description: 'Affiche la liste des serveurs où le bot est présent', } = require("discord.js");
emote: '🌐', const embedColor = require("../../fonctions/embedColor.js");
utilisation: '',
permission: 10, module.exports = {
aliases: ["srvs"],
async execute(message, args, client) { description: "Affiche la liste des serveurs où le bot est présent",
const embed = new EmbedBuilder() emote: "🌐",
.setTitle('Liste des serveurs') utilisation: "",
.setDescription(client.guilds.cache.map(guild => `${guild.name} (ID: ${guild.id})`).join('\n')) permission: 10,
.setColor(await embedColor(message.author.id, message.guild.id));
async execute(message, args, client) {
const ping = new ButtonBuilder() const embed = new EmbedBuilder()
.setCustomId('confirm') .setTitle("Liste des serveurs")
.setLabel('🔄') .setDescription(
.setStyle(ButtonStyle.Primary); client.guilds.cache
.map((guild) => `${guild.name} (ID: ${guild.id})`)
const row = new ActionRowBuilder() .join("\n"),
.addComponents(ping); )
.setColor(await embedColor(message.author.id, message.guild.id));
const sentMessage = await message.reply({
embeds: [embed], const ping = new ButtonBuilder()
components: [row], .setCustomId("confirm")
allowedMentions: { repliedUser: false } .setLabel("🔄")
}); .setStyle(ButtonStyle.Primary);
const filter = i => i.customId === 'confirm' && i.user.id === message.author.id; const row = new ActionRowBuilder().addComponents(ping);
const collector = sentMessage.createMessageComponentCollector({ filter, time: 60000 });
const sentMessage = await message.reply({
collector.on('collect', async (interaction) => { embeds: [embed],
embed.setDescription(client.guilds.cache.map(guild => `${guild.name} (ID: ${guild.id})`).join('\n')); components: [row],
sentMessage.edit({ allowedMentions: { repliedUser: false },
embeds: [embed], });
components: [row],
}); const filter = (i) =>
interaction.reply({ content: 'La liste des serveurs a été rafraichie', ephemeral: true }); i.customId === "confirm" && i.user.id === message.author.id;
}); const collector = sentMessage.createMessageComponentCollector({
filter,
collector.on('end', () => { time: 60000,
sentMessage.edit({ components: [] }); });
});
} collector.on("collect", async (interaction) => {
}; embed.setDescription(
client.guilds.cache
.map((guild) => `${guild.name} (ID: ${guild.id})`)
.join("\n"),
);
sentMessage.edit({
embeds: [embed],
components: [row],
});
interaction.reply({
content: "La liste des serveurs a été rafraichie",
ephemeral: true,
});
});
collector.on("end", () => {
sentMessage.edit({ components: [] });
});
},
};
+32 -22
View File
@@ -1,25 +1,35 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const {
const embedColor = require('../../fonctions/embedColor.js'); EmbedBuilder,
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['upt'], aliases: ["upt"],
description: 'Affiche depuis combien de temps le bot est en ligne.', description: "Affiche depuis combien de temps le bot est en ligne.",
emote: '⏱️', emote: "⏱️",
utilisation: '', utilisation: "",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const uptime = client.uptime; const uptime = client.uptime;
const days = Math.floor(uptime / 86400000); const days = Math.floor(uptime / 86400000);
const hours = Math.floor((uptime / 3600000) % 24); const hours = Math.floor((uptime / 3600000) % 24);
const minutes = Math.floor((uptime / 60000) % 60); const minutes = Math.floor((uptime / 60000) % 60);
const seconds = Math.floor((uptime / 1000) % 60); const seconds = Math.floor((uptime / 1000) % 60);
const ms = Math.floor(uptime % 1000) const ms = Math.floor(uptime % 1000);
const embedUptime = new EmbedBuilder() const embedUptime = new EmbedBuilder()
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTitle("Uptime :") .setTitle("Uptime :")
.setDescription(`**Je suis en ligne depuis :**\n**🤖 \`${days}\` jour(s), \`${hours}\` heure(s), \`${minutes}\` minute(s), \`${seconds}\` seconde(s) et \`${ms}\` milisecondes. 🤖**`) .setDescription(
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); `**Je suis en ligne depuis :**\n**🤖 \`${days}\` jour(s), \`${hours}\` heure(s), \`${minutes}\` minute(s), \`${seconds}\` seconde(s) et \`${ms}\` milisecondes. 🤖**`,
message.channel.send({ embeds: [embedUptime] }) )
} .setFooter({
}; text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.channel.send({ embeds: [embedUptime] });
},
};
+86 -70
View File
@@ -1,70 +1,86 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['dy'], aliases: ["dy"],
description: 'Récupère une grosse somme de coins chaque jour. ', description: "Récupère une grosse somme de coins chaque jour. ",
emote: '🎁', emote: "🎁",
utilisation: '', utilisation: "",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const user = await new Promise((resolve, reject) => { const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, message.author.id],
}); (err, row) => {
}); if (err) reject(err);
const lastDaily = user.lastDaily resolve(row);
const pocket = user.pocket },
);
if (lastDaily > Date.now() - 86400000) { });
const embed = new EmbedBuilder() const lastDaily = user.lastDaily;
.setTitle('Argent Impossible') const pocket = user.pocket;
.setDescription(`❌ Vous avez déjà récupèré votre argent quotidien récemment. Veuillez attendre \`${Math.floor((lastDaily + 86400000 - Date.now()) / 60000)}\` minutes avant de pouvoir travailler à nouveau.`)
.setColor(await embedColor(message.author.id, message.guild.id)) if (lastDaily > Date.now() - 86400000) {
.setTimestamp() const embed = new EmbedBuilder()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setTitle("Argent Impossible")
.setDescription(
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); `❌ Vous avez déjà récupèré votre argent quotidien récemment. Veuillez attendre \`${Math.floor((lastDaily + 86400000 - Date.now()) / 60000)}\` minutes avant de pouvoir travailler à nouveau.`,
} )
.setColor(await embedColor(message.author.id, message.guild.id))
const randomAmount = Math.floor(Math.random() * (1000 - 500 + 1)) + 500; .setTimestamp()
db.run(`UPDATE users SET pocket = ?, lastDaily = ? WHERE guildId = ? AND userId = ?`, [pocket + randomAmount, Date.now(), message.guild.id, message.author.id]); .setFooter({
text: `Demandé par ${message.author.tag}`,
const dailys = [ iconURL: message.author.displayAvatarURL(),
`🌅 Vous vous êtes réveillé tôt ce matin et avez trouvé \`${randomAmount}\` coins sous votre oreiller.`, });
`🍳 Vous avez préparé un délicieux petit-déjeuner et avez été récompensé par \`${randomAmount}\` coins pour votre talent culinaire.`,
`☀️ En partant pour une promenade matinale, vous avez découvert \`${randomAmount}\` coins brillant sous le soleil levant.`, return message.reply({
`🌸 Vous avez aidé à planter de nouvelles fleurs dans le jardin du village et avez reçu \`${randomAmount}\` coins pour votre contribution.`, embeds: [embed],
`🐦 Vous avez nourri les oiseaux dans le parc et avez trouvé \`${randomAmount}\` coins cachés parmi les graines.`, allowedMentions: { repliedUser: false },
`📚 Après avoir lu un livre inspirant, vous avez été inspiré à démarrer votre journée avec \`${randomAmount}\` coins d'idées nouvelles.`, });
`🌱 Vous avez planté un arbre pour marquer le début de la journée et avez été récompensé par \`${randomAmount}\` coins pour votre action écologique.`, }
`🚴 Vous avez fait une balade à vélo matinale et avez découvert \`${randomAmount}\` coins sur le bord du chemin.`,
`🌞 Vous avez salué le lever du soleil avec une méditation paisible et avez trouvé \`${randomAmount}\` coins cachés dans votre esprit calme.`, const randomAmount = Math.floor(Math.random() * (1000 - 500 + 1)) + 500;
`🌳 En ramassant des déchets dans le parc, vous avez trouvé \`${randomAmount}\` coins comme récompense pour garder l'environnement propre.`, db.run(
`🎨 Vous avez commencé la journée avec une séance de peinture et avez vendu votre première toile pour \`${randomAmount}\` coins.`, `UPDATE users SET pocket = ?, lastDaily = ? WHERE guildId = ? AND userId = ?`,
`🐶 Vous avez promené le chien du voisin et avez été surpris avec \`${randomAmount}\` coins comme remerciement.`, [pocket + randomAmount, Date.now(), message.guild.id, message.author.id],
`📝 Vous avez tenu un journal de gratitude pour votre routine matinale et avez été récompensé par \`${randomAmount}\` coins pour chaque moment apprécié.`, );
`🏃‍♂️ Vous avez fait une course matinale et avez découvert \`${randomAmount}\` coins le long du parcours.`,
`☕ Après avoir préparé un café revigorant, vous avez trouvé \`${randomAmount}\` coins au fond de votre tasse.`, const dailys = [
`🌻 Vous avez cultivé votre jardin et avez récolté \`${randomAmount}\` coins en légumes frais pour le petit-déjeuner.`, `🌅 Vous vous êtes réveillé tôt ce matin et avez trouvé \`${randomAmount}\` coins sous votre oreiller.`,
`🎶 Vous avez écouté votre chanson préférée pour commencer la journée et avez été récompensé par \`${randomAmount}\` coins pour votre bon goût musical.`, `🍳 Vous avez préparé un délicieux petit-déjeuner et avez été récompensé par \`${randomAmount}\` coins pour votre talent culinaire.`,
`🌈 Vous avez commencé la journée avec une séance de yoga revitalisante et avez trouvé \`${randomAmount}\` coins dans la position du lotus.`, `☀️ En partant pour une promenade matinale, vous avez découvert \`${randomAmount}\` coins brillant sous le soleil levant.`,
`💌 Vous avez envoyé des messages de bonnes nouvelles à vos proches et avez été récompensé par \`${randomAmount}\` coins pour répandre la joie.`, `🌸 Vous avez aidé à planter de nouvelles fleurs dans le jardin du village et avez reçu \`${randomAmount}\` coins pour votre contribution.`,
`💻 Vous avez commencé votre journée de travail avec détermination et avez trouvé \`${randomAmount}\` coins cachés dans votre boîte de réception.`, `🐦 Vous avez nourri les oiseaux dans le parc et avez trouvé \`${randomAmount}\` coins cachés parmi les graines.`,
]; `📚 Après avoir lu un livre inspirant, vous avez été inspiré à démarrer votre journée avec \`${randomAmount}\` coins d'idées nouvelles.`,
`🌱 Vous avez planté un arbre pour marquer le début de la journée et avez été récompensé par \`${randomAmount}\` coins pour votre action écologique.`,
`🚴 Vous avez fait une balade à vélo matinale et avez découvert \`${randomAmount}\` coins sur le bord du chemin.`,
`🌞 Vous avez salué le lever du soleil avec une méditation paisible et avez trouvé \`${randomAmount}\` coins cachés dans votre esprit calme.`,
const embed = new EmbedBuilder() `🌳 En ramassant des déchets dans le parc, vous avez trouvé \`${randomAmount}\` coins comme récompense pour garder l'environnement propre.`,
.setTitle('Argent Récupéré') `🎨 Vous avez commencé la journée avec une séance de peinture et avez vendu votre première toile pour \`${randomAmount}\` coins.`,
.setDescription(dailys[Math.floor(Math.random() * dailys.length)]) `🐶 Vous avez promené le chien du voisin et avez été surpris avec \`${randomAmount}\` coins comme remerciement.`,
.setColor(await embedColor(message.author.id, message.guild.id)) `📝 Vous avez tenu un journal de gratitude pour votre routine matinale et avez été récompensé par \`${randomAmount}\` coins pour chaque moment apprécié.`,
.setTimestamp() `🏃‍♂️ Vous avez fait une course matinale et avez découvert \`${randomAmount}\` coins le long du parcours.`,
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); `☕ Après avoir préparé un café revigorant, vous avez trouvé \`${randomAmount}\` coins au fond de votre tasse.`,
`🌻 Vous avez cultivé votre jardin et avez récolté \`${randomAmount}\` coins en légumes frais pour le petit-déjeuner.`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); `🎶 Vous avez écouté votre chanson préférée pour commencer la journée et avez été récompensé par \`${randomAmount}\` coins pour votre bon goût musical.`,
}, `🌈 Vous avez commencé la journée avec une séance de yoga revitalisante et avez trouvé \`${randomAmount}\` coins dans la position du lotus.`,
}; `💌 Vous avez envoyé des messages de bonnes nouvelles à vos proches et avez été récompensé par \`${randomAmount}\` coins pour répandre la joie.`,
`💻 Vous avez commencé votre journée de travail avec détermination et avez trouvé \`${randomAmount}\` coins cachés dans votre boîte de réception.`,
];
const embed = new EmbedBuilder()
.setTitle("Argent Récupéré")
.setDescription(dailys[Math.floor(Math.random() * dailys.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 } });
},
};
+78 -58
View File
@@ -1,58 +1,78 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['dep', 'depot'], aliases: ["dep", "depot"],
description: 'Dépose vos coins dans votre compte en banque.', description: "Dépose vos coins dans votre compte en banque.",
emote: '💰', emote: "💰",
utilisation: '<montant|all>', utilisation: "<montant|all>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const user = await new Promise((resolve, reject) => { const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, message.author.id],
}); (err, row) => {
}); if (err) reject(err);
const pocket = user.pocket resolve(row);
const bank = user.bank },
);
let title = 'Dépôt Impossible' });
let description = '' const pocket = user.pocket;
const bank = user.bank;
if (args.length === 0) {
description = '❌ Vous devez spécifier un montant à déposer.' let title = "Dépôt Impossible";
} else if (args[0] === 'all') { let description = "";
if (pocket <= 0) {
description = '❌ Vous n\'avez pas d\'argent à déposer.' if (args.length === 0) {
} else { description = "❌ Vous devez spécifier un montant à déposer.";
title = 'Dépôt Réussi' } else if (args[0] === "all") {
description = `💰 Vous avez déposé \`${pocket}\` coins dans votre compte en banque.` if (pocket <= 0) {
db.run(`UPDATE users SET pocket = ?, bank = ? WHERE guildId = ? AND userId = ?`, [0, pocket + bank, message.guild.id, message.author.id]); description = "❌ Vous n'avez pas d'argent à déposer.";
} } else {
} else if (isNaN(args[0])) { title = "Dépôt Réussi";
description = '❌ Vous devez spécifier un montant valide à déposer.' description = `💰 Vous avez déposé \`${pocket}\` coins dans votre compte en banque.`;
} else if (pocket <= 0) { db.run(
description = '❌ Vous n\'avez pas d\'argent à déposer.' `UPDATE users SET pocket = ?, bank = ? WHERE guildId = ? AND userId = ?`,
} else if (parseInt(args[0]) > pocket) { [0, pocket + bank, message.guild.id, message.author.id],
description = '❌ Vous n\'avez pas assez d\'argent pour déposer cette somme.' );
} else if (parseInt(args[0]) <= 0) { }
description = '❌ Vous ne pouvez pas deposer une somme négative ou nulle.'; } else if (isNaN(args[0])) {
} else { description = "❌ Vous devez spécifier un montant valide à déposer.";
title = 'Dépôt Réussi' } else if (pocket <= 0) {
description = `💰 Vous avez déposé ${args[0]} coins dans votre compte en banque.` description = "❌ Vous n'avez pas d'argent à déposer.";
db.run(`UPDATE users SET pocket = ?, bank = ? WHERE guildId = ? AND userId = ?`, [pocket - parseInt(args[0]), bank + parseInt(args[0]), message.guild.id, message.author.id]); } else if (parseInt(args[0]) > pocket) {
} description =
"❌ Vous n'avez pas assez d'argent pour déposer cette somme.";
const embed = new EmbedBuilder() } else if (parseInt(args[0]) <= 0) {
.setTitle(title) description =
.setDescription(description) "❌ Vous ne pouvez pas deposer une somme négative ou nulle.";
.setColor(await embedColor(message.author.id, message.guild.id)) } else {
.setTimestamp() title = "Dépôt Réussi";
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); description = `💰 Vous avez déposé ${args[0]} coins dans votre compte en banque.`;
db.run(
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); `UPDATE users SET pocket = ?, bank = ? WHERE guildId = ? AND userId = ?`,
}, [
}; pocket - parseInt(args[0]),
bank + parseInt(args[0]),
message.guild.id,
message.author.id,
],
);
}
const embed = new EmbedBuilder()
.setTitle(title)
.setDescription(description)
.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 } });
},
};
+51 -26
View File
@@ -1,41 +1,66 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['coin', 'coins', 'money', 'balance', 'bal', 'wallet', 'cash', 'lvl', 'level', 'niv', 'niveau'], aliases: [
description: 'Affiche les coins du membre mentionné ou de l\'auteur du message.', "coin",
emote: '💵', "coins",
utilisation: '[@membre]', "money",
"balance",
"bal",
"wallet",
"cash",
"lvl",
"level",
"niv",
"niveau",
],
description:
"Affiche les coins du membre mentionné ou de l'auteur du message.",
emote: "💵",
utilisation: "[@membre]",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const member = message.mentions.members.first() || message.member; const member = message.mentions.members.first() || message.member;
const user = await new Promise((resolve, reject) => { const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, member.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
const pocket = Math.round(user.pocket) const pocket = Math.round(user.pocket);
const bank = Math.round(user.bank) const bank = Math.round(user.bank);
const reputation = user.reputation const reputation = user.reputation;
const niveau = user.lvl const niveau = user.lvl;
const xp = user.xp const xp = user.xp;
const tdrop = Math.round(user.tdroper) const tdrop = Math.round(user.tdroper);
let anti_rob = `` let anti_rob = ``;
if (user.antiRob + 7200000 > Date.now()) { if (user.antiRob + 7200000 > Date.now()) {
anti_rob = `\n> :shield: **Anti-Rob:** \`${Math.floor((user.antiRob + 7200000 - Date.now()) / 60000)}\` minutes.` anti_rob = `\n> :shield: **Anti-Rob:** \`${Math.floor((user.antiRob + 7200000 - Date.now()) / 60000)}\` minutes.`;
} }
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setAuthor({ name: `Détails du Compte de ${member.user.tag}`, iconURL: member.user.displayAvatarURL() }) .setAuthor({
.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}\`🎁`) 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}\`\n\nCoins donnés à une team: \`${tdrop}\`🎁`,
)
.setColor(await embedColor(member.id, message.guild.id)) .setColor(await embedColor(member.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}, },
}; };
+137 -105
View File
@@ -1,105 +1,137 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: [], aliases: [],
description: 'Paye un membre de votre serveur.', description: "Paye un membre de votre serveur.",
emote: '💳', emote: "💳",
utilisation: '<montant> <@membre>', utilisation: "<montant> <@membre>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
let amount; let amount;
const member = message.mentions.members.first(); const member = message.mentions.members.first();
const color = await embedColor(message.author.id, message.guild.id) const color = await embedColor(message.author.id, message.guild.id);
const footer = { text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() } const footer = {
text: `Demandé par ${message.author.tag}`,
const pocket = await new Promise((resolve, reject) => { iconURL: message.author.displayAvatarURL(),
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { };
if (err) reject(err);
resolve(row.pocket); const pocket = await new Promise((resolve, reject) => {
}); db.get(
}); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
if (!member) { (err, row) => {
return message.reply({ embeds: [ if (err) reject(err);
new EmbedBuilder() resolve(row.pocket);
.setTitle('Erreur') },
.setDescription('❌ Veuillez mentionner un membre du serveur.') );
.setColor(color) });
.setTimestamp()
.setFooter(footer) if (!member) {
], allowedMentions: { repliedUser: false } }); return message.reply({
} embeds: [
new EmbedBuilder()
if (!args[0]) { .setTitle("Erreur")
return message.reply({ embeds: [ .setDescription("❌ Veuillez mentionner un membre du serveur.")
new EmbedBuilder() .setColor(color)
.setTitle('Erreur') .setTimestamp()
.setDescription('❌ Veuillez spécifier un montant à payer.') .setFooter(footer),
.setColor(color) ],
.setTimestamp() allowedMentions: { repliedUser: false },
.setFooter(footer) });
], allowedMentions: { repliedUser: false } }); }
} else if (args[0] === 'all') { if (!args[0]) {
amount = pocket; return message.reply({
embeds: [
} else if (isNaN(args[0])) { new EmbedBuilder()
return message.reply({ embeds: [ .setTitle("Erreur")
new EmbedBuilder() .setDescription("❌ Veuillez spécifier un montant à payer.")
.setTitle('Erreur') .setColor(color)
.setDescription('❌ Veuillez spécifier un montant valide.') .setTimestamp()
.setColor(color) .setFooter(footer),
.setTimestamp() ],
.setFooter(footer) allowedMentions: { repliedUser: false },
], allowedMentions: { repliedUser: false } }); });
} else if (args[0] === "all") {
} else if (args[0] <= 0) { amount = pocket;
return message.reply({ embeds: [ } else if (isNaN(args[0])) {
new EmbedBuilder() return message.reply({
.setTitle('Erreur') embeds: [
.setDescription('❌ Veuillez spécifier un montant supérieur à \`0\`.') new EmbedBuilder()
.setColor(color) .setTitle("Erreur")
.setTimestamp() .setDescription("❌ Veuillez spécifier un montant valide.")
.setFooter(footer) .setColor(color)
], allowedMentions: { repliedUser: false } }); .setTimestamp()
.setFooter(footer),
} else if (args[0] > pocket) { ],
return message.reply({ embeds: [ allowedMentions: { repliedUser: false },
new EmbedBuilder() });
.setTitle('Erreur') } else if (args[0] <= 0) {
.setDescription('❌ Vous n\'avez pas assez d\'argent pour effectuer cette transaction.') return message.reply({
.setColor(color) embeds: [
.setTimestamp() new EmbedBuilder()
.setFooter(footer) .setTitle("Erreur")
], allowedMentions: { repliedUser: false } }); .setDescription("❌ Veuillez spécifier un montant supérieur à `0`.")
.setColor(color)
} else if (!Number.isInteger(Number(args[0]))) { .setTimestamp()
return message.reply({ embeds: [ .setFooter(footer),
new EmbedBuilder() ],
.setTitle('Erreur') allowedMentions: { repliedUser: false },
.setDescription('❌ Veuillez spécifier un montant entier.') });
.setColor(color) } else if (args[0] > pocket) {
.setTimestamp() return message.reply({
.setFooter(footer) embeds: [
], allowedMentions: { repliedUser: false } }); new EmbedBuilder()
.setTitle("Erreur")
} else { .setDescription(
amount = args[0]; "❌ Vous n'avez pas assez d'argent pour effectuer cette transaction.",
} )
.setColor(color)
db.run(`UPDATE users SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`, [amount, message.guild.id, message.author.id]); .setTimestamp()
db.run(`UPDATE users SET pocket = pocket + ? WHERE guildId = ? AND userId = ?`, [amount, message.guild.id, member.id]); .setFooter(footer),
],
message.reply({ embeds: [ allowedMentions: { repliedUser: false },
new EmbedBuilder() });
.setTitle('Paiement') } else if (!Number.isInteger(Number(args[0]))) {
.setDescription(`💰 Vous avez payé \`${amount}\` à ${member.user.tag}.`) return message.reply({
.setColor(color) embeds: [
.setTimestamp() new EmbedBuilder()
.setFooter(footer) .setTitle("Erreur")
], allowedMentions: { repliedUser: false } }); .setDescription("❌ Veuillez spécifier un montant entier.")
}, .setColor(color)
}; .setTimestamp()
.setFooter(footer),
],
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 users SET pocket = pocket + ? WHERE guildId = ? AND userId = ?`,
[amount, message.guild.id, member.id],
);
message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Paiement")
.setDescription(
`💰 Vous avez payé \`${amount}\` à ${member.user.tag}.`,
)
.setColor(color)
.setTimestamp()
.setFooter(footer),
],
allowedMentions: { repliedUser: false },
});
},
};
+43 -26
View File
@@ -1,52 +1,69 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['recolt', 'recolte'], aliases: ["recolt", "recolte"],
description: 'Recolter des objets que vous pourrez vendre ensuite.', description: "Recolter des objets que vous pourrez vendre ensuite.",
emote: '💼', emote: "💼",
utilisation: '', utilisation: "",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const user = await new Promise((resolve, reject) => { const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
const lastRecolt = user.lastRecolt const lastRecolt = user.lastRecolt;
const objet = user.objet const objet = user.objet;
if (lastRecolt > Date.now() - 2700000) { if (lastRecolt > Date.now() - 2700000) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Recolte Impossible') .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.`) .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)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
const randomAmount = Math.floor(Math.random() * 2) + 1; 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]); db.run(
`UPDATE users SET objet = ?, lastRecolt = ? WHERE guildId = ? AND userId = ?`,
[objet + randomAmount, Date.now(), message.guild.id, message.author.id],
);
const recolts = [ const recolts = [
`🍒 Vous avez recolté des cerises sur ${randomAmount} arbre(s) dans votre jardin.`, `🍒 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 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.` `🌳 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() const embed = new EmbedBuilder()
.setTitle('Objet recolter') .setTitle("Objet recolter")
.setDescription(recolts[Math.floor(Math.random() * recolts.length)]) .setDescription(recolts[Math.floor(Math.random() * recolts.length)])
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}, },
}; };
+125 -67
View File
@@ -1,92 +1,150 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['reputation'], aliases: ["reputation"],
description: `Ajoute un point de reputation a un membre.`, description: `Ajoute un point de reputation a un membre.`,
emote: '', emote: "",
utilisation: '<membre-id|@membre>', utilisation: "<membre-id|@membre>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const member = message.mentions.members.first()?.id || args[0]; const member = message.mentions.members.first()?.id || args[0];
if (args.length < 1 && !member) { if (args.length < 1 && !member) {
return message.reply({ embeds: [ return message.reply({
new EmbedBuilder() embeds: [
.setTitle('Erreur') new EmbedBuilder()
.setDescription('❌ Veuillez spécifier un membre du serveur.') .setTitle("Erreur")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription("❌ Veuillez spécifier un membre du serveur.")
.setTimestamp() .setColor(await embedColor(message.author.id, message.guild.id))
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setTimestamp()
], allowedMentions: { repliedUser: false } }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} }
const lastRep = await new Promise((resolve, reject) => { const lastRep = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row.lastRep); [message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
resolve(row.lastRep);
},
);
}); });
if (lastRep > Date.now() - 7200000) { if (lastRep > Date.now() - 7200000) {
return message.reply({ embeds: [ return message.reply({
new EmbedBuilder() embeds: [
.setTitle('Ajout Impossible') new EmbedBuilder()
.setDescription(`❌ Vous avez déjà ajouter une reputation récemment. Veuillez attendre ${Math.floor((lastRep + 5400000 - Date.now()) / 60000)} minutes avant de pouvoir ajouter une reputation à nouveau.`) .setTitle("Ajout Impossible")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(
.setTimestamp() `❌ Vous avez déjà ajouter une reputation récemment. Veuillez attendre ${Math.floor((lastRep + 5400000 - Date.now()) / 60000)} minutes avant de pouvoir ajouter une reputation à nouveau.`,
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) )
], allowedMentions: { repliedUser: false } }); .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} }
const userReputation = await new Promise((resolve, reject) => { const userReputation = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, member], async (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
if (!row) { [message.guild.id, member],
return message.reply({ embeds: [ async (err, row) => {
new EmbedBuilder() if (err) reject(err);
.setTitle('Erreur') if (!row) {
.setDescription('❌ L\'utilisateur spécifié n\'existe pas.') return message.reply({
.setColor(await embedColor(message.author.id, message.guild.id)) embeds: [
.setTimestamp() new EmbedBuilder()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setTitle("Erreur")
], allowedMentions: { repliedUser: false } }); .setDescription("❌ L'utilisateur spécifié n'existe pas.")
} .setColor(
resolve(parseInt(row.reputation)); await embedColor(message.author.id, message.guild.id),
}); )
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
resolve(parseInt(row.reputation));
},
);
}); });
if (member === message.author.id) { if (member === message.author.id) {
return message.reply({ embeds: [ return message.reply({
new EmbedBuilder() embeds: [
.setTitle('Erreur') new EmbedBuilder()
.setDescription('❌ Vous ne pouvez pas vous donner une réputation à vous-même.') .setTitle("Erreur")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(
.setTimestamp() "❌ Vous ne pouvez pas vous donner une réputation à vous-même.",
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) )
], allowedMentions: { repliedUser: false } }); .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} }
db.run(`UPDATE users SET lastRep = ? WHERE guildId = ? AND userId = ?`, [Date.now(), message.guild.id, message.author.id], (err) => { db.run(
if (err) { `UPDATE users SET lastRep = ? WHERE guildId = ? AND userId = ?`,
console.log(`${err}`.red) [Date.now(), message.guild.id, message.author.id],
} (err) => {
}); if (err) {
console.log(`${err}`.red);
}
},
);
db.run(`UPDATE users SET reputation = reputation + 1 WHERE guildId = ? AND userId = ?`, [message.guild.id, member], (err) => { db.run(
if (err) { `UPDATE users SET reputation = reputation + 1 WHERE guildId = ? AND userId = ?`,
console.log(`${err}`.red) [message.guild.id, member],
} (err) => {
}); if (err) {
console.log(`${err}`.red);
}
},
);
message.reply({ embeds: [ message.reply({
new EmbedBuilder() embeds: [
.setTitle('Reputation ajouté !') new EmbedBuilder()
.setDescription('Vous avez ajouter une reputation à <@' + member + '>, qui a maintement `' + (userReputation + 1) + '` reputation !') .setTitle("Reputation ajouté !")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(
.setTimestamp() "Vous avez ajouter une reputation à <@" +
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) member +
], allowedMentions: { repliedUser: false } }); ">, qui a maintement `" +
(userReputation + 1) +
"` reputation !",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}, },
}; };
+158 -101
View File
@@ -1,101 +1,158 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: [], aliases: [],
description: 'Vole les coins de la main d\'un membre.', description: "Vole les coins de la main d'un membre.",
emote: '🦹', emote: "🦹",
utilisation: '<@membre>', utilisation: "<@membre>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const member = message.mentions.users.first(); const member = message.mentions.users.first();
if (!member) { if (!member) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Vous devez mentionner un membre.') .setDescription("❌ Vous devez mentionner un membre.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); iconURL: message.author.displayAvatarURL(),
} });
const user = await new Promise((resolve, reject) => { return message.reply({
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { embeds: [embed],
if (err) reject(err); allowedMentions: { repliedUser: false },
resolve(row); });
}); }
});
const memberlist = await new Promise((resolve, reject) => { const user = await new Promise((resolve, reject) => {
db.all(`SELECT userId FROM users WHERE guildId = ? AND teamId = ?`, [message.guild.id, user.teamId], (err, rows) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(rows); [message.guild.id, message.author.id],
}); (err, row) => {
}); if (err) reject(err);
if (memberlist.includes(member)) return message.reply({ embeds: [ resolve(row);
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)) const memberlist = await new Promise((resolve, reject) => {
.setTimestamp() db.all(
.setFooter(footer) `SELECT userId FROM users WHERE guildId = ? AND teamId = ?`,
], allowedMentions: { repliedUser: false } }); [message.guild.id, user.teamId],
(err, rows) => {
if (user.lastRob + 7200000 > Date.now()) { if (err) reject(err);
const embed = new EmbedBuilder() resolve(rows);
.setTitle('Erreur') },
.setDescription(`❌ Vous devez encore attendre ${Math.floor((user.lastRob + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir voler à nouveau.`) );
.setColor(await embedColor(message.author.id, message.guild.id)) });
.setTimestamp() if (memberlist.includes(member))
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); return message.reply({
embeds: [
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); new EmbedBuilder()
} .setTitle("Erreur")
.setDescription(
const memberInfo = await new Promise((resolve, reject) => { "❌ Veuillez choisir un membre qui __n'est pas__ dans votre team.",
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id], (err, row) => { )
if (err) reject(err); .setColor(await embedColor(message.author.id, message.guild.id))
resolve(row); .setTimestamp()
}); .setFooter(footer),
}); ],
allowedMentions: { repliedUser: false },
if (memberInfo.antiRob + 7200000 > Date.now()) { });
const embed = new EmbedBuilder()
.setTitle('Erreur') if (user.lastRob + 7200000 > Date.now()) {
.setDescription(`❌ Vous ne pouvez pas voler <@${member.id}> pour le moment, il est protégé par un bouclier anti-vol pendant encore \`${Math.floor((memberInfo.antiRob + 7200000 - Date.now()) / 60000)}\` minutes.`) const embed = new EmbedBuilder()
.setColor(await embedColor(message.author.id, message.guild.id)) .setTitle("Erreur")
.setTimestamp() .setDescription(
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); `❌ Vous devez encore attendre ${Math.floor((user.lastRob + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir voler à nouveau.`,
)
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); .setColor(await embedColor(message.author.id, message.guild.id))
} .setTimestamp()
.setFooter({
const memberPocket = memberInfo.pocket; text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
if (memberPocket <= 0) { });
const embed = new EmbedBuilder()
.setTitle('Erreur') return message.reply({
.setDescription(`❌ <@${member.id}> n'a pas d'argent sur lui pour que vous puissiez le voler.`) embeds: [embed],
.setColor(await embedColor(message.author.id, message.guild.id)) allowedMentions: { repliedUser: false },
.setTimestamp() });
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); }
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); const memberInfo = await new Promise((resolve, reject) => {
} db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
const amount = Math.floor(Math.random() * memberPocket) + 1; [message.guild.id, member.id],
db.run(`UPDATE users SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`, [amount, message.guild.id, member.id]); (err, row) => {
db.run(`UPDATE users SET pocket = pocket + ?, lastRob = ? WHERE guildId = ? AND userId = ?`, [amount, Date.now(), message.guild.id, message.author.id]); if (err) reject(err);
resolve(row);
const embed = new EmbedBuilder() },
.setTitle('Vol') );
.setDescription(`💰 Vous avez volé ${amount} à <@${member.id}>.`) });
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() if (memberInfo.antiRob + 7200000 > Date.now()) {
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); const embed = new EmbedBuilder()
.setTitle("Erreur")
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); .setDescription(
}, `❌ Vous ne pouvez pas voler <@${member.id}> pour le moment, il est protégé par un bouclier anti-vol pendant encore \`${Math.floor((memberInfo.antiRob + 7200000 - Date.now()) / 60000)}\` minutes.`,
}; )
.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 memberPocket = memberInfo.pocket;
if (memberPocket <= 0) {
const embed = new EmbedBuilder()
.setTitle("Erreur")
.setDescription(
`❌ <@${member.id}> n'a pas d'argent sur lui pour que vous puissiez le voler.`,
)
.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 amount = Math.floor(Math.random() * memberPocket) + 1;
db.run(
`UPDATE users SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`,
[amount, message.guild.id, member.id],
);
db.run(
`UPDATE users SET pocket = pocket + ?, lastRob = ? WHERE guildId = ? AND userId = ?`,
[amount, Date.now(), message.guild.id, message.author.id],
);
const embed = new EmbedBuilder()
.setTitle("Vol")
.setDescription(`💰 Vous avez volé ${amount} à <@${member.id}>.`)
.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 } });
},
};
+255 -175
View File
@@ -1,182 +1,262 @@
const { EmbedBuilder, ActionRowBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } = require('discord.js'); const {
const db = require('../../fonctions/database.js'); EmbedBuilder,
const embedColor = require('../../fonctions/embedColor.js'); ActionRowBuilder,
StringSelectMenuBuilder,
StringSelectMenuOptionBuilder,
} = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['vendre'], aliases: ["vendre"],
description: 'Affiche le menu de vente des objets.', description: "Affiche le menu de vente des objets.",
emote: '🛍️', emote: "🛍️",
utilisation: '', utilisation: "",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const user = await new Promise((resolve, reject) => { const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [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() const embed = new EmbedBuilder()
.setTitle('🛍️ Shop') .setTitle("🛍️ Shop")
.setThumbnail(message.guild.iconURL()) .setDescription(
.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é.`) `Vous avez vendu \`${select}\`objet pour \`${200 * select}\`coins !`,
.setColor(await embedColor(message.author.id, message.guild.id)) )
.setTimestamp() .setColor(await embedColor(message.author.id, message.guild.id))
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
const select = new StringSelectMenuBuilder() interaction.reply({
.setCustomId('sell') embeds: [embed],
.setPlaceholder('Sélectionnez un nombre d\'objet') allowedMentions: { repliedUser: false },
.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 } });
}
}); });
}, } 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 },
});
}
});
},
};
+315 -209
View File
@@ -1,209 +1,315 @@
const { EmbedBuilder, ActionRowBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } = require('discord.js'); const {
const db = require('../../fonctions/database.js'); EmbedBuilder,
const embedColor = require('../../fonctions/embedColor.js'); ActionRowBuilder,
StringSelectMenuBuilder,
module.exports = { StringSelectMenuOptionBuilder,
aliases: ['leaderboard', 'lb', 'ttop'], } = require("discord.js");
description: 'Affiche le top 10 des membres/teams du serveur.', const db = require("../../fonctions/database.js");
emote: '🏆', const embedColor = require("../../fonctions/embedColor.js");
utilisation: '[global|pocket|bank|reputation|niveau|team|teamreputation|teamdonnateur]',
permission: 0, module.exports = {
aliases: ["leaderboard", "lb", "ttop"],
async execute(message, args, client) { description: "Affiche le top 10 des membres/teams du serveur.",
if (args[0] === 'coins' || args[0] === 'coin' || args[0] === 'global' || args[0] === 'money') { emote: "🏆",
args[0] = 'coins' utilisation:
} else if (args[0] === 'pocket' || args[0] === 'cash' || args[0] === 'wallet' || args[0] === 'porte-monnaie' || args[0] === 'poche') { "[global|pocket|bank|reputation|niveau|team|teamreputation|teamdonnateur]",
args[0] = 'pocket' permission: 0,
} else if (args[0] === 'bank' || args[0] === 'banque' || args[0] === 'coffre' || args[0] === 'coffre-fort' || args[0] === 'bk') {
args[0] = 'bank' async execute(message, args, client) {
} else if (args[0] === 'reputation' || args[0] === 'rep' || args[0] === 'réputation' || args[0] === 'reput') { if (
args[0] = 'reputation' args[0] === "coins" ||
} else if (args[0] === 'niveau' || args[0] === 'lvl' || args[0] === 'level' || args[0] === 'lvl') { args[0] === "coin" ||
args[0] = 'niveau' args[0] === "global" ||
} else if (args[0] === 'team' || args[0] === 't') { args[0] === "money"
args[0] = 'team' ) {
} else if (args[0] === 'teamreputation' || args[0] === 'treputation' || args[0] === 'teamrep' || args[0] === 'trep') { args[0] = "coins";
args[0] = 'team' } else if (
} 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] === "pocket" ||
args[0] = 'teamdroper' args[0] === "cash" ||
} else if (!args[0]) { args[0] === "wallet" ||
args[0] = 'coins' args[0] === "porte-monnaie" ||
} else { args[0] === "poche"
args[0] = 'coins' ) {
message.reply({ embeds: [ args[0] = "pocket";
new EmbedBuilder() } else if (
.setTitle('Argument invalide') args[0] === "bank" ||
.setDescription(`Vous pouvez utiliser les arguments suivants: \`coins\`, \`pocket\`, \`bank\`, \`reputation\`, \`niveau\`, \`team\`, \`teamreputation\`, \`teamdonnateur\`, ou ne rien mettre pour afficher le top 10 des membres du serveur.`) args[0] === "banque" ||
.setColor(await embedColor(message.author.id, message.guild.id)) args[0] === "coffre" ||
.setTimestamp() args[0] === "coffre-fort" ||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) args[0] === "bk"
], allowedMentions: { repliedUser: false } }) ) {
} args[0] = "bank";
} else if (
async function leaderboard (type) { args[0] === "reputation" ||
let data; args[0] === "rep" ||
if (type === 'coins') { args[0] === "réputation" ||
data = await new Promise((resolve, reject) => { args[0] === "reput"
db.all(`SELECT userId, pocket+bank AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { ) {
if (err) reject(err); args[0] = "reputation";
resolve(rows); } else if (
}); args[0] === "niveau" ||
}); args[0] === "lvl" ||
} else if (type === 'pocket') { args[0] === "level" ||
data = await new Promise((resolve, reject) => { args[0] === "lvl"
db.all(`SELECT userId, pocket AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { ) {
if (err) reject(err); args[0] = "niveau";
resolve(rows); } else if (args[0] === "team" || args[0] === "t") {
}); args[0] = "team";
}); } else if (
} else if (type === 'bank') { args[0] === "teamreputation" ||
data = await new Promise((resolve, reject) => { args[0] === "treputation" ||
db.all(`SELECT userId, bank AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { args[0] === "teamrep" ||
if (err) reject(err); args[0] === "trep"
resolve(rows); ) {
}); args[0] = "team";
}); } else if (
} else if (type === 'reputation') { args[0] === "teamdonnateur" ||
data = await new Promise((resolve, reject) => { args[0] === " tdonnateur" ||
db.all(`SELECT userId, reputation AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { args[0] === "tdroper" ||
if (err) reject(err); args[0] === " tdropper" ||
resolve(rows); args[0] === " teamdrop" ||
}); args[0] === "tdrop" ||
}); args[0] === "teamdroper" ||
} else if (type === 'niveau') { args[0] === "teamdropper"
data = await new Promise((resolve, reject) => { ) {
db.all(`SELECT userId, lvl AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { args[0] = "teamdroper";
if (err) reject(err); } else if (!args[0]) {
resolve(rows); args[0] = "coins";
}); } else {
}); args[0] = "coins";
} else if (type === 'team') { message.reply({
data = await new Promise((resolve, reject) => { embeds: [
db.all(`SELECT name, bank AS coins FROM teams WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { new EmbedBuilder()
if (err) reject(err); .setTitle("Argument invalide")
resolve(rows); .setDescription(
}); `Vous pouvez utiliser les arguments suivants: \`coins\`, \`pocket\`, \`bank\`, \`reputation\`, \`niveau\`, \`team\`, \`teamreputation\`, \`teamdonnateur\`, ou ne rien mettre pour afficher le top 10 des membres du serveur.`,
}); )
} else if (type === 'teamreputation') { .setColor(await embedColor(message.author.id, message.guild.id))
data = await new Promise((resolve, reject) => { .setTimestamp()
db.all(`SELECT name, reputation AS teams FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { .setFooter({
if (err) reject(err); text: `Demandé par ${message.author.tag}`,
resolve(rows); iconURL: message.author.displayAvatarURL(),
}); }),
}); ],
} else if (type === 'teamdroper') { allowedMentions: { repliedUser: false },
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); async function leaderboard(type) {
}); let data;
}); if (type === "coins") {
} data = await new Promise((resolve, reject) => {
db.all(
const emoji = { `SELECT userId, pocket+bank AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`,
coins: '🪙', [message.guild.id],
pocket: '💰', (err, rows) => {
bank: '🏦', if (err) reject(err);
reputation: '🔺', resolve(rows);
niveau: '📊', },
team: '👑', );
teamreputation: '🔺', });
teamdroper: '🎁' } else if (type === "pocket") {
} data = await new Promise((resolve, reject) => {
db.all(
let leaderboard = data.map((row, i) => { `SELECT userId, pocket AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`,
let position; [message.guild.id],
switch (i) { (err, rows) => {
case 0: if (err) reject(err);
position = ':first_place:'; resolve(rows);
break; },
case 1: );
position = ':second_place:'; });
break; } else if (type === "bank") {
case 2: data = await new Promise((resolve, reject) => {
position = ':third_place:'; db.all(
break; `SELECT userId, bank AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`,
default: [message.guild.id],
position = `**${i + 1}.**`; (err, rows) => {
} if (err) reject(err);
return `${position} <@${row.userId}> - \`${row.coins}\` ${emoji[type]}`; resolve(rows);
}).join('\n\n'); },
);
const embed = new EmbedBuilder() });
.setTitle('🏆 Top 10 des membres du serveur') } else if (type === "reputation") {
.setDescription(`Voici le top 10 des membres du serveur trié par ${type}:\n\n${leaderboard}`) data = await new Promise((resolve, reject) => {
.setColor(await embedColor(message.author.id, message.guild.id)) db.all(
.setTimestamp() `SELECT userId, reputation AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`,
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) [message.guild.id],
(err, rows) => {
return embed if (err) reject(err);
} resolve(rows);
},
const embed = await leaderboard(args[0]); );
});
const select = new StringSelectMenuBuilder() } else if (type === "niveau") {
.setCustomId('topLeaderboard') data = await new Promise((resolve, reject) => {
.setPlaceholder('Choisissez un type de leaderboard') db.all(
.addOptions( `SELECT userId, lvl AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`,
new StringSelectMenuOptionBuilder() [message.guild.id],
.setLabel('Global') (err, rows) => {
.setEmoji('🪙') if (err) reject(err);
.setDescription('Affiche le top en fonction de la somme de l\'argent en poche et en banque') resolve(rows);
.setValue('coins'), },
new StringSelectMenuOptionBuilder() );
.setLabel('Poche') });
.setEmoji('💰') } else if (type === "team") {
.setDescription('Affiche le top en fonction de l\'argent en poche') data = await new Promise((resolve, reject) => {
.setValue('pocket'), db.all(
new StringSelectMenuOptionBuilder() `SELECT name, bank AS coins FROM teams WHERE guildId = ? ORDER BY coins DESC LIMIT 10`,
.setLabel('Banque') [message.guild.id],
.setEmoji('🏦') (err, rows) => {
.setDescription('Affiche le top en fonction de l\'argent en banque') if (err) reject(err);
.setValue('bank'), resolve(rows);
new StringSelectMenuOptionBuilder() },
.setLabel('Réputation') );
.setEmoji('🔺') });
.setDescription('Affiche le top en fonction de la réputation') } else if (type === "teamreputation") {
.setValue('reputation'), data = await new Promise((resolve, reject) => {
new StringSelectMenuOptionBuilder() db.all(
.setLabel('Niveau') `SELECT name, reputation AS teams FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`,
.setEmoji('📊') [message.guild.id],
.setDescription('Affiche le top en fonction du niveau') (err, rows) => {
.setValue('niveau'), if (err) reject(err);
new StringSelectMenuOptionBuilder() resolve(rows);
.setLabel('Teams bank') },
.setEmoji('👑') );
.setDescription('Affiche le top en fonction de l\'argent des teams') });
.setValue('team'), } else if (type === "teamdroper") {
new StringSelectMenuOptionBuilder() data = await new Promise((resolve, reject) => {
.setLabel('Teams réputation') db.all(
.setEmoji('🔺') `SELECT userId, teamdroper AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`,
.setDescription('Affiche le top en fonction de la réputation des teams') [message.guild.id],
.setValue('teamreputation'), (err, rows) => {
new StringSelectMenuOptionBuilder() if (err) reject(err);
.setLabel('TeamDroper') resolve(rows);
.setEmoji('🎁') },
.setDescription('Affiche le top en fonction du nombre de coins donnés à une team') );
.setValue('teamdroper') });
); }
const row = new ActionRowBuilder() const emoji = {
.addComponents(select); coins: "🪙",
pocket: "💰",
const replyMessage = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }) bank: "🏦",
reputation: "🔺",
client.on('interactionCreate', async (interaction) => { niveau: "📊",
if (!interaction.isStringSelectMenu()) return; team: "👑",
teamreputation: "🔺",
if (interaction.customId === 'topLeaderboard') { teamdroper: "🎁",
const selected = interaction.values[0]; };
await interaction.deferUpdate(); let leaderboard = data
.map((row, i) => {
const embed = await leaderboard(selected); let position;
replyMessage.edit({ embeds: [embed] }); switch (i) {
interaction.followUp({ content: 'Leaderboard mis à jour', ephemeral: true }); 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}\` ${emoji[type]}`;
})
.join("\n\n");
const embed = new EmbedBuilder()
.setTitle("🏆 Top 10 des membres du serveur")
.setDescription(
`Voici le top 10 des membres du serveur trié par ${type}:\n\n${leaderboard}`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return embed;
}
const embed = await leaderboard(args[0]);
const select = new StringSelectMenuBuilder()
.setCustomId("topLeaderboard")
.setPlaceholder("Choisissez un type de leaderboard")
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel("Global")
.setEmoji("🪙")
.setDescription(
"Affiche le top en fonction de la somme de l'argent en poche et en banque",
)
.setValue("coins"),
new StringSelectMenuOptionBuilder()
.setLabel("Poche")
.setEmoji("💰")
.setDescription("Affiche le top en fonction de l'argent en poche")
.setValue("pocket"),
new StringSelectMenuOptionBuilder()
.setLabel("Banque")
.setEmoji("🏦")
.setDescription("Affiche le top en fonction de l'argent en banque")
.setValue("bank"),
new StringSelectMenuOptionBuilder()
.setLabel("Réputation")
.setEmoji("🔺")
.setDescription("Affiche le top en fonction de la réputation")
.setValue("reputation"),
new StringSelectMenuOptionBuilder()
.setLabel("Niveau")
.setEmoji("📊")
.setDescription("Affiche le top en fonction du niveau")
.setValue("niveau"),
new StringSelectMenuOptionBuilder()
.setLabel("Teams bank")
.setEmoji("👑")
.setDescription("Affiche le top en fonction de l'argent des teams")
.setValue("team"),
new StringSelectMenuOptionBuilder()
.setLabel("Teams réputation")
.setEmoji("🔺")
.setDescription(
"Affiche le top en fonction de la réputation des teams",
)
.setValue("teamreputation"),
new StringSelectMenuOptionBuilder()
.setLabel("TeamDroper")
.setEmoji("🎁")
.setDescription(
"Affiche le top en fonction du nombre de coins donnés à une team",
)
.setValue("teamdroper"),
);
const row = new ActionRowBuilder().addComponents(select);
const replyMessage = await message.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
});
client.on("interactionCreate", async (interaction) => {
if (!interaction.isStringSelectMenu()) return;
if (interaction.customId === "topLeaderboard") {
const selected = interaction.values[0];
await interaction.deferUpdate();
const embed = await leaderboard(selected);
replyMessage.edit({ embeds: [embed] });
interaction.followUp({
content: "Leaderboard mis à jour",
ephemeral: true,
});
}
});
},
};
+79 -58
View File
@@ -1,58 +1,79 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['ret', 'retrait', 'with', 'withdraw', 'wd', 'take', 'wh'], aliases: ["ret", "retrait", "with", "withdraw", "wd", "take", "wh"],
description: 'Retire vos coins de votre compte banquaire.', description: "Retire vos coins de votre compte banquaire.",
emote: '🏦', emote: "🏦",
utilisation: '<montant|all>', utilisation: "<montant|all>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const user = await new Promise((resolve, reject) => { const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, message.author.id],
}); (err, row) => {
}); if (err) reject(err);
const pocket = user.pocket; resolve(row);
const bank = user.bank; },
);
let title = 'Retrait Impossible'; });
let description = ''; const pocket = user.pocket;
const bank = user.bank;
if (args.length === 0) {
description = '❌ Vous devez spécifier un montant à retirer.'; let title = "Retrait Impossible";
} else if (args[0] === 'all') { let description = "";
if (bank <= 0) {
description = '❌ Vous n\'avez pas d\'argent à retirer de votre compte en banque.'; if (args.length === 0) {
} else { description = "❌ Vous devez spécifier un montant à retirer.";
title = 'Retrait Réussi'; } else if (args[0] === "all") {
description = `🏦 Vous avez retiré \`${bank}\` coins de votre compte en banque.`; if (bank <= 0) {
db.run(`UPDATE users SET pocket = ?, bank = ? WHERE guildId = ? AND userId = ?`, [pocket + bank, 0, message.guild.id, message.author.id]); description =
} "❌ Vous n'avez pas d'argent à retirer de votre compte en banque.";
} else if (isNaN(args[0])) { } else {
description = '❌ Vous devez spécifier un montant valide à retirer.'; title = "Retrait Réussi";
} else if (bank <= 0) { description = `🏦 Vous avez retiré \`${bank}\` coins de votre compte en banque.`;
description = '❌ Vous n\'avez pas d\'argent à retirer.' db.run(
} else if (parseInt(args[0]) > bank) { `UPDATE users SET pocket = ?, bank = ? WHERE guildId = ? AND userId = ?`,
description = '❌ Vous n\'avez pas assez d\'argent dans votre compte en banque pour retirer cette somme.'; [pocket + bank, 0, message.guild.id, message.author.id],
} else if (parseInt(args[0]) <= 0) { );
description = '❌ Vous ne pouvez pas retirer une somme négative ou nulle.'; }
} else { } else if (isNaN(args[0])) {
title = 'Retrait Réussi'; description = "❌ Vous devez spécifier un montant valide à retirer.";
description = `🏦 Vous avez retiré ${args[0]} coins de votre compte en banque.`; } else if (bank <= 0) {
db.run(`UPDATE users SET pocket = ?, bank = ? WHERE guildId = ? AND userId = ?`, [pocket + parseInt(args[0]), bank - parseInt(args[0]), message.guild.id, message.author.id]); description = "❌ Vous n'avez pas d'argent à retirer.";
} } else if (parseInt(args[0]) > bank) {
description =
const embed = new EmbedBuilder() "❌ Vous n'avez pas assez d'argent dans votre compte en banque pour retirer cette somme.";
.setTitle(title) } else if (parseInt(args[0]) <= 0) {
.setDescription(description) description =
.setColor(await embedColor(message.author.id, message.guild.id)) "❌ Vous ne pouvez pas retirer une somme négative ou nulle.";
.setTimestamp() } else {
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); title = "Retrait Réussi";
description = `🏦 Vous avez retiré ${args[0]} coins de votre compte en banque.`;
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); db.run(
}, `UPDATE users SET pocket = ?, bank = ? WHERE guildId = ? AND userId = ?`,
}; [
pocket + parseInt(args[0]),
bank - parseInt(args[0]),
message.guild.id,
message.author.id,
],
);
}
const embed = new EmbedBuilder()
.setTitle(title)
.setDescription(description)
.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 } });
},
};
+105 -88
View File
@@ -1,88 +1,105 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['wk', 'travail'], aliases: ["wk", "travail"],
description: 'Travaillez pour gagner des coins.', description: "Travaillez pour gagner des coins.",
emote: '💼', emote: "💼",
utilisation: '', utilisation: "",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const user = await new Promise((resolve, reject) => { const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, message.author.id],
}); (err, row) => {
}); if (err) reject(err);
const lastWork = user.lastWork resolve(row);
const pocket = user.pocket },
);
if (lastWork > Date.now() - 2700000) { });
const embed = new EmbedBuilder() const lastWork = user.lastWork;
.setTitle('Travail Impossible') const pocket = user.pocket;
.setDescription(`❌ Vous avez déjà travaillé récemment. Veuillez attendre \`${Math.floor((lastWork + 2700000 - Date.now()) / 60000)}\` minutes avant de pouvoir travailler à nouveau.`)
.setColor(await embedColor(message.author.id, message.guild.id)) if (lastWork > Date.now() - 2700000) {
.setTimestamp() const embed = new EmbedBuilder()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setTitle("Travail Impossible")
.setDescription(
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); `❌ Vous avez déjà travaillé récemment. Veuillez attendre \`${Math.floor((lastWork + 2700000 - Date.now()) / 60000)}\` minutes avant de pouvoir travailler à nouveau.`,
} )
.setColor(await embedColor(message.author.id, message.guild.id))
const randomAmount = Math.floor(Math.random() * (500 - 100 + 1) + 100); .setTimestamp()
db.run(`UPDATE users SET pocket = ?, lastWork = ? WHERE guildId = ? AND userId = ?`, [pocket + randomAmount, Date.now(), message.guild.id, message.author.id]); .setFooter({
text: `Demandé par ${message.author.tag}`,
const works = [ iconURL: message.author.displayAvatarURL(),
`💼 Vous avez exploré une ancienne ruine et avez trouvé \`${randomAmount}\` coins.`, });
`🛠️ Vous avez aidé un marchand à réparer son chariot et il vous a donné \`${randomAmount}\` coins en remerciement.`,
`🌳 En chassant dans la forêt, vous avez découvert un trésor caché contenant \`${randomAmount}\` coins.`, return message.reply({
`🔍 Après avoir résolu une énigme antique, vous avez reçu \`${randomAmount}\` coins comme récompense.`, embeds: [embed],
`🧪 Vous avez vendu des potions magiques sur le marché et avez gagné \`${randomAmount}\` coins.`, allowedMentions: { repliedUser: false },
`🕵️ En explorant une grotte sombre, vous avez trouvé \`${randomAmount}\` coins dissimulés dans un coffre.`, });
`🐉 Après avoir vaincu un dragon, vous avez récupéré \`${randomAmount}\` coins dans son repaire.`, }
`🏆 Vous avez participé à un tournoi de chevalerie et avez remporté \`${randomAmount}\` coins en prix.`,
`🗺️ En aidant un groupe de voyageurs perdus à retrouver leur chemin, vous avez reçu \`${randomAmount}\` coins.`, const randomAmount = Math.floor(Math.random() * (500 - 100 + 1) + 100);
`🔎 Après avoir résolu un mystère criminel, vous avez été récompensé par \`${randomAmount}\` coins par la ville.`, db.run(
`⚓ Vous avez navigué sur les mers et avez trouvé \`${randomAmount}\` coins dans une épave.`, `UPDATE users SET pocket = ?, lastWork = ? WHERE guildId = ? AND userId = ?`,
`⛏️ En explorant les catacombes, vous avez découvert \`${randomAmount}\` coins enfouis dans le sol.`, [pocket + randomAmount, Date.now(), message.guild.id, message.author.id],
`🌉 Après avoir construit un pont pour la communauté, vous avez reçu \`${randomAmount}\` coins comme gratitude.`, );
`🦅 Vous avez réussi à apprivoiser un griffon et avez reçu \`${randomAmount}\` coins en récompense.`,
`⛏️ En découvrant une mine abandonnée, vous avez extrait \`${randomAmount}\` coins de minerai précieux.`, const works = [
`🏹 Vous avez secouru un groupe de voyageurs attaqués par des brigands et avez reçu \`${randomAmount}\` coins comme reconnaissance.`, `💼 Vous avez exploré une ancienne ruine et avez trouvé \`${randomAmount}\` coins.`,
`📚 En explorant une ancienne bibliothèque abandonnée, vous avez trouvé \`${randomAmount}\` coins cachés dans un vieux livre.`, `🛠️ Vous avez aidé un marchand à réparer son chariot et il vous a donné \`${randomAmount}\` coins en remerciement.`,
`🏹 Après avoir participé à une compétition de tir à l'arc, vous avez remporté \`${randomAmount}\` coins en prix.`, `🌳 En chassant dans la forêt, vous avez découvert un trésor caché contenant \`${randomAmount}\` coins.`,
`😺 Vous avez sauvé un chaton coincé dans un arbre et son propriétaire vous a donné \`${randomAmount}\` coins en guise de remerciement.`, `🔍 Après avoir résolu une énigme antique, vous avez reçu \`${randomAmount}\` coins comme récompense.`,
`🕊️ En réussissant à apaiser une querelle entre deux factions rivales, vous avez été récompensé par \`${randomAmount}\` coins.`, `🧪 Vous avez vendu des potions magiques sur le marché et avez gagné \`${randomAmount}\` coins.`,
`🌊 Vous avez découvert un trésor antique dans les profondeurs de la mer et avez récupéré \`${randomAmount}\` coins.`, `🕵️ En explorant une grotte sombre, vous avez trouvé \`${randomAmount}\` coins dissimulés dans un coffre.`,
`🏫 Après avoir construit une école pour les enfants du village, vous avez reçu \`${randomAmount}\` coins de la part des parents reconnaissants.`, `🐉 Après avoir vaincu un dragon, vous avez récupéré \`${randomAmount}\` coins dans son repaire.`,
`👮 Vous avez capturé un voleur recherché et avez été récompensé par \`${randomAmount}\` coins par les autorités locales.`, `🏆 Vous avez participé à un tournoi de chevalerie et avez remporté \`${randomAmount}\` coins en prix.`,
`🏞 En explorant une caverne mystérieuse, vous avez trouvé \`${randomAmount}\` coins dissimulés derrière une cascade.`, `🗺 En aidant un groupe de voyageurs perdus à retrouver leur chemin, vous avez reçu \`${randomAmount}\` coins.`,
`🔨 Après avoir prêté main-forte à un forgeron pour créer une armure, vous avez été payé \`${randomAmount}\` coins pour votre travail.`, `🔎 Après avoir résolu un mystère criminel, vous avez été récompensé par \`${randomAmount}\` coins par la ville.`,
`🏛️ Vous avez découvert un artefact magique dans les ruines d'un temple ancien et l'avez échangé contre \`${randomAmount}\` coins.`, ` Vous avez navigué sur les mers et avez trouvé \`${randomAmount}\` coins dans une épave.`,
`🚶 En offrant vos services en tant que guide à des voyageurs perdus, vous avez gagné \`${randomAmount}\` coins pour les ramener en sécurité.`, `⛏️ En explorant les catacombes, vous avez découvert \`${randomAmount}\` coins enfouis dans le sol.`,
`🔥 Après avoir éteint un incendie qui menaçait le village, vous avez été récompensé par \`${randomAmount}\` coins par les habitants reconnaissants.`, `🌉 Après avoir construit un pont pour la communauté, vous avez reçu \`${randomAmount}\` coins comme gratitude.`,
`🎉 Vous avez organisé un festival annuel pour célébrer la récolte et avez collecté \`${randomAmount}\` coins en dons des participants.`, `🦅 Vous avez réussi à apprivoiser un griffon et avez reçu \`${randomAmount}\` coins en récompense.`,
`🐉 En sauvant un noble des griffes d'une bête féroce, vous avez été généreusement récompensé par \`${randomAmount}\` coins et des terres.`, `⛏️ En découvrant une mine abandonnée, vous avez extrait \`${randomAmount}\` coins de minerai précieux.`,
`🏰 Après avoir découvert un passage secret dans le château du roi, vous avez trouvé \`${randomAmount}\` coins cachés dans un coffre-fort.`, `🏹 Vous avez secouru un groupe de voyageurs attaqués par des brigands et avez reçu \`${randomAmount}\` coins comme reconnaissance.`,
`👨‍👩‍👧‍👦 Vous avez résolu un conflit familial ancien et avez reçu \`${randomAmount}\` coins en récompense de votre médiation.`, `📚 En explorant une ancienne bibliothèque abandonnée, vous avez trouvé \`${randomAmount}\` coins cachés dans un vieux livre.`,
`⛏️ En explorant les montagnes, vous avez trouvé une mine abandonnée remplie de \`${randomAmount}\` coins de minerai précieux.`, `🏹 Après avoir participé à une compétition de tir à l'arc, vous avez remporté \`${randomAmount}\` coins en prix.`,
`📜 Après avoir livré un message crucial à temps, vous avez été payé \`${randomAmount}\` coins par le destinataire reconnaissant.`, `😺 Vous avez sauvé un chaton coincé dans un arbre et son propriétaire vous a donné \`${randomAmount}\` coins en guise de remerciement.`,
`🤝 Vous avez négocié un accord commercial fructueux entre deux cités et avez reçu \`${randomAmount}\` coins comme commission.`, `🕊️ En réussissant à apaiser une querelle entre deux factions rivales, vous avez été récompensé par \`${randomAmount}\` coins.`,
`📖 Vous avez ecrit un livre. Une maison d'édition vous l'a racheter \`${randomAmount}\` coins.`, `🌊 Vous avez découvert un trésor antique dans les profondeurs de la mer et avez récupéré \`${randomAmount}\` coins.`,
`💜 Vous avez fait un don au restorant du coeur. L'état vous rembourse \`${randomAmount}\` coins.`, `🏫 Après avoir construit une école pour les enfants du village, vous avez reçu \`${randomAmount}\` coins de la part des parents reconnaissants.`,
`🎂 \`${randomAmount}\` coins, c'est la somme que vous a donner votre parton pour l'anniversaire de la creation de l'entreprise.`, `👮 Vous avez capturé un voleur recherché et avez été récompensé par \`${randomAmount}\` coins par les autorités locales.`,
`👶 Vous avez gagner \`${Math.round(randomAmount / 2)}\` coins en gardant l'enfant de vos voisins. Ils sont très satisfait de votre travail et on donc double votre salaire. Vous repartez avec \`${randomAmount}\`.`, `🏞️ En explorant une caverne mystérieuse, vous avez trouvé \`${randomAmount}\` coins dissimulés derrière une cascade.`,
]; `🔨 Après avoir prêté main-forte à un forgeron pour créer une armure, vous avez été payé \`${randomAmount}\` coins pour votre travail.`,
`🏛️ Vous avez découvert un artefact magique dans les ruines d'un temple ancien et l'avez échangé contre \`${randomAmount}\` coins.`,
`🚶 En offrant vos services en tant que guide à des voyageurs perdus, vous avez gagné \`${randomAmount}\` coins pour les ramener en sécurité.`,
const embed = new EmbedBuilder() `🔥 Après avoir éteint un incendie qui menaçait le village, vous avez été récompensé par \`${randomAmount}\` coins par les habitants reconnaissants.`,
.setTitle('Travail Terminé') `🎉 Vous avez organisé un festival annuel pour célébrer la récolte et avez collecté \`${randomAmount}\` coins en dons des participants.`,
.setDescription(works[Math.floor(Math.random() * works.length)]) `🐉 En sauvant un noble des griffes d'une bête féroce, vous avez été généreusement récompensé par \`${randomAmount}\` coins et des terres.`,
.setColor(await embedColor(message.author.id, message.guild.id)) `🏰 Après avoir découvert un passage secret dans le château du roi, vous avez trouvé \`${randomAmount}\` coins cachés dans un coffre-fort.`,
.setTimestamp() `👨‍👩‍👧‍👦 Vous avez résolu un conflit familial ancien et avez reçu \`${randomAmount}\` coins en récompense de votre médiation.`,
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); `⛏️ En explorant les montagnes, vous avez trouvé une mine abandonnée remplie de \`${randomAmount}\` coins de minerai précieux.`,
`📜 Après avoir livré un message crucial à temps, vous avez été payé \`${randomAmount}\` coins par le destinataire reconnaissant.`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); `🤝 Vous avez négocié un accord commercial fructueux entre deux cités et avez reçu \`${randomAmount}\` coins comme commission.`,
}, `📖 Vous avez ecrit un livre. Une maison d'édition vous l'a racheter \`${randomAmount}\` coins.`,
}; `💜 Vous avez fait un don au restorant du coeur. L'état vous rembourse \`${randomAmount}\` coins.`,
`🎂 \`${randomAmount}\` coins, c'est la somme que vous a donner votre parton pour l'anniversaire de la creation de l'entreprise.`,
`👶 Vous avez gagner \`${Math.round(randomAmount / 2)}\` coins en gardant l'enfant de vos voisins. Ils sont très satisfait de votre travail et on donc double votre salaire. Vous repartez avec \`${randomAmount}\`.`,
];
const embed = new EmbedBuilder()
.setTitle("Travail Terminé")
.setDescription(works[Math.floor(Math.random() * works.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 } });
},
};
+67 -51
View File
@@ -1,51 +1,67 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: [], aliases: [],
description: 'Ajoute de l\'argent de votre compte en banque ou de votre poche ou de votre réputation.', description:
emote: '💰', "Ajoute de l'argent de votre compte en banque ou de votre poche ou de votre réputation.",
utilisation: '<montant> <pocket|bank|reputation> [@membre]', emote: "💰",
permission: 10, utilisation: "<montant> <pocket|bank|reputation> [@membre]",
permission: 10,
async execute(message, args, client) {
const user = await new Promise((resolve, reject) => { async execute(message, args, client) {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { const user = await new Promise((resolve, reject) => {
if (err) reject(err); db.get(
resolve(row); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
}); [message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
let member = message.author; resolve(row);
let title = 'Ajout d\'argent'; },
let description = `💰 Vous avez ajouté ${args[0]} à votre ${args[1]}.`; );
});
if (isNaN(args[0])) {
title = 'Erreur'; let member = message.author;
description = '❌ Veuillez entrer un montant valide.'; let title = "Ajout d'argent";
} else if (args[0] <= 0) { let description = `💰 Vous avez ajouté ${args[0]} à votre ${args[1]}.`;
title = 'Erreur';
description = '❌ Veuillez entrer un montant supérieur à 0.'; if (isNaN(args[0])) {
} else if (args[1] !== 'pocket' && args[1] !== 'bank' && args[1] !== 'reputation') { title = "Erreur";
title = 'Erreur'; description = "❌ Veuillez entrer un montant valide.";
description = '❌ Veuillez entrer une destination valide (pocket, bank, reputation).'; } else if (args[0] <= 0) {
} else if (message.mentions.users.first()) { title = "Erreur";
member = message.mentions.users.first(); description = "❌ Veuillez entrer un montant supérieur à 0.";
description = `💰 Vous avez ajouté ${args[0]} à la ${args[1]} de ${member.tag}.`; } else if (
} args[1] !== "pocket" &&
args[1] !== "bank" &&
const embed = new EmbedBuilder() args[1] !== "reputation"
.setTitle(title) ) {
.setDescription(description) title = "Erreur";
.setColor(await embedColor(message.author.id, message.guild.id)) description =
.setTimestamp() "❌ Veuillez entrer une destination valide (pocket, bank, reputation).";
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); } else if (message.mentions.users.first()) {
member = message.mentions.users.first();
if (title !== 'Erreur') { description = `💰 Vous avez ajouté ${args[0]} à la ${args[1]} de ${member.tag}.`;
db.run(`UPDATE users SET ${args[1]} = ${args[1]} + ? WHERE guildId = ? AND userId = ?`, [args[0], message.guild.id, member.id]); }
}
const embed = new EmbedBuilder()
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); .setTitle(title)
}, .setDescription(description)
}; .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
if (title !== "Erreur") {
db.run(
`UPDATE users SET ${args[1]} = ${args[1]} + ? WHERE guildId = ? AND userId = ?`,
[args[0], message.guild.id, member.id],
);
}
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
};
+126 -84
View File
@@ -1,88 +1,130 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder, PermissionFlagsBits, EmbedBuilder } = require('discord.js'); const {
const embedColor = require('../../fonctions/embedColor.js'); ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
PermissionFlagsBits,
EmbedBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['ban'], aliases: ["ban"],
description: 'permet de ban un membre', description: "permet de ban un membre",
emote: '⏱️', emote: "⏱️",
utilisation: '<@membre> <raison>', utilisation: "<@membre> <raison>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const authorPerms = message.channel.permissionsFor(message.author) const authorPerms = message.channel.permissionsFor(message.author);
if ((!authorPerms || !authorPerms.has(PermissionFlagsBits.banMembers)) && !client.config.owners.includes(message.author.id)) { if (
return message.reply({ (!authorPerms || !authorPerms.has(PermissionFlagsBits.banMembers)) &&
embeds: [ !client.config.owners.includes(message.author.id)
new EmbedBuilder() ) {
.setTitle('Erreur') return message.reply({
.setDescription('❌ Vous n\'avez pas les permissions pour expulser.') embeds: [
.setColor(await embedColor(message.author.id, message.guild.id)) new EmbedBuilder()
.setTimestamp() .setTitle("Erreur")
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setDescription("❌ Vous n'avez pas les permissions pour expulser.")
], allowedMentions: { repliedUser: false } .setColor(await embedColor(message.author.id, message.guild.id))
}); .setTimestamp()
} .setFooter({
let member = message.mentions.members.first() // || message.guild.members.get(args[0]); text: `Demandé par ${message.author.tag}`,
if (!member) { iconURL: message.author.displayAvatarURL(),
return message.reply({ }),
embeds: [ ],
new EmbedBuilder() allowedMentions: { repliedUser: false },
.setTitle('Erreur') });
.setDescription('❌ Veuillez spécifier un membre du serveur.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
});
}
const motif = args[1]
if (motif.length < 2) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez indiquer un motif.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
});
}
let reponse
member.ban({ reason: motif })
.then(async () => {
const btn = new ButtonBuilder()
.setCustomId('mp')
.setLabel('Prevenir le membre en MP')
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(btn);
const embed = new EmbedBuilder()
.setTitle('Membre banni !')
.setDescription('Vous avez banni: <@' + member + '>\nMotif: `' + motif + '`')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
reponse = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } });
})
const filter = i => i.customId === 'mp' && i.user.id === message.author.id;
const collector = reponse.createMessageComponentCollector({ filter, time: 30000 })
collector.on('collect', async (interaction) => {
const embedBanni = new EmbedBuilder()
.setTitle('Bannissement !')
.setDescription('Vous avez été banni du serveur ' + interaction.guild.name + ', avec comme motif: `' + motif + '`')
.setColor("Red")
.setTimestamp()
member.send({ embeds: [embedBanni] })
interaction.reply({ content: '> **Le membre a été prevenu.**', ephemeral: true, allowedMentions: { repliedUser: false } });
});
collector.on('end', () => {
reponse.edit({ components: [], allowedMentions: { repliedUser: false } });
});
} }
}; let member = message.mentions.members.first(); // || message.guild.members.get(args[0]);
if (!member) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription("❌ Veuillez spécifier un membre du serveur.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
const motif = args[1];
if (motif.length < 2) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription("❌ Veuillez indiquer un motif.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
let reponse;
member.ban({ reason: motif }).then(async () => {
const btn = new ButtonBuilder()
.setCustomId("mp")
.setLabel("Prevenir le membre en MP")
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder().addComponents(btn);
const embed = new EmbedBuilder()
.setTitle("Membre banni !")
.setDescription(
"Vous avez banni: <@" + member + ">\nMotif: `" + motif + "`",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
reponse = await message.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
});
});
const filter = (i) =>
i.customId === "mp" && i.user.id === message.author.id;
const collector = reponse.createMessageComponentCollector({
filter,
time: 30000,
});
collector.on("collect", async (interaction) => {
const embedBanni = new EmbedBuilder()
.setTitle("Bannissement !")
.setDescription(
"Vous avez été banni du serveur " +
interaction.guild.name +
", avec comme motif: `" +
motif +
"`",
)
.setColor("Red")
.setTimestamp();
member.send({ embeds: [embedBanni] });
interaction.reply({
content: "> **Le membre a été prevenu.**",
ephemeral: true,
allowedMentions: { repliedUser: false },
});
});
collector.on("end", () => {
reponse.edit({ components: [], allowedMentions: { repliedUser: false } });
});
},
};
+39 -25
View File
@@ -1,23 +1,22 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
module.exports = { module.exports = {
aliases: ['give'], aliases: ["give"],
description: 'Donne des coins au premier qui appuie sur un bouton.', description: "Donne des coins au premier qui appuie sur un bouton.",
emote: '🪙', emote: "🪙",
utilisation: '<amount>', utilisation: "<amount>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
if (isNaN(args[0])) return message.reply('La somme dois etre un nombre...') if (isNaN(args[0])) return message.reply("La somme dois etre un nombre...");
const btn = new ButtonBuilder() const btn = new ButtonBuilder()
.setCustomId('confirm') .setCustomId("confirm")
.setLabel('💰') .setLabel("💰")
.setStyle(ButtonStyle.Primary); .setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder() const row = new ActionRowBuilder().addComponents(btn);
.addComponents(btn);
/*const sentMessage = message.channel.send('_ _') /*const sentMessage = message.channel.send('_ _')
let contage = 0 let contage = 0
while (contage == 100) { while (contage == 100) {
@@ -37,22 +36,37 @@ module.exports = {
content: `Appuis vite sur le bouton pour gagner ${args[0]}coins`, content: `Appuis vite sur le bouton pour gagner ${args[0]}coins`,
components: [row], components: [row],
allowedMentions: { repliedUser: false }, allowedMentions: { repliedUser: false },
}) });
const filter = i => i.customId === 'confirm' && i.user.id !== message.author.id; const filter = (i) =>
const collector = sentMessage.createMessageComponentCollector({ filter, time: 45000 }) i.customId === "confirm" && i.user.id !== message.author.id;
collector.on('collect', async (interaction) => { const collector = sentMessage.createMessageComponentCollector({
filter,
time: 45000,
});
collector.on("collect", async (interaction) => {
sentMessage.edit({ sentMessage.edit({
content: `Le drop est gagner par <@${interaction.user.id}>`, content: `Le drop est gagner par <@${interaction.user.id}>`,
components: [], components: [],
allowedMentions: { repliedUser: false }, allowedMentions: { repliedUser: false },
}); });
db.run(`UPDATE users SET pocket = pocket + ? WHERE guildId = ? AND userId = ?`, [args[0], message.guild.id, interaction.user.id]); db.run(
interaction.reply({ content: 'Tu as gagner le drop !', ephemeral: true, allowedMentions: { repliedUser: false } }); `UPDATE users SET pocket = pocket + ? WHERE guildId = ? AND userId = ?`,
[args[0], message.guild.id, interaction.user.id],
);
interaction.reply({
content: "Tu as gagner le drop !",
ephemeral: true,
allowedMentions: { repliedUser: false },
});
}); });
collector.on('end', () => { collector.on("end", () => {
sentMessage.edit({ components: [], ephemeral: true, allowedMentions: { repliedUser: false } }); sentMessage.edit({
}); components: [],
} ephemeral: true,
}; allowedMentions: { repliedUser: false },
});
});
},
};
+126 -84
View File
@@ -1,88 +1,130 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder, PermissionFlagsBits, EmbedBuilder } = require('discord.js'); const {
const embedColor = require('../../fonctions/embedColor.js'); ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
PermissionFlagsBits,
EmbedBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['kick'], aliases: ["kick"],
description: 'permet d\'expulser un membre', description: "permet d'expulser un membre",
emote: '⏱️', emote: "⏱️",
utilisation: '<@membre> <raison>', utilisation: "<@membre> <raison>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const authorPerms = message.channel.permissionsFor(message.author) const authorPerms = message.channel.permissionsFor(message.author);
if ((!authorPerms || !authorPerms.has(PermissionFlagsBits.kickMembers)) && !client.config.owners.includes(message.author.id)) { if (
return message.reply({ (!authorPerms || !authorPerms.has(PermissionFlagsBits.kickMembers)) &&
embeds: [ !client.config.owners.includes(message.author.id)
new EmbedBuilder() ) {
.setTitle('Erreur') return message.reply({
.setDescription('❌ Vous n\'avez pas les permissions pour expulser.') embeds: [
.setColor(await embedColor(message.author.id, message.guild.id)) new EmbedBuilder()
.setTimestamp() .setTitle("Erreur")
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setDescription("❌ Vous n'avez pas les permissions pour expulser.")
], allowedMentions: { repliedUser: false } .setColor(await embedColor(message.author.id, message.guild.id))
}); .setTimestamp()
} .setFooter({
let member = message.mentions.members.first() //|| message.guild.members.get(args[0]); text: `Demandé par ${message.author.tag}`,
if (!member) { iconURL: message.author.displayAvatarURL(),
return message.reply({ }),
embeds: [ ],
new EmbedBuilder() allowedMentions: { repliedUser: false },
.setTitle('Erreur') });
.setDescription('❌ Veuillez spécifier un membre du serveur.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
});
}
const motif = args[1]
if (motif.length < 2) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez indiquer un motif.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
});
}
let reponse
member.kick({ reason: motif })
.then(async () => {
const btn = new ButtonBuilder()
.setCustomId('mp')
.setLabel('Prevenir le membre en MP')
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(btn);
const embed = new EmbedBuilder()
.setTitle('Membre expulser !')
.setDescription('Vous avez expulser: <@' + member + '>\nMotif: `' + motif + '`')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
reponse = message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } });
})
const filter = i => i.customId === 'mp' && i.user.id === message.author.id;
const collector = reponse.createMessageComponentCollector({ filter, time: 30000 })
collector.on('collect', async (interaction) => {
const embedkick = new EmbedBuilder()
.setTitle('Expulsion !')
.setDescription('Vous avez été expulser du serveur ' + interaction.guild.name + ', avec comme motif: `' + motif + '`')
.setColor("Red")
.setTimestamp()
member.send({ embeds: [embedkick] })
interaction.reply({ content: '> **Le membre a été prevenu.**', ephemeral: true, allowedMentions: { repliedUser: false } });
});
collector.on('end', () => {
reponse.edit({ components: [], allowedMentions: { repliedUser: false } });
});
} }
}; let member = message.mentions.members.first(); //|| message.guild.members.get(args[0]);
if (!member) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription("❌ Veuillez spécifier un membre du serveur.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
const motif = args[1];
if (motif.length < 2) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription("❌ Veuillez indiquer un motif.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
let reponse;
member.kick({ reason: motif }).then(async () => {
const btn = new ButtonBuilder()
.setCustomId("mp")
.setLabel("Prevenir le membre en MP")
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder().addComponents(btn);
const embed = new EmbedBuilder()
.setTitle("Membre expulser !")
.setDescription(
"Vous avez expulser: <@" + member + ">\nMotif: `" + motif + "`",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
reponse = message.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
});
});
const filter = (i) =>
i.customId === "mp" && i.user.id === message.author.id;
const collector = reponse.createMessageComponentCollector({
filter,
time: 30000,
});
collector.on("collect", async (interaction) => {
const embedkick = new EmbedBuilder()
.setTitle("Expulsion !")
.setDescription(
"Vous avez été expulser du serveur " +
interaction.guild.name +
", avec comme motif: `" +
motif +
"`",
)
.setColor("Red")
.setTimestamp();
member.send({ embeds: [embedkick] });
interaction.reply({
content: "> **Le membre a été prevenu.**",
ephemeral: true,
allowedMentions: { repliedUser: false },
});
});
collector.on("end", () => {
reponse.edit({ components: [], allowedMentions: { repliedUser: false } });
});
},
};
+174 -114
View File
@@ -1,118 +1,178 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder, PermissionFlagsBits, EmbedBuilder } = require('discord.js'); const {
const embedColor = require('../../fonctions/embedColor.js'); ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
PermissionFlagsBits,
EmbedBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['timeout'], aliases: ["timeout"],
description: 'permet de mute un membre', description: "permet de mute un membre",
emote: '⏱️', emote: "⏱️",
utilisation: '<@membre> <temps> <raison>', utilisation: "<@membre> <temps> <raison>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const authorPerms = message.channel.permissionsFor(message.author) const authorPerms = message.channel.permissionsFor(message.author);
if ((!authorPerms || !authorPerms.has(PermissionFlagsBits.MuteMembers)) && !client.config.owners.includes(message.author.id)) { if (
return message.reply({ (!authorPerms || !authorPerms.has(PermissionFlagsBits.MuteMembers)) &&
embeds: [ !client.config.owners.includes(message.author.id)
new EmbedBuilder() ) {
.setTitle('Erreur') return message.reply({
.setDescription('❌ Vous n\'avez pas les permissions pour expulser.') embeds: [
.setColor(await embedColor(message.author.id, message.guild.id)) new EmbedBuilder()
.setTimestamp() .setTitle("Erreur")
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setDescription("❌ Vous n'avez pas les permissions pour expulser.")
], allowedMentions: { repliedUser: false } .setColor(await embedColor(message.author.id, message.guild.id))
}); .setTimestamp()
} .setFooter({
text: `Demandé par ${message.author.tag}`,
if (!args[0] || !args[1] || !args[2]) { iconURL: message.author.displayAvatarURL(),
return message.reply({ }),
embeds: [ ],
new EmbedBuilder() allowedMentions: { repliedUser: false },
.setTitle('Erreur') });
.setDescription('❌ Veuillez respecter ce format : <@membre|membreId> <min> <raison>.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
});
}
let member = message.mentions.members.first() //|| message.guild.members.get(args[0])
if (!member) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez spécifier un membre du serveur.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
});
}
let time = args[1]
if (time.length <= 3 || !time.includes('min')) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez indiquer une durée valide <`x`min>.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
});
}
time = time.replace('min', '')
const motif = args[2]
if (motif.length <= 2) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez indiquer un motif (minimum 3caractère).')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
});
}
let reponse
member.timeout(time * 60 * 1000, motif)
.then(async () => {
const btn = new ButtonBuilder()
.setCustomId('mp')
.setLabel('Prevenir le membre en MP')
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(btn);
const embed = new EmbedBuilder()
.setTitle('Membre mute !')
.setDescription('Vous avez mute: <@' + member + '>\nTemps: `' + time + '`min\nMotif: `' + motif + '`')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
reponse = message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } });
})
const filter = i => i.customId === 'mp' && i.user.id === message.author.id;
const collector = reponse.createMessageComponentCollector({ filter, time: 30000 })
collector.on('collect', async (interaction) => {
const embedkick = new EmbedBuilder()
.setTitle('Expulsion !')
.setDescription('Vous avez été expulser du serveur ' + interaction.guild.name + ', avec comme motif: `' + motif + '`')
.setColor("Red")
.setTimestamp()
member.send({ embeds: [embedkick] })
interaction.reply({ content: '> **Le membre a été prevenu.**', ephemeral: true, allowedMentions: { repliedUser: false } });
});
collector.on('end', () => {
reponse.edit({ components: [], allowedMentions: { repliedUser: false } });
});
} }
};
if (!args[0] || !args[1] || !args[2]) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription(
"❌ Veuillez respecter ce format : <@membre|membreId> <min> <raison>.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
let member = message.mentions.members.first(); //|| message.guild.members.get(args[0])
if (!member) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription("❌ Veuillez spécifier un membre du serveur.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
let time = args[1];
if (time.length <= 3 || !time.includes("min")) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription("❌ Veuillez indiquer une durée valide <`x`min>.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
time = time.replace("min", "");
const motif = args[2];
if (motif.length <= 2) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription(
"❌ Veuillez indiquer un motif (minimum 3caractère).",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
let reponse;
member.timeout(time * 60 * 1000, motif).then(async () => {
const btn = new ButtonBuilder()
.setCustomId("mp")
.setLabel("Prevenir le membre en MP")
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder().addComponents(btn);
const embed = new EmbedBuilder()
.setTitle("Membre mute !")
.setDescription(
"Vous avez mute: <@" +
member +
">\nTemps: `" +
time +
"`min\nMotif: `" +
motif +
"`",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
reponse = message.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
});
});
const filter = (i) =>
i.customId === "mp" && i.user.id === message.author.id;
const collector = reponse.createMessageComponentCollector({
filter,
time: 30000,
});
collector.on("collect", async (interaction) => {
const embedkick = new EmbedBuilder()
.setTitle("Expulsion !")
.setDescription(
"Vous avez été expulser du serveur " +
interaction.guild.name +
", avec comme motif: `" +
motif +
"`",
)
.setColor("Red")
.setTimestamp();
member.send({ embeds: [embedkick] });
interaction.reply({
content: "> **Le membre a été prevenu.**",
ephemeral: true,
allowedMentions: { repliedUser: false },
});
});
collector.on("end", () => {
reponse.edit({ components: [], allowedMentions: { repliedUser: false } });
});
},
};
+30 -15
View File
@@ -1,29 +1,44 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['perm', 'permission', 'permissions'], aliases: ["perm", "permission", "permissions"],
description: 'Affiche les permission des rôles pour utiliser les commandes du bot.', description:
emote: '⏱️', "Affiche les permission des rôles pour utiliser les commandes du bot.",
utilisation: '', emote: "⏱️",
utilisation: "",
permission: 10, permission: 10,
async execute(message, args, client) { async execute(message, args, client) {
const perms = await new Promise((resolve, reject) => { const perms = await new Promise((resolve, reject) => {
db.all(`SELECT * FROM rolePermission WHERE guildId = ?`, [message.guild.id], (err, rows) => { db.all(
if (err) reject(err); `SELECT * FROM rolePermission WHERE guildId = ?`,
resolve(rows); [message.guild.id],
}); (err, rows) => {
if (err) reject(err);
resolve(rows);
},
);
}); });
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('⏱️ Permissions') .setTitle("⏱️ Permissions")
.setDescription(perms.map(perm => `**<@&${perm.roleId}>** : ${perm.permission}`).join('\n')) .setDescription(
perms
.map((perm) => `**<@&${perm.roleId}>** : ${perm.permission}`)
.join("\n"),
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}, },
}; };
+67 -51
View File
@@ -1,51 +1,67 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: [], aliases: [],
description: 'Retire de l\'argent de votre compte en banque ou de votre poche ou de votre réputation.', description:
emote: '💰', "Retire de l'argent de votre compte en banque ou de votre poche ou de votre réputation.",
utilisation: '<montant> <pocket|bank|reputation> [@membre]', emote: "💰",
permission: 10, utilisation: "<montant> <pocket|bank|reputation> [@membre]",
permission: 10,
async execute(message, args, client) {
const user = await new Promise((resolve, reject) => { async execute(message, args, client) {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { const user = await new Promise((resolve, reject) => {
if (err) reject(err); db.get(
resolve(row); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
}); [message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
let member = message.author; resolve(row);
let title = 'Argent retiré'; },
let description = `💰 Vous avez retiré ${args[0]} à votre ${args[1]}.`; );
});
if (isNaN(args[0])) {
title = 'Erreur'; let member = message.author;
description = '❌ Veuillez entrer un montant valide.'; let title = "Argent retiré";
} else if (args[0] <= 0) { let description = `💰 Vous avez retiré ${args[0]} à votre ${args[1]}.`;
title = 'Erreur';
description = '❌ Veuillez entrer un montant supérieur à 0.'; if (isNaN(args[0])) {
} else if (args[1] !== 'pocket' && args[1] !== 'bank' && args[1] !== 'reputation') { title = "Erreur";
title = 'Erreur'; description = "❌ Veuillez entrer un montant valide.";
description = '❌ Veuillez entrer une destination valide (pocket, bank, reputation).'; } else if (args[0] <= 0) {
} else if (message.mentions.users.first()) { title = "Erreur";
member = message.mentions.users.first(); description = "❌ Veuillez entrer un montant supérieur à 0.";
description = `💰 Vous avez retiré ${args[0]} à la ${args[1]} de ${member.tag}.`; } else if (
} args[1] !== "pocket" &&
args[1] !== "bank" &&
const embed = new EmbedBuilder() args[1] !== "reputation"
.setTitle(title) ) {
.setDescription(description) title = "Erreur";
.setColor(await embedColor(message.author.id, message.guild.id)) description =
.setTimestamp() "❌ Veuillez entrer une destination valide (pocket, bank, reputation).";
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); } else if (message.mentions.users.first()) {
member = message.mentions.users.first();
if (title !== 'Erreur') { description = `💰 Vous avez retiré ${args[0]} à la ${args[1]} de ${member.tag}.`;
db.run(`UPDATE users SET ${args[1]} = ${args[1]} - ? WHERE guildId = ? AND userId = ?`, [args[0], message.guild.id, member.id]); }
}
const embed = new EmbedBuilder()
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); .setTitle(title)
}, .setDescription(description)
}; .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
if (title !== "Erreur") {
db.run(
`UPDATE users SET ${args[1]} = ${args[1]} - ? WHERE guildId = ? AND userId = ?`,
[args[0], message.guild.id, member.id],
);
}
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
};
+47 -20
View File
@@ -1,41 +1,68 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: [], aliases: [],
description: 'Reinitialise toutes les données d\'un utilisateur (sur ce serveur).', description:
emote: '💰', "Reinitialise toutes les données d'un utilisateur (sur ce serveur).",
utilisation: '<@membre>', emote: "💰",
utilisation: "<@membre>",
permission: 10, permission: 10,
async execute(message, args, client) { async execute(message, args, client) {
const member = message.mentions.users.first(); const member = message.mentions.users.first();
if (!member) { if (!member) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Reset :') .setTitle("Reset :")
.setDescription(`**Veuillez mentionner un membre valide**`) .setDescription(`**Veuillez mentionner un membre valide**`)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
db.run(`UPDATE users SET pocket = 0 WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id]); db.run(`UPDATE users SET pocket = 0 WHERE guildId = ? AND userId = ?`, [
db.run(`UPDATE users SET bank = 0 WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id]); message.guild.id,
db.run(`UPDATE users SET xp = 0 WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id]); member.id,
db.run(`UPDATE users SET lvl = 0 WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id]); ]);
db.run(`UPDATE users SET reputation = 0 WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id]); db.run(`UPDATE users SET bank = 0 WHERE guildId = ? AND userId = ?`, [
db.run(`UPDATE users SET teamId = NULL, teamRole = NULL WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id]); message.guild.id,
member.id,
]);
db.run(`UPDATE users SET xp = 0 WHERE guildId = ? AND userId = ?`, [
message.guild.id,
member.id,
]);
db.run(`UPDATE users SET lvl = 0 WHERE guildId = ? AND userId = ?`, [
message.guild.id,
member.id,
]);
db.run(`UPDATE users SET reputation = 0 WHERE guildId = ? AND userId = ?`, [
message.guild.id,
member.id,
]);
db.run(
`UPDATE users SET teamId = NULL, teamRole = NULL WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
);
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Reset :') .setTitle("Reset :")
.setDescription(`**<@${member.id}> reinitialiser avec succès !**`) .setDescription(`**<@${member.id}> reinitialiser avec succès !**`)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}, },
+37 -21
View File
@@ -1,35 +1,45 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: [], aliases: [],
description: 'Defini la solde d\'un membre (a utiliser pour remplacer un `NaN` dans le `&me`).', description:
emote: '💰', "Defini la solde d'un membre (a utiliser pour remplacer un `NaN` dans le `&me`).",
utilisation: '<montant> <pocket|bank|reputation> [@membre]', emote: "💰",
utilisation: "<montant> <pocket|bank|reputation> [@membre]",
permission: 10, permission: 10,
async execute(message, args, client) { async execute(message, args, client) {
const user = await new Promise((resolve, reject) => { const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
let member = message.author; let member = message.author;
let title = 'Definition de solde'; let title = "Definition de solde";
let description = `💰 Vous avez mis à ${args[0]} votre ${args[1]}.`; let description = `💰 Vous avez mis à ${args[0]} votre ${args[1]}.`;
if (isNaN(args[0])) { if (isNaN(args[0])) {
title = 'Erreur'; title = "Erreur";
description = '❌ Veuillez entrer un montant valide.'; description = "❌ Veuillez entrer un montant valide.";
} else if (args[0] < 0) { } else if (args[0] < 0) {
title = 'Erreur' title = "Erreur";
description = '❌ Veuillez entrer un montant supérieur à 0.'; description = "❌ Veuillez entrer un montant supérieur à 0.";
} else if (args[1] !== 'pocket' && args[1] !== 'bank' && args[1] !== 'reputation') { } else if (
title = 'Erreur'; args[1] !== "pocket" &&
description = '❌ Veuillez entrer une destination valide (pocket, bank, reputation).'; args[1] !== "bank" &&
args[1] !== "reputation"
) {
title = "Erreur";
description =
"❌ Veuillez entrer une destination valide (pocket, bank, reputation).";
} else if (message.mentions.users.first()) { } else if (message.mentions.users.first()) {
member = message.mentions.users.first(); member = message.mentions.users.first();
description = `💰 Vous avez mis à ${args[0]} la ${args[1]} de ${member.tag}.`; description = `💰 Vous avez mis à ${args[0]} la ${args[1]} de ${member.tag}.`;
@@ -40,10 +50,16 @@ module.exports = {
.setDescription(description) .setDescription(description)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
if (title !== 'Erreur') { if (title !== "Erreur") {
db.run(`UPDATE users SET ${args[1]} = ? WHERE guildId = ? AND userId = ?`, [args[0], message.guild.id, member.id]); db.run(
`UPDATE users SET ${args[1]} = ? WHERE guildId = ? AND userId = ?`,
[args[0], message.guild.id, member.id],
);
} }
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
+79 -34
View File
@@ -1,77 +1,122 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['setperm'], aliases: ["setperm"],
description: 'Ajoute les permissions d\'un rôle pour utiliser les commandes du bot.', description:
emote: '⏱️', "Ajoute les permissions d'un rôle pour utiliser les commandes du bot.",
utilisation: '<@role|None> <1|2|3|4|5>', emote: "⏱️",
utilisation: "<@role|None> <1|2|3|4|5>",
permission: 10, permission: 10,
async execute(message, args, client) { async execute(message, args, client) {
if (!args[0] || !args[1]) { if (!args[0] || !args[1]) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('⏱️ Ajout de permissions') .setTitle("⏱️ Ajout de permissions")
.setDescription(`Vous devez spécifier un rôle et un niveau de permission.\n\n**Utilisation:** \`&setRolePerm <@role|None> <1|2|3|4|5>\``) .setDescription(
`Vous devez spécifier un rôle et un niveau de permission.\n\n**Utilisation:** \`&setRolePerm <@role|None> <1|2|3|4|5>\``,
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
let role; let role;
if (args[0] === 'None') { if (args[0] === "None") {
role = 'None'; role = "None";
} else { } else {
role = message.mentions.roles.first().id; role = message.mentions.roles.first().id;
} }
if (isNaN(parseInt(args[1]))) { if (isNaN(parseInt(args[1]))) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('⏱️ Ajout de permissions') .setTitle("⏱️ Ajout de permissions")
.setDescription('Le deuxième argument doit être un nombre.') .setDescription("Le deuxième argument doit être un nombre.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
if (args[1] < 1 || args[1] > 5) { if (args[1] < 1 || args[1] > 5) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('⏱️ Ajout de permissions') .setTitle("⏱️ Ajout de permissions")
.setDescription('Le niveau de permission doit être compris entre 1 et 5.') .setDescription(
"Le niveau de permission doit être compris entre 1 et 5.",
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
if (role === 'None') { if (role === "None") {
db.run(`DELETE FROM rolePermission WHERE guildId = ? AND permission = ?`, [message.guild.id, args[1]]); db.run(
`DELETE FROM rolePermission WHERE guildId = ? AND permission = ?`,
[message.guild.id, args[1]],
);
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('⏱️ Ajout de permissions') .setTitle("⏱️ Ajout de permissions")
.setDescription(`Les permissions de niveau ${args[1]} ont été retirées.`) .setDescription(
`Les permissions de niveau ${args[1]} ont été retirées.`,
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
db.run(`INSERT OR REPLACE INTO rolePermission (guildId, roleId, permission) VALUES (?, ?, ?)`, [message.guild.id, role, args[1]]); db.run(
`INSERT OR REPLACE INTO rolePermission (guildId, roleId, permission) VALUES (?, ?, ?)`,
[message.guild.id, role, args[1]],
);
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('⏱️ Ajout de permissions') .setTitle("⏱️ Ajout de permissions")
.setDescription(`Le rôle <@&${role}> a maintenant la permission de niveau ${args[1]}.`) .setDescription(
`Le rôle <@&${role}> a maintenant la permission de niveau ${args[1]}.`,
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}, },
}; };
+535 -366
View File
@@ -1,366 +1,535 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const {
const embedColor = require('../../fonctions/embedColor.js'); EmbedBuilder,
const db = require('../../fonctions/database.js'); ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
const cardValues = { } = require("discord.js");
'A': 11, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9, '10': 10, 'J': 10, 'Q': 10, 'K': 10 const embedColor = require("../../fonctions/embedColor.js");
}; const db = require("../../fonctions/database.js");
const cardSymbols = ['♠️', '♥️', '♦️', '♣️']; const cardValues = {
const usersWithGameInProgress = new Map(); A: 11,
setInterval(() => { 2: 2,
usersWithGameInProgress.clear(); 3: 3,
}, 180000); 4: 4,
5: 5,
function drawCard() { 6: 6,
const symbol = cardSymbols[Math.floor(Math.random() * cardSymbols.length)]; 7: 7,
const value = Object.keys(cardValues)[Math.floor(Math.random() * Object.keys(cardValues).length)]; 8: 8,
return { symbol, value }; 9: 9,
} 10: 10,
J: 10,
Q: 10,
module.exports = { K: 10,
aliases: ['bj'], };
description: 'Joue au blackjack.',
emote: '🃏', const cardSymbols = ["♠️", "♥️", "♦️", "♣️"];
utilisation: '<mise>', const usersWithGameInProgress = new Map();
permission: 0, setInterval(() => {
usersWithGameInProgress.clear();
async execute(message, args, client) { }, 180000);
if (args.length !== 1) {
embedColor(message.author.id, message.guild.id).then(color => { function drawCard() {
const embed = new EmbedBuilder() const symbol = cardSymbols[Math.floor(Math.random() * cardSymbols.length)];
.setTitle('🃏 Blackjack') const value =
.setDescription(`Vous devez spécifier une mise. Exemple : \`&blackjack 100\`.`) Object.keys(cardValues)[
.setColor(color) Math.floor(Math.random() * Object.keys(cardValues).length)
.setTimestamp() ];
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) return { symbol, value };
}
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
}); module.exports = {
} else if (isNaN(args[0])) { aliases: ["bj"],
embedColor(message.author.id, message.guild.id).then(color => { description: "Joue au blackjack.",
const embed = new EmbedBuilder() emote: "🃏",
.setTitle('🃏 Blackjack') utilisation: "<mise>",
.setDescription(`La mise doit être un nombre.`) permission: 0,
.setColor(color)
.setTimestamp() async execute(message, args, client) {
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) if (args.length !== 1) {
embedColor(message.author.id, message.guild.id).then((color) => {
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) const embed = new EmbedBuilder()
}); .setTitle("🃏 Blackjack")
} else if (args[0] < 25) { .setDescription(
embedColor(message.author.id, message.guild.id).then(color => { `Vous devez spécifier une mise. Exemple : \`&blackjack 100\`.`,
const embed = new EmbedBuilder() )
.setTitle('🃏 Blackjack') .setColor(color)
.setDescription(`La mise doit être supérieure ou égale à \`25\`.`) .setTimestamp()
.setColor(color) .setFooter({
.setTimestamp() text: `Demandé par ${message.author.tag}`,
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
}); return message.reply({
} embeds: [embed],
allowedMentions: { repliedUser: false },
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) { } else if (isNaN(args[0])) {
reject(err); embedColor(message.author.id, message.guild.id).then((color) => {
} else { const embed = new EmbedBuilder()
resolve(row.pocket); .setTitle("🃏 Blackjack")
} .setDescription(`La mise doit être un nombre.`)
}); .setColor(color)
}); .setTimestamp()
.setFooter({
if (pocket < args[0]) { text: `Demandé par ${message.author.tag}`,
embedColor(message.author.id, message.guild.id).then(color => { iconURL: message.author.displayAvatarURL(),
const embed = new EmbedBuilder() });
.setTitle('🃏 Blackjack')
.setDescription(`Vous n'avez pas assez d'argent pour miser cette somme.`) return message.reply({
.setColor(color) embeds: [embed],
.setTimestamp() allowedMentions: { repliedUser: false },
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) });
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) } else if (args[0] < 25) {
}); embedColor(message.author.id, message.guild.id).then((color) => {
} else { const embed = new EmbedBuilder()
const user = message.author; .setTitle("🃏 Blackjack")
const guildId = message.guild.id; .setDescription(`La mise doit être supérieure ou égale à \`25\`.`)
const currencyName = 'coins' .setColor(color)
.setTimestamp()
let amount = args[0]; .setFooter({
text: `Demandé par ${message.author.tag}`,
let pocketAmount = await new Promise((resolve, reject) => { iconURL: message.author.displayAvatarURL(),
db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { });
if (err) {
reject(err); return message.reply({
} else { embeds: [embed],
resolve(row.pocket || 0); allowedMentions: { repliedUser: false },
} });
}); });
}); }
const pocket = await new Promise((resolve, reject) => {
const playerCards = [drawCard(), drawCard()]; db.get(
const dealerCards = [drawCard()]; `SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
const playerTotal = playerCards.reduce((total, card) => total + cardValues[card.value], 0); (err, row) => {
if (playerTotal === 21 && playerCards.length === 2) { if (err) {
const blackjackPayoutMultiplier = 1.25; reject(err);
const winnings = Math.floor(amount * blackjackPayoutMultiplier); } else {
resolve(row.pocket);
let pocketAmount = await new Promise((resolve, reject) => { }
db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { },
if (err) { );
reject(err); });
} else {
resolve(row.pocket || 0); if (pocket < args[0]) {
} embedColor(message.author.id, message.guild.id).then((color) => {
}); const embed = new EmbedBuilder()
}); .setTitle("🃏 Blackjack")
.setDescription(
await new Promise((resolve, reject) => { `Vous n'avez pas assez d'argent pour miser cette somme.`,
db.run(`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, [pocketAmount + winnings, message.author.id, message.guild.id], (err) => { )
if (err) { .setColor(color)
reject(err); .setTimestamp()
} else { .setFooter({
resolve(); text: `Demandé par ${message.author.tag}`,
} iconURL: message.author.displayAvatarURL(),
}); });
});
return message.reply({
const winEmbed = new EmbedBuilder() embeds: [embed],
.setTitle('Blackjack 🎲') allowedMentions: { repliedUser: false },
.setDescription(`Félicitations ! Vous avez un blackjack naturel et vous avez gagné ${winnings} ${currencyName}.`) });
.setColor('#0099ff'); });
} else {
return message.reply({ embeds: [winEmbed], allowedMentions: { repliedUser: false } }); const user = message.author;
} const guildId = message.guild.id;
const currencyName = "coins";
const embed = new EmbedBuilder()
.setTitle('Blackjack 🎲') let amount = args[0];
.setThumbnail('https://cdn.discordapp.com/attachments/1120446538544595005/1190016467257802843/kumarhane-poker.gif?ex=65a04433&is=658dcf33&hm=3ea3b7c74eb724d17249e3a60968f8c10b7d85452f3684b969a02a17ca79ab3e&')
.addFields( let pocketAmount = await new Promise((resolve, reject) => {
{ name: 'Votre main', value: `Cartes: ${playerCards.map(card => card.symbol + ' ' + card.value).join(' ')}\nTotal: ${playerTotal}`, inline: true }, db.get(
{ name: 'Main du croupier', value: `Cartes: ${dealerCards[0].symbol + ' ' + dealerCards[0].value} ?\nTotal: ?`, inline: true } `SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
) [message.author.id, message.guild.id],
.setColor('#0099ff'); (err, row) => {
if (err) {
const row = new ActionRowBuilder() reject(err);
.addComponents( } else {
new ButtonBuilder() resolve(row.pocket || 0);
.setCustomId('blackjack_hit') }
.setLabel('Hit') },
.setStyle(ButtonStyle.Primary), );
new ButtonBuilder() });
.setCustomId('blackjack_stand')
.setLabel('Stand') const playerCards = [drawCard(), drawCard()];
.setStyle(ButtonStyle.Primary), const dealerCards = [drawCard()];
new ButtonBuilder()
.setCustomId('blackjack_cancel') const playerTotal = playerCards.reduce(
.setLabel('Annuler') (total, card) => total + cardValues[card.value],
.setStyle(ButtonStyle.Danger) 0,
); );
if (playerTotal === 21 && playerCards.length === 2) {
const msg = await message.channel.send({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); const blackjackPayoutMultiplier = 1.25;
const winnings = Math.floor(amount * blackjackPayoutMultiplier);
const collector = msg.createMessageComponentCollector({time: 60000 });
let pocketAmount = await new Promise((resolve, reject) => {
await new Promise((resolve, reject) => { db.get(
db.run(`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, [pocketAmount - amount, message.author.id, message.guild.id], (err) => { `SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
if (err) { [message.author.id, message.guild.id],
reject(err); (err, row) => {
} else { if (err) {
resolve(); reject(err);
} } else {
}); resolve(row.pocket || 0);
}); }
},
usersWithGameInProgress.set(user.id); );
collector.on('collect', async i => { });
if (i.user.id !== user.id) {
return i.reply({ content: ":x: Vous n'avez pas la permission d'interagir avec ces boutons", ephemeral: true }); await new Promise((resolve, reject) => {
} db.run(
`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`,
await i.deferUpdate(); [pocketAmount + winnings, message.author.id, message.guild.id],
(err) => {
if (i.customId === 'blackjack_hit') { if (err) {
playerCards.push(drawCard()); reject(err);
} else {
let playerTotal = playerCards.reduce((total, card) => total + cardValues[card.value], 0); resolve();
}
if (playerTotal === 21) { },
const winnings = amount * 1.5; );
let pocketAmount = 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) { const winEmbed = new EmbedBuilder()
reject(err); .setTitle("Blackjack 🎲")
} else { .setDescription(
resolve(row.pocket || 0); `Félicitations ! Vous avez un blackjack naturel et vous avez gagné ${winnings} ${currencyName}.`,
} )
}); .setColor("#0099ff");
});
return message.reply({
await new Promise((resolve, reject) => { embeds: [winEmbed],
db.run(`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, [pocketAmount + winnings, message.author.id, message.guild.id], (err) => { allowedMentions: { repliedUser: false },
if (err) { });
reject(err); }
} else {
resolve(); const embed = new EmbedBuilder()
} .setTitle("Blackjack 🎲")
}); .setThumbnail(
}); "https://cdn.discordapp.com/attachments/1120446538544595005/1190016467257802843/kumarhane-poker.gif?ex=65a04433&is=658dcf33&hm=3ea3b7c74eb724d17249e3a60968f8c10b7d85452f3684b969a02a17ca79ab3e&",
)
const winEmbed = new EmbedBuilder() .addFields(
.setTitle('Blackjack 🎲') {
.setDescription(`Félicitations ! Vous avez atteint 21. Vous avez gagné ${winnings} ${currencyName}.`) name: "Votre main",
.setColor('#0099ff'); value: `Cartes: ${playerCards.map((card) => card.symbol + " " + card.value).join(" ")}\nTotal: ${playerTotal}`,
inline: true,
message.reply({ embeds: [winEmbed], allowedMentions: { repliedUser: false } }); },
usersWithGameInProgress.delete(user.id); {
collector.stop(); name: "Main du croupier",
} else if (playerTotal > 21) { value: `Cartes: ${dealerCards[0].symbol + " " + dealerCards[0].value} ?\nTotal: ?`,
const loseEmbed = new EmbedBuilder() inline: true,
.setTitle('Blackjack 🎲') },
.setDescription(`Vous avez dépassé 21. Vous avez perdu ${amount} ${currencyName}.`) )
.setColor('#0099ff'); .setColor("#0099ff");
message.reply({ embeds: [loseEmbed], allowedMentions: { repliedUser: false } }); const row = new ActionRowBuilder().addComponents(
collector.stop(); new ButtonBuilder()
} else { .setCustomId("blackjack_hit")
embed.spliceFields(0, 1, { name: 'Votre main', value: `Cartes: ${playerCards.map(card => card.symbol + ' ' + card.value).join(' ')}\nTotal: ${playerTotal}`, inline: true }); .setLabel("Hit")
i.editReply({ embeds: [embed] }); .setStyle(ButtonStyle.Primary),
} new ButtonBuilder()
usersWithGameInProgress.delete(user.id); .setCustomId("blackjack_stand")
} else if (i.customId === 'blackjack_stand') { .setLabel("Stand")
let dealerTotal = dealerCards.reduce((total, card) => total + cardValues[card.value], 0); .setStyle(ButtonStyle.Primary),
while (dealerTotal < 17) { new ButtonBuilder()
dealerCards.push(drawCard()); .setCustomId("blackjack_cancel")
dealerTotal = dealerCards.reduce((total, card) => total + cardValues[card.value], 0); .setLabel("Annuler")
} .setStyle(ButtonStyle.Danger),
);
const playerTotal = playerCards.reduce((total, card) => total + cardValues[card.value], 0);
let result; const msg = await message.channel.send({
if (dealerTotal > 21) { embeds: [embed],
result = `Le croupier a dépassé 21. Vous gagnez ${amount * 1.5} ${currencyName}. !`; components: [row],
allowedMentions: { repliedUser: false },
let pocketAmount = 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) { const collector = msg.createMessageComponentCollector({ time: 60000 });
reject(err);
} else { await new Promise((resolve, reject) => {
resolve(row.pocket || 0); db.run(
} `UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`,
}); [pocketAmount - amount, message.author.id, message.guild.id],
}); (err) => {
if (err) {
await new Promise((resolve, reject) => { reject(err);
db.run(`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, [pocketAmount + amount * 1.5, message.author.id, message.guild.id], (err) => { } else {
if (err) { resolve();
reject(err); }
} else { },
resolve(); );
} });
});
}); usersWithGameInProgress.set(user.id);
collector.on("collect", async (i) => {
const winEmbed = new EmbedBuilder() if (i.user.id !== user.id) {
.setTitle('Blackjack 🎲') return i.reply({
.setDescription(result) content:
.setColor('#0099ff'); ":x: Vous n'avez pas la permission d'interagir avec ces boutons",
ephemeral: true,
message.reply({ embeds: [winEmbed], allowedMentions: { repliedUser: false } }); });
usersWithGameInProgress.delete(user.id); }
} else if (dealerTotal > playerTotal) {
result = `Le croupier a ${dealerTotal} et gagne. Vous avez perdu ${amount} ${currencyName}.`; await i.deferUpdate();
const loseEmbed = new EmbedBuilder() if (i.customId === "blackjack_hit") {
.setTitle('Blackjack 🎲') playerCards.push(drawCard());
.setDescription(result)
.setColor('#0099ff'); let playerTotal = playerCards.reduce(
(total, card) => total + cardValues[card.value],
message.reply({ embeds: [loseEmbed], allowedMentions: { repliedUser: false } }); 0,
usersWithGameInProgress.delete(user.id); );
} else if (dealerTotal < playerTotal) { if (playerTotal === 21) {
let pocketAmount = await new Promise((resolve, reject) => { const winnings = amount * 1.5;
db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { let pocketAmount = await new Promise((resolve, reject) => {
if (err) { db.get(
reject(err); `SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
} else { [message.author.id, message.guild.id],
resolve(row.pocket || 0); (err, row) => {
} if (err) {
}); reject(err);
}); } else {
resolve(row.pocket || 0);
const winnings = amount * 1.5; }
},
await new Promise((resolve, reject) => { );
db.run(`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, [pocketAmount + winnings, message.author.id, message.guild.id], (err) => { });
if (err) {
reject(err); await new Promise((resolve, reject) => {
} else { db.run(
resolve(); `UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`,
} [pocketAmount + winnings, message.author.id, message.guild.id],
}); (err) => {
}); if (err) {
reject(err);
result = `Vous gagnez ! Vous avez gagné ${winnings} ${currencyName}.`; } else {
resolve();
const winEmbed = new EmbedBuilder() }
.setTitle('Blackjack 🎲') },
.setDescription(result) );
.setColor('#0099ff'); });
message.reply({ embeds: [winEmbed], allowedMentions: { repliedUser: false } }); const winEmbed = new EmbedBuilder()
usersWithGameInProgress.delete(user.id); .setTitle("Blackjack 🎲")
} else { .setDescription(
result = 'Il y a eu égalité. Vous récupérez votre mise.'; `Félicitations ! Vous avez atteint 21. Vous avez gagné ${winnings} ${currencyName}.`,
let pocketAmount = await db.get(`${guildId}.pocket.${user.id}`) || 0; )
await db.set(`${guildId}.pocket.${user.id}`, pocketAmount + amount); .setColor("#0099ff");
const tieEmbed = new EmbedBuilder() message.reply({
.setTitle('Blackjack 🎲') embeds: [winEmbed],
.setDescription(result) allowedMentions: { repliedUser: false },
.setColor('#0099ff'); });
usersWithGameInProgress.delete(user.id);
message.reply({ embeds: [tieEmbed], allowedMentions: { repliedUser: false } }); collector.stop();
} } else if (playerTotal > 21) {
usersWithGameInProgress.delete(user.id); const loseEmbed = new EmbedBuilder()
collector.stop(); .setTitle("Blackjack 🎲")
} else if (i.customId === 'blackjack_cancel') { .setDescription(
let pocketAmount = await new Promise((resolve, reject) => { `Vous avez dépassé 21. Vous avez perdu ${amount} ${currencyName}.`,
db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { )
if (err) { .setColor("#0099ff");
reject(err);
} else { message.reply({
resolve(row.pocket || 0); embeds: [loseEmbed],
} allowedMentions: { repliedUser: false },
}); });
}); collector.stop();
} else {
await new Promise((resolve, reject) => { embed.spliceFields(0, 1, {
db.run(`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, [pocketAmount + amount / 2, message.author.id, message.guild.id], (err) => { name: "Votre main",
if (err) { value: `Cartes: ${playerCards.map((card) => card.symbol + " " + card.value).join(" ")}\nTotal: ${playerTotal}`,
reject(err); inline: true,
} else { });
resolve(); i.editReply({ embeds: [embed] });
} }
}); usersWithGameInProgress.delete(user.id);
}); } else if (i.customId === "blackjack_stand") {
let dealerTotal = dealerCards.reduce(
const cancelEmbed = new EmbedBuilder() (total, card) => total + cardValues[card.value],
.setTitle('Blackjack 🎲') 0,
.setDescription('Partie annulée. Vous récupérez la moitié de votre mise.') );
.setColor('#0099ff'); while (dealerTotal < 17) {
dealerCards.push(drawCard());
message.reply({ embeds: [cancelEmbed], allowedMentions: { repliedUser: false } }); dealerTotal = dealerCards.reduce(
(total, card) => total + cardValues[card.value],
usersWithGameInProgress.delete(user.id); 0,
collector.stop(); );
} }
});
} const playerTotal = playerCards.reduce(
} (total, card) => total + cardValues[card.value],
}; 0,
);
let result;
if (dealerTotal > 21) {
result = `Le croupier a dépassé 21. Vous gagnez ${amount * 1.5} ${currencyName}. !`;
let pocketAmount = await new Promise((resolve, reject) => {
db.get(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) {
reject(err);
} else {
resolve(row.pocket || 0);
}
},
);
});
await new Promise((resolve, reject) => {
db.run(
`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`,
[
pocketAmount + amount * 1.5,
message.author.id,
message.guild.id,
],
(err) => {
if (err) {
reject(err);
} else {
resolve();
}
},
);
});
const winEmbed = new EmbedBuilder()
.setTitle("Blackjack 🎲")
.setDescription(result)
.setColor("#0099ff");
message.reply({
embeds: [winEmbed],
allowedMentions: { repliedUser: false },
});
usersWithGameInProgress.delete(user.id);
} else if (dealerTotal > playerTotal) {
result = `Le croupier a ${dealerTotal} et gagne. Vous avez perdu ${amount} ${currencyName}.`;
const loseEmbed = new EmbedBuilder()
.setTitle("Blackjack 🎲")
.setDescription(result)
.setColor("#0099ff");
message.reply({
embeds: [loseEmbed],
allowedMentions: { repliedUser: false },
});
usersWithGameInProgress.delete(user.id);
} else if (dealerTotal < playerTotal) {
let pocketAmount = await new Promise((resolve, reject) => {
db.get(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) {
reject(err);
} else {
resolve(row.pocket || 0);
}
},
);
});
const winnings = amount * 1.5;
await new Promise((resolve, reject) => {
db.run(
`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`,
[pocketAmount + winnings, message.author.id, message.guild.id],
(err) => {
if (err) {
reject(err);
} else {
resolve();
}
},
);
});
result = `Vous gagnez ! Vous avez gagné ${winnings} ${currencyName}.`;
const winEmbed = new EmbedBuilder()
.setTitle("Blackjack 🎲")
.setDescription(result)
.setColor("#0099ff");
message.reply({
embeds: [winEmbed],
allowedMentions: { repliedUser: false },
});
usersWithGameInProgress.delete(user.id);
} else {
result = "Il y a eu égalité. Vous récupérez votre mise.";
let pocketAmount =
(await db.get(`${guildId}.pocket.${user.id}`)) || 0;
await db.set(`${guildId}.pocket.${user.id}`, pocketAmount + amount);
const tieEmbed = new EmbedBuilder()
.setTitle("Blackjack 🎲")
.setDescription(result)
.setColor("#0099ff");
message.reply({
embeds: [tieEmbed],
allowedMentions: { repliedUser: false },
});
}
usersWithGameInProgress.delete(user.id);
collector.stop();
} else if (i.customId === "blackjack_cancel") {
let pocketAmount = await new Promise((resolve, reject) => {
db.get(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) {
reject(err);
} else {
resolve(row.pocket || 0);
}
},
);
});
await new Promise((resolve, reject) => {
db.run(
`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`,
[pocketAmount + amount / 2, message.author.id, message.guild.id],
(err) => {
if (err) {
reject(err);
} else {
resolve();
}
},
);
});
const cancelEmbed = new EmbedBuilder()
.setTitle("Blackjack 🎲")
.setDescription(
"Partie annulée. Vous récupérez la moitié de votre mise.",
)
.setColor("#0099ff");
message.reply({
embeds: [cancelEmbed],
allowedMentions: { repliedUser: false },
});
usersWithGameInProgress.delete(user.id);
collector.stop();
}
});
}
},
};
+149 -91
View File
@@ -1,99 +1,157 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const {
const embedColor = require('../../fonctions/embedColor.js'); EmbedBuilder,
const db = require('../../fonctions/database.js'); ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
module.exports = { module.exports = {
aliases: ['roulette'], aliases: ["roulette"],
description: 'Lance une roulette 100% gagante. (coûte une clef)', description: "Lance une roulette 100% gagante. (coûte une clef)",
emote: '🎲', emote: "🎲",
utilisation: '', utilisation: "",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const key = await new Promise((resolve, reject) => { 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) => { db.get(
if (err) { `SELECT key FROM users WHERE userId = ? AND guildId = ?`,
reject(err); [message.author.id, message.guild.id],
} else { (err, row) => {
resolve(row.key); if (err) {
} reject(err);
}); } else {
}); resolve(row.key);
if (key == 0) return message.reply('Tu n\'as pas de clef, tu ne peux pas ouvrir de box') }
db.run(`UPDATE users SET key = key - 1 WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id]) },
);
});
if (key == 0)
return message.reply("Tu n'as pas de clef, tu ne peux pas ouvrir de box");
db.run(`UPDATE users SET key = key - 1 WHERE userId = ? AND guildId = ?`, [
message.author.id,
message.guild.id,
]);
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🗝️ Box') .setTitle("🗝️ Box")
.setDescription(`🪙👑🗝️\n💰🔺🪙\n🪙🪙🗝️`) .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)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag} | Il te reste ${key - 1}clef`, iconURL: message.author.displayAvatarURL() }) .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],
);
const msg = await message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) msg.delete();
message.reply({
await new Promise(resolve => setTimeout(resolve, 1000)); embeds: [
new EmbedBuilder()
const result = Math.floor(Math.random() * 30); .setTitle("🗝️ Box")
let gain = ''; .setDescription(
let emoji = ''; `${(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 !!**`,
let recompense = ''; )
if (result === 0) { .setColor(await embedColor(message.author.id, message.guild.id))
gain = '30000'; .setTimestamp()
emoji = '💰'; .setFooter({
recompense = 'bank'; text: `Demandé par ${message.author.tag} | Il te reste ${key - 1}clef`,
} else if (result === 1) { iconURL: message.author.displayAvatarURL(),
gain = '5'; }),
emoji = '🗝️'; ],
recompense = 'key'; allowedMentions: { repliedUser: false },
} 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 } })
}
} }
}; },
};
+156 -76
View File
@@ -1,109 +1,169 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const {
const embedColor = require('../../fonctions/embedColor.js'); EmbedBuilder,
const db = require('../../fonctions/database.js'); ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
module.exports = { module.exports = {
aliases: ['dice', 'dé'], aliases: ["dice", "dé"],
description: 'Lance un dé.', description: "Lance un dé.",
emote: '🎲', emote: "🎲",
utilisation: '<mise> <face1> <face2>', utilisation: "<mise> <face1> <face2>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
let mise = 0 let mise = 0;
let face = `${args[1]}\` et \`${args[2]}` let face = `${args[1]}\` et \`${args[2]}`;
const pocket = await new Promise((resolve, reject) => { 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) => { db.get(
if (err) { `SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
reject(err); [message.author.id, message.guild.id],
} else { (err, row) => {
resolve(row.pocket); if (err) {
} reject(err);
}); } else {
resolve(row.pocket);
}
},
);
}); });
if (args[0] == 'all') { if (args[0] == "all") {
mise = pocket mise = pocket;
} else { } else {
mise = args[0] mise = args[0];
} }
if (pocket < mise) { if (pocket < mise) {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🎲 Lancer de dé') .setTitle("🎲 Lancer de dé")
.setDescription(`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`) .setDescription(
`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`,
)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} }
if (args.length !== 3) { if (args.length !== 3) {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🎲 Lancer de dé') .setTitle("🎲 Lancer de dé")
.setDescription(`Vous devez spécifier une mise et deux face. Exemple : \`&dice 100 1 2\`.`) .setDescription(
`Vous devez spécifier une mise et deux face. Exemple : \`&dice 100 1 2\`.`,
)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} }
if (isNaN(args[0]) && !args[0] == "all") { if (isNaN(args[0]) && !args[0] == "all") {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🎲 Lancer de dé') .setTitle("🎲 Lancer de dé")
.setDescription(`La mise doit être un nombre.`) .setDescription(`La mise doit être un nombre.`)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} else if (mise < 25) { } else if (mise < 25) {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🎲 Lancer de dé') .setTitle("🎲 Lancer de dé")
.setDescription(`La mise doit être supérieure ou égale à \`25\`.`) .setDescription(`La mise doit être supérieure ou égale à \`25\`.`)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} else if (!face.includes(1) && !face.includes(2) && !face.includes(3) && !face.includes(4) && !face.includes(5) && !face.includes(6)) { } else if (
embedColor(message.author.id, message.guild.id).then(color => { !face.includes(1) &&
!face.includes(2) &&
!face.includes(3) &&
!face.includes(4) &&
!face.includes(5) &&
!face.includes(6)
) {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🎲 Lancer de dé') .setTitle("🎲 Lancer de dé")
.setDescription(`La face doit être 1, 2, 3, 4, 5 ou 6.`) .setDescription(`La face doit être 1, 2, 3, 4, 5 ou 6.`)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} }
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🎲 Lancer de dé') .setTitle("🎲 Lancer de dé")
.setImage('https://cdn.discordapp.com/attachments/1120446538544595005/1195513783997714564/dice.gif?') .setImage(
.setDescription(`Vous avez misé \`${mise}\` sur \`${face}\`. Le dé tourne...\nRésultat dans 7.5 secondes...`) "https://cdn.discordapp.com/attachments/1120446538544595005/1195513783997714564/dice.gif?",
)
.setDescription(
`Vous avez misé \`${mise}\` sur \`${face}\`. Le dé tourne...\nRésultat dans 7.5 secondes...`,
)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
await new Promise(resolve => setTimeout(resolve, 7500)); await new Promise((resolve) => setTimeout(resolve, 7500));
const result = Math.floor(Math.random() * 6) + 1; const result = Math.floor(Math.random() * 6) + 1;
let gain = 0; let gain = 0;
@@ -114,39 +174,59 @@ module.exports = {
} }
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [gain, message.author.id, message.guild.id], (err) => { db.run(
if (err) { `UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`,
reject(err); [gain, message.author.id, message.guild.id],
} else { (err) => {
resolve(); if (err) {
} reject(err);
}); } else {
resolve();
}
},
);
}); });
if (gain >= 0) { if (gain >= 0) {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🎲 Lancer de dé') .setTitle("🎲 Lancer de dé")
.setDescription(`Vous avez misé \`${mise}\` sur \`${face}\` et le dé est tombée sur \`${result}\`. Vous avez gagné \`${gain}\` !`) .setDescription(
`Vous avez misé \`${mise}\` sur \`${face}\` et le dé est tombée sur \`${result}\`. Vous avez gagné \`${gain}\` !`,
)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} else { } else {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🎲 Lancer de dé') .setTitle("🎲 Lancer de dé")
.setDescription(`Vous avez misé \`${mise}\` sur \`${face}\` et le dé est tombée sur \`${result}\`. Vous avez perdu \`${0 - gain}\` !`) .setDescription(
`Vous avez misé \`${mise}\` sur \`${face}\` et le dé est tombée sur \`${result}\`. Vous avez perdu \`${0 - gain}\` !`,
)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} }
} },
}; };
+356 -197
View File
@@ -1,12 +1,17 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const {
const embedColor = require('../../fonctions/embedColor.js'); EmbedBuilder,
const db = require('../../fonctions/database.js'); ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
module.exports = { module.exports = {
aliases: [], aliases: [],
description: 'Joue au gunfight.', description: "Joue au gunfight.",
emote: '🔫', emote: "🔫",
utilisation: '<@membre> <mise>', utilisation: "<@membre> <mise>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
@@ -22,231 +27,358 @@ module.exports = {
member = args[0]; member = args[0];
mise = args[1]; mise = args[1];
} else { } else {
return message.reply({ embeds: [ return message.reply({
new EmbedBuilder() embeds: [
.setTitle('🔫 Gunfight') new EmbedBuilder()
.setDescription(`Vous devez spécifier un membre et une mise. Exemple : \`&gunfight @membre 100\`.`) .setTitle("🔫 Gunfight")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(
.setTimestamp() `Vous devez spécifier un membre et une mise. Exemple : \`&gunfight @membre 100\`.`,
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) )
], allowedMentions: { repliedUser: false } }) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} }
if (!member || !mise) { if (!member || !mise) {
return message.reply({ embeds: [ return message.reply({
new EmbedBuilder() embeds: [
.setTitle('🔫 Gunfight') new EmbedBuilder()
.setDescription(`Vous devez spécifier un membre et une mise. Exemple : \`&gunfight @membre 100\`.`) .setTitle("🔫 Gunfight")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(
.setTimestamp() `Vous devez spécifier un membre et une mise. Exemple : \`&gunfight @membre 100\`.`,
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) )
], allowedMentions: { repliedUser: false } }) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} }
if (isNaN(mise)) { if (isNaN(mise)) {
return message.reply({ embeds: [ return message.reply({
new EmbedBuilder() embeds: [
.setTitle('🔫 Gunfight') new EmbedBuilder()
.setDescription(`La mise doit être un nombre.`) .setTitle("🔫 Gunfight")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(`La mise doit être un nombre.`)
.setTimestamp() .setColor(await embedColor(message.author.id, message.guild.id))
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setTimestamp()
], allowedMentions: { repliedUser: false } }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} }
if (mise < 25) { if (mise < 25) {
return message.reply({ embeds: [ return message.reply({
new EmbedBuilder() embeds: [
.setTitle('🔫 Gunfight') new EmbedBuilder()
.setDescription(`La mise doit être supérieure ou égale à \`25\`.`) .setTitle("🔫 Gunfight")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(`La mise doit être supérieure ou égale à \`25\`.`)
.setTimestamp() .setColor(await embedColor(message.author.id, message.guild.id))
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setTimestamp()
], allowedMentions: { repliedUser: false } }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} }
if (member === message.author.id) { if (member === message.author.id) {
return message.reply({ embeds: [ return message.reply({
new EmbedBuilder() embeds: [
.setTitle('🔫 Gunfight') new EmbedBuilder()
.setDescription(`Vous ne pouvez pas jouer contre vous-même.`) .setTitle("🔫 Gunfight")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(`Vous ne pouvez pas jouer contre vous-même.`)
.setTimestamp() .setColor(await embedColor(message.author.id, message.guild.id))
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setTimestamp()
], allowedMentions: { repliedUser: false } }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} }
if (member === client.user.id) { if (member === client.user.id) {
return message.reply({ embeds: [ return message.reply({
new EmbedBuilder() embeds: [
.setTitle('🔫 Gunfight') new EmbedBuilder()
.setDescription(`Je ne peux pas jouer contre vous désolé.`) .setTitle("🔫 Gunfight")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(`Je ne peux pas jouer contre vous désolé.`)
.setTimestamp() .setColor(await embedColor(message.author.id, message.guild.id))
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setTimestamp()
], allowedMentions: { repliedUser: false } }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} }
if (client.users.cache.get(member)?.bot) { if (client.users.cache.get(member)?.bot) {
return message.reply({ embeds: [ return message.reply({
new EmbedBuilder() embeds: [
.setTitle('🔫 Gunfight') new EmbedBuilder()
.setDescription('Vous ne pouvez pas jouer contre un bot.') .setTitle("🔫 Gunfight")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription("Vous ne pouvez pas jouer contre un bot.")
.setTimestamp() .setColor(await embedColor(message.author.id, message.guild.id))
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setTimestamp()
], allowedMentions: { repliedUser: false } }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} }
const pocketUser = await new Promise((resolve, reject) => { const pocketUser = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { db.get(
if (err) { `SELECT * FROM users WHERE userId = ? AND guildId = ?`,
reject(err); [message.author.id, message.guild.id],
} else { (err, row) => {
if (row) { if (err) {
resolve(row.pocket); reject(err);
} else { } else {
resolve(null); if (row) {
resolve(row.pocket);
} else {
resolve(null);
}
} }
} },
}); );
}); });
const pocketMember = await new Promise((resolve, reject) => { const pocketMember = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE userId = ? AND guildId = ?`, [member, message.guild.id], (err, row) => { db.get(
if (err) { `SELECT * FROM users WHERE userId = ? AND guildId = ?`,
reject(err); [member, message.guild.id],
} else { (err, row) => {
if (row) { if (err) {
resolve(row.pocket); reject(err);
} else { } else {
resolve(null); if (row) {
resolve(row.pocket);
} else {
resolve(null);
}
} }
} },
}); );
}); });
if (pocketUser === null) { if (pocketUser === null) {
return message.reply({ embeds: [ return message.reply({
new EmbedBuilder() embeds: [
.setTitle('🔫 Gunfight') new EmbedBuilder()
.setDescription(`Vous n'êtes pas enregistré dans la base de données.`) .setTitle("🔫 Gunfight")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(
.setTimestamp() `Vous n'êtes pas enregistré dans la base de données.`,
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) )
], allowedMentions: { repliedUser: false } }) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} }
if (pocketMember === null) { if (pocketMember === null) {
return message.reply({ embeds: [ return message.reply({
new EmbedBuilder() embeds: [
.setTitle('🔫 Gunfight') new EmbedBuilder()
.setDescription(`Le membre spécifié n'existe pas.`) .setTitle("🔫 Gunfight")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(`Le membre spécifié n'existe pas.`)
.setTimestamp() .setColor(await embedColor(message.author.id, message.guild.id))
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setTimestamp()
], allowedMentions: { repliedUser: false } }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} }
if (pocketUser < mise) { if (pocketUser < mise) {
return message.reply({ embeds: [ return message.reply({
new EmbedBuilder() embeds: [
.setTitle('🔫 Gunfight') new EmbedBuilder()
.setDescription(`Vous n'avez pas assez d'argent sur vous pour miser cette somme.\nVotre solde actuel est de ${pocketUser} coins.`) .setTitle("🔫 Gunfight")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(
.setTimestamp() `Vous n'avez pas assez d'argent sur vous pour miser cette somme.\nVotre solde actuel est de ${pocketUser} coins.`,
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) )
], allowedMentions: { repliedUser: false } }) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} }
if (pocketMember < mise) { if (pocketMember < mise) {
return message.reply({ embeds: [ return message.reply({
new EmbedBuilder() embeds: [
.setTitle('🔫 Gunfight') new EmbedBuilder()
.setDescription(`Ce membre n'a pas assez d'argent sur lui pour miser cette somme.\nSon solde actuel est de ${pocketMember} coins.`) .setTitle("🔫 Gunfight")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(
.setTimestamp() `Ce membre n'a pas assez d'argent sur lui pour miser cette somme.\nSon solde actuel est de ${pocketMember} coins.`,
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) )
], allowedMentions: { repliedUser: false } }) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} }
if (pocketUser === 0) { if (pocketUser === 0) {
return message.reply({ embeds: [ return message.reply({
new EmbedBuilder() embeds: [
.setTitle('🔫 Gunfight') new EmbedBuilder()
.setDescription(`Vous n'avez pas d'argent sur vous pour miser.`) .setTitle("🔫 Gunfight")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(`Vous n'avez pas d'argent sur vous pour miser.`)
.setTimestamp() .setColor(await embedColor(message.author.id, message.guild.id))
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setTimestamp()
], allowedMentions: { repliedUser: false } }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} }
if (pocketMember === 0) { if (pocketMember === 0) {
return message.reply({ embeds: [ return message.reply({
new EmbedBuilder() embeds: [
.setTitle('🔫 Gunfight') new EmbedBuilder()
.setDescription(`Ce membre n'a pas d'argent sur lui pour miser.`) .setTitle("🔫 Gunfight")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(`Ce membre n'a pas d'argent sur lui pour miser.`)
.setTimestamp() .setColor(await embedColor(message.author.id, message.guild.id))
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setTimestamp()
], allowedMentions: { repliedUser: false } }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} }
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🔫 Gunfight') .setTitle("🔫 Gunfight")
.setDescription(`Vous avez défié <@${member}> à un duel de gunfight pour une mise de ${mise} coins.\nVeuillez appuyer sur le bouton pour accepter ou refuser le défi.`) .setDescription(
`Vous avez défié <@${member}> à un duel de gunfight pour une mise de ${mise} coins.\nVeuillez appuyer sur le bouton pour accepter ou refuser le défi.`,
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
const buttonAccept = new ButtonBuilder() const buttonAccept = new ButtonBuilder()
.setCustomId('gunfight-accept') .setCustomId("gunfight-accept")
.setLabel('Accepter') .setLabel("Accepter")
.setStyle(ButtonStyle.Success); .setStyle(ButtonStyle.Success);
const buttonRefuse = new ButtonBuilder() const buttonRefuse = new ButtonBuilder()
.setCustomId('gunfight-refuse') .setCustomId("gunfight-refuse")
.setLabel('Refuser') .setLabel("Refuser")
.setStyle(ButtonStyle.Danger); .setStyle(ButtonStyle.Danger);
const actionRow = new ActionRowBuilder() const actionRow = new ActionRowBuilder().addComponents(
.addComponents(buttonAccept, buttonRefuse); buttonAccept,
buttonRefuse,
);
const sendMessage = await message.reply({ embeds: [embed], components: [actionRow], allowedMentions: { repliedUser: false } }); const sendMessage = await message.reply({
embeds: [embed],
components: [actionRow],
allowedMentions: { repliedUser: false },
});
const filter = i => i.user.id === member; const filter = (i) => i.user.id === member;
const collector = sendMessage.createMessageComponentCollector({ filter, time: 60000 }); const collector = sendMessage.createMessageComponentCollector({
collector.on('collect', async i => { filter,
if (i.customId === 'gunfight-accept') { time: 60000,
});
collector.on("collect", async (i) => {
if (i.customId === "gunfight-accept") {
collector.stop(); collector.stop();
i.deferUpdate(); i.deferUpdate();
db.run(`UPDATE users SET pocket = pocket - ? WHERE userId = ? AND guildId = ?`, [mise, message.author.id, message.guild.id]); db.run(
db.run(`UPDATE users SET pocket = pocket - ? WHERE userId = ? AND guildId = ?`, [mise, member, message.guild.id]); `UPDATE users SET pocket = pocket - ? WHERE userId = ? AND guildId = ?`,
[mise, message.author.id, message.guild.id],
);
db.run(
`UPDATE users SET pocket = pocket - ? WHERE userId = ? AND guildId = ?`,
[mise, member, message.guild.id],
);
const tirerBtn = new ButtonBuilder() const tirerBtn = new ButtonBuilder()
.setCustomId('gunfight-tirer') .setCustomId("gunfight-tirer")
.setLabel('Tirer') .setLabel("Tirer")
.setStyle(ButtonStyle.Danger); .setStyle(ButtonStyle.Danger);
const actionRow = new ActionRowBuilder() const actionRow = new ActionRowBuilder().addComponents(tirerBtn);
.addComponents(tirerBtn);
sendMessage.edit({ embeds: [ sendMessage.edit({
new EmbedBuilder() embeds: [
.setTitle('🔫 Gunfight') new EmbedBuilder()
.setDescription(`Le membre a accepté votre défi de gunfight. Le duel va commencer.\nAppuyez sur le bouton pour tirer quand il devient vert.`) .setTitle("🔫 Gunfight")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(
.setTimestamp() `Le membre a accepté votre défi de gunfight. Le duel va commencer.\nAppuyez sur le bouton pour tirer quand il devient vert.`,
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) )
], components: [actionRow] }); .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
components: [actionRow],
});
const timer = Math.floor(Math.random() * 10000) + 5000 const timer = Math.floor(Math.random() * 10000) + 5000;
let fincollector = false; let fincollector = false;
const filter = i => i.user.id === member || i.user.id === message.member.id; const filter = (i) =>
const tirerCollector = sendMessage.createMessageComponentCollector({ filter, time: timer }); i.user.id === member || i.user.id === message.member.id;
tirerCollector.on('collect', async i => { const tirerCollector = sendMessage.createMessageComponentCollector({
if (i.customId === 'gunfight-tirer') { filter,
time: timer,
});
tirerCollector.on("collect", async (i) => {
if (i.customId === "gunfight-tirer") {
fincollector = true; fincollector = true;
tirerCollector.stop(); tirerCollector.stop();
sendMessage.edit({ components: [] }); sendMessage.edit({ components: [] });
@@ -261,55 +393,82 @@ module.exports = {
notwinner = member; notwinner = member;
} }
i.reply({ embeds: [ i.reply({
new EmbedBuilder() embeds: [
.setTitle('🔫 Gunfight') new EmbedBuilder()
.setDescription(`Le duel est terminé. <@${winner}> a gagné la somme de ${mise*2} coins car <@${notwinner}> a tiré trop tôt`) .setTitle("🔫 Gunfight")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(
.setTimestamp() `Le duel est terminé. <@${winner}> a gagné la somme de ${mise * 2} coins car <@${notwinner}> a tiré trop tôt`,
] }); )
.setColor(
await embedColor(message.author.id, message.guild.id),
)
.setTimestamp(),
],
});
db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [mise*2, winner, message.guild.id]); db.run(
`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`,
[mise * 2, winner, message.guild.id],
);
} }
}); });
tirerCollector.on('end', async () => { tirerCollector.on("end", async () => {
if (fincollector) return; if (fincollector) return;
tirerBtn.setStyle(ButtonStyle.Success); tirerBtn.setStyle(ButtonStyle.Success);
sendMessage.edit({ components: [actionRow] }); sendMessage.edit({ components: [actionRow] });
const filter = i => i.user.id === member || i.user.id === message.member.id; const filter = (i) =>
const tirerCollector = sendMessage.createMessageComponentCollector({ filter, time: 60000 }); i.user.id === member || i.user.id === message.member.id;
tirerCollector.on('collect', async i => { const tirerCollector = sendMessage.createMessageComponentCollector({
if (i.customId === 'gunfight-tirer') { filter,
time: 60000,
});
tirerCollector.on("collect", async (i) => {
if (i.customId === "gunfight-tirer") {
tirerCollector.stop(); tirerCollector.stop();
sendMessage.edit({ components: [] }); sendMessage.edit({ components: [] });
i.reply({ embeds: [ i.reply({
new EmbedBuilder() embeds: [
.setTitle('🔫 Gunfight') new EmbedBuilder()
.setDescription(`Le duel est terminé. <@${i.user.id}> a gagné la somme de ${mise*2} coins.`) .setTitle("🔫 Gunfight")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(
.setTimestamp() `Le duel est terminé. <@${i.user.id}> a gagné la somme de ${mise * 2} coins.`,
] }); )
.setColor(
await embedColor(message.author.id, message.guild.id),
)
.setTimestamp(),
],
});
db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [mise*2, i.user.id, message.guild.id]); db.run(
`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`,
[mise * 2, i.user.id, message.guild.id],
);
return; return;
} }
}); });
}); });
} else if (i.customId === "gunfight-refuse") {
} else if (i.customId === 'gunfight-refuse') {
collector.stop(); collector.stop();
sendMessage.edit({ embeds: [ sendMessage.edit({
new EmbedBuilder() embeds: [
.setTitle('🔫 Gunfight') new EmbedBuilder()
.setDescription(`Le membre a refusé votre défi de gunfight.`) .setTitle("🔫 Gunfight")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(`Le membre a refusé votre défi de gunfight.`)
.setTimestamp() .setColor(await embedColor(message.author.id, message.guild.id))
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setTimestamp()
], components: [] }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
components: [],
});
} }
}); });
} },
}; };
+155 -76
View File
@@ -1,151 +1,230 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const {
const embedColor = require('../../fonctions/embedColor.js'); EmbedBuilder,
const db = require('../../fonctions/database.js'); ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
module.exports = { module.exports = {
aliases: ['slot'], aliases: ["slot"],
description: 'Lance la machine à sous (si 3caractère identique, tu remporte 3fois ta mise).', description:
emote: '🪙', "Lance la machine à sous (si 3caractère identique, tu remporte 3fois ta mise).",
utilisation: '<mise>', emote: "🪙",
utilisation: "<mise>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
if (args.length !== 1) { if (args.length !== 1) {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🪙 Machine à sous') .setTitle("🪙 Machine à sous")
.setDescription(`Vous devez spécifier une mise. Exemple : \`&machine-a-sous 100\`.`) .setDescription(
`Vous devez spécifier une mise. Exemple : \`&machine-a-sous 100\`.`,
)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} else if (isNaN(args[0])) { } else if (isNaN(args[0])) {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🪙 Machine à sous') .setTitle("🪙 Machine à sous")
.setDescription(`La mise doit être un nombre.`) .setDescription(`La mise doit être un nombre.`)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} else if (args[0] < 25) { } else if (args[0] < 25) {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🪙 Machine à sous') .setTitle("🪙 Machine à sous")
.setDescription(`La mise doit être supérieure ou égale à \`25\`.`) .setDescription(`La mise doit être supérieure ou égale à \`25\`.`)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} }
const pocket = await new Promise((resolve, reject) => { const pocket = await new Promise((resolve, reject) => {
db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], async (err, row) => { db.get(
if (err) { `SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
reject(err); [message.author.id, message.guild.id],
} else { async (err, row) => {
resolve(row.pocket); if (err) {
} reject(err);
}); } else {
resolve(row.pocket);
}
},
);
}); });
if (pocket < args[0]) { if (pocket < args[0]) {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🪙 Machine à sous') .setTitle("🪙 Machine à sous")
.setDescription(`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`) .setDescription(
`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`,
)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} }
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🪙 Machine à sous') .setTitle("🪙 Machine à sous")
.setImage('https://cdn.discordapp.com/attachments/1244326671730086049/1246142849955664093/3OkKuOYO.1245413015365488731.gif?ex=665b5077&is=6659fef7&hm=94eb9000c433e25e2e9a2355e693eb8e01b5d27fa250a8889f6098f14bf67a80&') .setImage(
.setDescription(`Vous avez misé \`${args[0]}\`. Les chiffres deffilent...\nRésultat dans 7.5 secondes...`) "https://cdn.discordapp.com/attachments/1244326671730086049/1246142849955664093/3OkKuOYO.1245413015365488731.gif?ex=665b5077&is=6659fef7&hm=94eb9000c433e25e2e9a2355e693eb8e01b5d27fa250a8889f6098f14bf67a80&",
)
.setDescription(
`Vous avez misé \`${args[0]}\`. Les chiffres deffilent...\nRésultat dans 7.5 secondes...`,
)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
await new Promise(resolve => setTimeout(resolve, 7500)); await new Promise((resolve) => setTimeout(resolve, 7500));
let nombre1 = await Math.floor(Math.random() * 10) let nombre1 = await Math.floor(Math.random() * 10);
let nombre2 = await Math.floor(Math.random() * (nombre1 + 1)) let nombre2 = await Math.floor(Math.random() * (nombre1 + 1));
let nombre3 = await Math.floor(Math.random() * (nombre2 + 2)) let nombre3 = await Math.floor(Math.random() * (nombre2 + 2));
let gain = 0; let gain = 0;
if (nombre1 === nombre2 === nombre3) { if ((nombre1 === nombre2) === nombre3) {
gain = args[0] * 10; gain = args[0] * 10;
} else if ((nombre1 === nombre2) || (nombre1 === nombre3) || (nombre2 == nombre3)) { } else if (
nombre1 === nombre2 ||
nombre1 === nombre3 ||
nombre2 == nombre3
) {
gain = args[0] * 2; gain = args[0] * 2;
} else { } else {
gain = 0 - args[0]; gain = 0 - args[0];
} }
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [gain, message.author.id, message.guild.id], (err) => { db.run(
if (err) { `UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`,
reject(err); [gain, message.author.id, message.guild.id],
} else { (err) => {
resolve(); if (err) {
} reject(err);
}); } else {
resolve();
}
},
);
}); });
if (gain == args[0] * 10) { if (gain == args[0] * 10) {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🪙 Machine à sous') .setTitle("🪙 Machine à sous")
.setDescription(`Vous avez misé \`${args[0]}\` et les nombres sont : ${nombre1}, ${nombre2}, ${nombre3}. Vous avez gagné \`${gain}\` !`) .setDescription(
`Vous avez misé \`${args[0]}\` et les nombres sont : ${nombre1}, ${nombre2}, ${nombre3}. Vous avez gagné \`${gain}\` !`,
)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} else if (gain == args[0] * 2) { } else if (gain == args[0] * 2) {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🪙 Machine à sous') .setTitle("🪙 Machine à sous")
.setDescription(`Vous avez misé \`${args[0]}\` et les nombres sont : ${nombre1}, ${nombre2}, ${nombre3}. Vous gagner deux fois votre mise (\`${gain}\`) car deux nombres sont identiques :wink: !`) .setDescription(
`Vous avez misé \`${args[0]}\` et les nombres sont : ${nombre1}, ${nombre2}, ${nombre3}. Vous gagner deux fois votre mise (\`${gain}\`) car deux nombres sont identiques :wink: !`,
)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} else { } else {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🪙 Machine à sous') .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 à 5%. 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) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} }
} },
}; };
+186 -110
View File
@@ -1,151 +1,227 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const {
const embedColor = require('../../fonctions/embedColor.js'); EmbedBuilder,
const db = require('../../fonctions/database.js'); ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
module.exports = { module.exports = {
aliases: ['pfc'], aliases: ["pfc"],
description: 'Joue au pierre feuille ciseau.', description: "Joue au pierre feuille ciseau.",
emote: '🎲', emote: "🎲",
utilisation: '<mise> <pierre|feuille|ciseau>', utilisation: "<mise> <pierre|feuille|ciseau>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
if (args.length !== 2) { if (args.length !== 2) {
return message.reply({ embeds: [ return message.reply({
new EmbedBuilder() embeds: [
.setTitle('🪨 Pierre Feuille Ciseau') new EmbedBuilder()
.setDescription(`Vous devez spécifier une mise et un coup. Exemple : \`&pierre-feuille-ciseau 100 pierre\`.`) .setTitle("🪨 Pierre Feuille Ciseau")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(
.setTimestamp() `Vous devez spécifier une mise et un coup. Exemple : \`&pierre-feuille-ciseau 100 pierre\`.`,
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) )
], allowedMentions: { repliedUser: false } }) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} else if (isNaN(args[0])) { } else if (isNaN(args[0])) {
return message.reply({ embeds: [ return message.reply({
new EmbedBuilder() embeds: [
.setTitle('🪨 Pierre Feuille Ciseau') new EmbedBuilder()
.setDescription(`La mise doit être un nombre.`) .setTitle("🪨 Pierre Feuille Ciseau")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(`La mise doit être un nombre.`)
.setTimestamp() .setColor(await embedColor(message.author.id, message.guild.id))
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setTimestamp()
], allowedMentions: { repliedUser: false } }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} else if (args[0] < 25) { } else if (args[0] < 25) {
return message.reply({ embeds: [ return message.reply({
new EmbedBuilder() embeds: [
.setTitle('🪨 Pierre Feuille Ciseau') new EmbedBuilder()
.setDescription(`La mise doit être supérieure ou égale à \`25\`.`) .setTitle("🪨 Pierre Feuille Ciseau")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(`La mise doit être supérieure ou égale à \`25\`.`)
.setTimestamp() .setColor(await embedColor(message.author.id, message.guild.id))
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setTimestamp()
], allowedMentions: { repliedUser: false } }) .setFooter({
text: `Demandé par ${message.author.tag}`,
} else if (args[1] !== 'pierre' && args[1] !== 'p' && args[1] !== 'feuille' && args[1] !== 'f' && args[1] !== 'ciseau' && args[1] !== 'c') { iconURL: message.author.displayAvatarURL(),
return message.reply({ embeds: [ }),
new EmbedBuilder() ],
.setTitle('🪨 Pierre Feuille Ciseau') allowedMentions: { repliedUser: false },
.setDescription(`La coup doit être \`pierre\`, \`feuille\` ou \`ciseau\`.`) });
.setColor(await embedColor(message.author.id, message.guild.id)) } else if (
.setTimestamp() args[1] !== "pierre" &&
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) args[1] !== "p" &&
], allowedMentions: { repliedUser: false } }) args[1] !== "feuille" &&
args[1] !== "f" &&
args[1] !== "ciseau" &&
args[1] !== "c"
) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("🪨 Pierre Feuille Ciseau")
.setDescription(
`La coup doit être \`pierre\`, \`feuille\` ou \`ciseau\`.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} }
const pocket = await new Promise((resolve, reject) => { const pocket = await new Promise((resolve, reject) => {
db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], async (err, row) => { db.get(
if (err) { `SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
reject(err); [message.author.id, message.guild.id],
} else { async (err, row) => {
resolve(row.pocket); if (err) {
} reject(err);
}); } else {
resolve(row.pocket);
}
},
);
}); });
if (pocket < args[0]) return message.reply({ if (pocket < args[0])
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("🪨 Pierre Feuille Ciseau")
.setDescription(
`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
const sendMessage = await message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🪨 Pierre Feuille Ciseau') .setTitle("🪨 Pierre Feuille Ciseau")
.setDescription(`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`) .setDescription(
`Vous avez misé(e) \`${args[0]}\` coins sur \`${args[1]}\`...\nRésultat dans 7.5 secondes...`,
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
], allowedMentions: { repliedUser: false } }) text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
const sendMessage = await message.reply({ embeds: [ await new Promise((resolve) => setTimeout(resolve, 7500));
new EmbedBuilder()
.setTitle('🪨 Pierre Feuille Ciseau')
.setDescription(`Vous avez misé(e) \`${args[0]}\` coins sur \`${args[1]}\`...\nRésultat dans 7.5 secondes...`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
await new Promise(resolve => setTimeout(resolve, 7500));
const result = Math.floor(Math.random() * 2); const result = Math.floor(Math.random() * 2);
let coupBot = '' let coupBot = "";
let coupBotA = '' let coupBotA = "";
if (result === 0) { if (result === 0) {
coupBot = 'feuille'; coupBot = "feuille";
coupBotA = 'f' coupBotA = "f";
} else if (result === 1) { } else if (result === 1) {
coupBot = 'ciseau'; coupBot = "ciseau";
coupBotA = 'c' coupBotA = "c";
} else { } else {
coupBot = 'pierre'; coupBot = "pierre";
coupBotA = 'p' coupBotA = "p";
} }
let gain = args[0]; let gain = args[0];
let description = '' let description = "";
let coupUser = '' let coupUser = "";
let win = false let win = false;
if (args[1] == 'p' || args[1] == 'pierre') { if (args[1] == "p" || args[1] == "pierre") {
coupUser = 'p' coupUser = "p";
} }
if (args[1] == 'f' || args[1] == 'feuille') { if (args[1] == "f" || args[1] == "feuille") {
coupUser = 'f' coupUser = "f";
} }
if (args[1] == 'c' || args[1] == 'ciseau') { if (args[1] == "c" || args[1] == "ciseau") {
coupUser = 'c' coupUser = "c";
} }
if (args[1] === coupBot || args[1] === coupBotA) { if (args[1] === coupBot || args[1] === coupBotA) {
gain = 0 gain = 0;
description = 'A refaire, le bot a jouer `' + coupBot + '`, comme toi...'; description = "A refaire, le bot a jouer `" + coupBot + "`, comme toi...";
} else if (coupUser == 'p' && coupBotA == 'c') { } else if (coupUser == "p" && coupBotA == "c") {
win = true win = true;
} else if (coupUser == 'f' && coupBotA == 'p') { } else if (coupUser == "f" && coupBotA == "p") {
win = true win = true;
} else if (coupUser == 'c' && coupBotA == 'f') { } else if (coupUser == "c" && coupBotA == "f") {
win = true win = true;
} else { } else {
gain = 0 - args[0]; gain = 0 - args[0];
description = 'Tu as perdu `' + args[0] + '`coins... Le bot a jouer `' + coupBot + '` !'; description =
"Tu as perdu `" +
args[0] +
"`coins... Le bot a jouer `" +
coupBot +
"` !";
} }
if (win == true) { if (win == true) {
gain = gain * 2 gain = gain * 2;
description = 'Bravo, tu as gagné(e) `' + gain + '` coins car le bot a jouer `' + coupBot + '` !' description =
"Bravo, tu as gagné(e) `" +
gain +
"` coins car le bot a jouer `" +
coupBot +
"` !";
} }
sendMessage.edit({ embeds: [ sendMessage.edit({
new EmbedBuilder() embeds: [
.setTitle('🪨 Pierre Feuille Ciseau') new EmbedBuilder()
.setDescription(description) .setTitle("🪨 Pierre Feuille Ciseau")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(description)
.setTimestamp() .setColor(await embedColor(message.author.id, message.guild.id))
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setTimestamp()
] }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
});
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [gain, message.author.id, message.guild.id], (err) => { db.run(
if (err) { `UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`,
reject(err); [gain, message.author.id, message.guild.id],
} else { (err) => {
resolve(); if (err) {
} reject(err);
}); } else {
resolve();
}
},
);
}); });
} },
}; };
+159 -78
View File
@@ -1,157 +1,238 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const {
const embedColor = require('../../fonctions/embedColor.js'); EmbedBuilder,
const db = require('../../fonctions/database.js'); ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
module.exports = { module.exports = {
aliases: ['pf'], aliases: ["pf"],
description: 'Lance une piece.', description: "Lance une piece.",
emote: '🎲', emote: "🎲",
utilisation: '<mise> <cote>', utilisation: "<mise> <cote>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
let mise = 0 let mise = 0;
const pocket = await new Promise((resolve, reject) => { 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) => { db.get(
if (err) { `SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
reject(err); [message.author.id, message.guild.id],
} else { (err, row) => {
resolve(row.pocket); if (err) {
} reject(err);
}); } else {
resolve(row.pocket);
}
},
);
}); });
if (args[0] == 'all') { if (args[0] == "all") {
mise = pocket mise = pocket;
} else { } else {
mise = args[0] mise = args[0];
} }
if (pocket < mise) { if (pocket < mise) {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🪙 Pile ou face') .setTitle("🪙 Pile ou face")
.setDescription(`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`) .setDescription(
`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`,
)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} }
if (args.length !== 2) { if (args.length !== 2) {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🪙 Pile ou face') .setTitle("🪙 Pile ou face")
.setDescription(`Vous devez spécifier une mise et un côté. Exemple : \`&pile-face 100 pile\`.`) .setDescription(
`Vous devez spécifier une mise et un côté. Exemple : \`&pile-face 100 pile\`.`,
)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} else if (isNaN(args[0]) && !args[0] == "all") { } else if (isNaN(args[0]) && !args[0] == "all") {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🪙 Pile ou face') .setTitle("🪙 Pile ou face")
.setDescription(`La mise doit être un nombre.`) .setDescription(`La mise doit être un nombre.`)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} else if (mise < 25) { } else if (mise < 25) {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🪙 Pile ou face') .setTitle("🪙 Pile ou face")
.setDescription(`La mise doit être supérieure ou égale à \`25\`.`) .setDescription(`La mise doit être supérieure ou égale à \`25\`.`)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} else if (args[1] !== 'pile' && args[1] !== 'face' && args[1] !== 'p' && args[1] !== 'f') { } else if (
embedColor(message.author.id, message.guild.id).then(color => { args[1] !== "pile" &&
args[1] !== "face" &&
args[1] !== "p" &&
args[1] !== "f"
) {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🪙 Pile ou face') .setTitle("🪙 Pile ou face")
.setDescription(`Le côté doit être \`pile\` ou \`face\`.`) .setDescription(`Le côté doit être \`pile\` ou \`face\`.`)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} }
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🪙 Pile ou face') .setTitle("🪙 Pile ou face")
.setImage('https://images-ext-1.discordapp.net/external/Zz7GmmFoFdFRB7GCjiJGaDHDjJi8noOLY8zasCmUOGQ/https/media.giphy.com/media/26uflBhaGt5lQsaCA/giphy.gif') .setImage(
.setDescription(`Vous avez misé \`${mise}\` sur \`${args[1]}\`. la pièce tourne...\nRésultat dans 7.5 secondes...`) "https://images-ext-1.discordapp.net/external/Zz7GmmFoFdFRB7GCjiJGaDHDjJi8noOLY8zasCmUOGQ/https/media.giphy.com/media/26uflBhaGt5lQsaCA/giphy.gif",
)
.setDescription(
`Vous avez misé \`${mise}\` sur \`${args[1]}\`. la pièce tourne...\nRésultat dans 7.5 secondes...`,
)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
await new Promise(resolve => setTimeout(resolve, 7500)); await new Promise((resolve) => setTimeout(resolve, 7500));
const result = Math.floor(Math.random() * 2); const result = Math.floor(Math.random() * 2);
let colorR = ''; let colorR = "";
if (result === 0) { if (result === 0) {
colorR = 'pile'; colorR = "pile";
} else { } else {
colorR = 'face'; colorR = "face";
} }
let gain = 0; let gain = 0;
if (((args[1] === 'pile' || args[1] === 'p') && colorR === 'pile') || ((args[1] === 'face' || args[1] === 'f') && colorR === 'face')) { if (
((args[1] === "pile" || args[1] === "p") && colorR === "pile") ||
((args[1] === "face" || args[1] === "f") && colorR === "face")
) {
gain = Math.round(mise * 1.5); gain = Math.round(mise * 1.5);
} else { } else {
gain = 0 - mise; gain = 0 - mise;
} }
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [gain, message.author.id, message.guild.id], (err) => { db.run(
if (err) { `UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`,
reject(err); [gain, message.author.id, message.guild.id],
} else { (err) => {
resolve(); if (err) {
} reject(err);
}); } else {
resolve();
}
},
);
}); });
if (gain >= 0) { if (gain >= 0) {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🪙 Pile ou face') .setTitle("🪙 Pile ou face")
.setDescription(`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la pièce est tombée sur \`${colorR}\`. Vous avez gagné \`${gain}\` !`) .setDescription(
`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la pièce est tombée sur \`${colorR}\`. Vous avez gagné \`${gain}\` !`,
)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} else { } else {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🪙 Pile ou face') .setTitle("🪙 Pile ou face")
.setDescription(`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la pièce est tombée sur \`${colorR}\`. Vous avez perdu \`${0 - gain}\` !`) .setDescription(
`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la pièce est tombée sur \`${colorR}\`. Vous avez perdu \`${0 - gain}\` !`,
)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} }
} },
}; };
+120 -63
View File
@@ -1,87 +1,124 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const {
const embedColor = require('../../fonctions/embedColor.js'); EmbedBuilder,
const db = require('../../fonctions/database.js'); ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
module.exports = { module.exports = {
aliases: ['pouletfight', 'pfight', 'poulet'], aliases: ["pouletfight", "pfight", "poulet"],
description: 'Fait un combat de poulet.', description: "Fait un combat de poulet.",
emote: '🐔', emote: "🐔",
utilisation: '<mise>', utilisation: "<mise>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
let mise = 0 let mise = 0;
const pocket = await new Promise((resolve, reject) => { 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) => { db.get(
if (err) { `SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
reject(err); [message.author.id, message.guild.id],
} else { (err, row) => {
resolve(row.pocket); if (err) {
} reject(err);
}); } else {
resolve(row.pocket);
}
},
);
}); });
if (args[0] == 'all') { if (args[0] == "all") {
mise = pocket mise = pocket;
} else { } else {
mise = args[0] mise = args[0];
} }
if (pocket < mise) { if (pocket < mise) {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🐔 Poulet') .setTitle("🐔 Poulet")
.setDescription(`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`) .setDescription(
`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`,
)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} }
if (isNaN(args[0]) && !args[0] == "all") { if (isNaN(args[0]) && !args[0] == "all") {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🐔 Poulet') .setTitle("🐔 Poulet")
.setDescription(`La mise doit être un nombre.`) .setDescription(`La mise doit être un nombre.`)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} else if (mise < 25) { } else if (mise < 25) {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🐔 Poulet') .setTitle("🐔 Poulet")
.setDescription(`La mise doit être supérieure ou égale à \`25\`.`) .setDescription(`La mise doit être supérieure ou égale à \`25\`.`)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} }
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🐔 Poulet') .setTitle("🐔 Poulet")
//.setImage('') // image de combat de poulet //.setImage('') // image de combat de poulet
.setDescription(`Vous avez misé \`${mise}\` sur votre poulet. Les poulets se battent...\nRésultat dans 7.5 secondes...`) .setDescription(
`Vous avez misé \`${mise}\` sur votre poulet. Les poulets se battent...\nRésultat dans 7.5 secondes...`,
)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
await new Promise(resolve => setTimeout(resolve, 7500)); await new Promise((resolve) => setTimeout(resolve, 7500));
const result = Math.floor(Math.random() * 2); const result = Math.floor(Math.random() * 2);
let win = ''; let win = "";
if (result === 0) { if (result === 0) {
win = true; win = true;
} else { } else {
@@ -96,39 +133,59 @@ module.exports = {
} }
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [gain, message.author.id, message.guild.id], (err) => { db.run(
if (err) { `UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`,
reject(err); [gain, message.author.id, message.guild.id],
} else { (err) => {
resolve(); if (err) {
} reject(err);
}); } else {
resolve();
}
},
);
}); });
if (gain >= 0) { if (gain >= 0) {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🐔 Poulet') .setTitle("🐔 Poulet")
.setDescription(`Vous avez misé \`${mise}\` sur votre poulet et votre poulet a gagné ! Vous avez gagné \`${gain}\`coins !`) .setDescription(
`Vous avez misé \`${mise}\` sur votre poulet et votre poulet a gagné ! Vous avez gagné \`${gain}\`coins !`,
)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} else { } else {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🐔 Poulet') .setTitle("🐔 Poulet")
.setDescription(`Vous avez misé \`${mise}\` sur votre poulet et votre poulet a perdu. Vous avez perdu \`${0 - gain}\`coins !`) .setDescription(
`Vous avez misé \`${mise}\` sur votre poulet et votre poulet a perdu. Vous avez perdu \`${0 - gain}\`coins !`,
)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} }
} },
}; };
+250 -162
View File
@@ -1,162 +1,250 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const {
const embedColor = require('../../fonctions/embedColor.js'); EmbedBuilder,
const db = require('../../fonctions/database.js'); ButtonStyle,
ButtonBuilder,
module.exports = { ActionRowBuilder,
aliases: ['roulette'], } = require("discord.js");
description: 'Lance une roulette.', const embedColor = require("../../fonctions/embedColor.js");
emote: '🎲', const db = require("../../fonctions/database.js");
utilisation: '<mise> <couleur>',
permission: 0, module.exports = {
aliases: ["roulette"],
async execute(message, args, client) { description: "Lance une roulette.",
let mise = 0 emote: "🎲",
const pocket = await new Promise((resolve, reject) => { utilisation: "<mise> <couleur>",
db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { permission: 0,
if (err) {
reject(err); async execute(message, args, client) {
} else { let mise = 0;
resolve(row.pocket); const pocket = await new Promise((resolve, reject) => {
} db.get(
}); `SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
}); [message.author.id, message.guild.id],
if (args[0] == 'all') { (err, row) => {
mise = pocket if (err) {
} else { reject(err);
mise = args[0] } else {
} resolve(row.pocket);
}
if (args.length !== 2) { },
embedColor(message.author.id, message.guild.id).then(color => { );
const embed = new EmbedBuilder() });
.setTitle('🎲 Roulette') if (args[0] == "all") {
.setDescription(`Vous devez spécifier une mise et une couleur. Exemple : \`&roulette 100 rouge\`.`) mise = pocket;
.setColor(color) } else {
.setTimestamp() mise = args[0];
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) }
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) if (args.length !== 2) {
}); embedColor(message.author.id, message.guild.id).then((color) => {
return const embed = new EmbedBuilder()
} else if (isNaN(args[0]) && !args[0] == "all") { .setTitle("🎲 Roulette")
embedColor(message.author.id, message.guild.id).then(color => { .setDescription(
const embed = new EmbedBuilder() `Vous devez spécifier une mise et une couleur. Exemple : \`&roulette 100 rouge\`.`,
.setTitle('🎲 Roulette') )
.setDescription(`La mise doit être un nombre.`) .setColor(color)
.setColor(color) .setTimestamp()
.setTimestamp() .setFooter({
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) });
});
return message.reply({
} else if (mise < 25) { embeds: [embed],
embedColor(message.author.id, message.guild.id).then(color => { allowedMentions: { repliedUser: false },
const embed = new EmbedBuilder() });
.setTitle('🎲 Roulette') });
.setDescription(`La mise doit être supérieure ou égale à \`25\`.`) return;
.setColor(color) } else if (isNaN(args[0]) && !args[0] == "all") {
.setTimestamp() embedColor(message.author.id, message.guild.id).then((color) => {
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) const embed = new EmbedBuilder()
.setTitle("🎲 Roulette")
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) .setDescription(`La mise doit être un nombre.`)
}); .setColor(color)
return .setTimestamp()
} else if (args[1] !== 'rouge' && args[1] !== 'noir' && args[1] !== 'vert' && args[1] !== 'red' && args[1] !== 'black' && args[1] !== 'green') { .setFooter({
embedColor(message.author.id, message.guild.id).then(color => { text: `Demandé par ${message.author.tag}`,
const embed = new EmbedBuilder() iconURL: message.author.displayAvatarURL(),
.setTitle('🎲 Roulette') });
.setDescription(`La couleur doit être \`rouge\`, \`noir\` ou \`vert\`.`)
.setColor(color) message.reply({
.setTimestamp() embeds: [embed],
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) allowedMentions: { repliedUser: false },
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) });
}); return;
return } else if (mise < 25) {
} embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
if (pocket < mise) { .setTitle("🎲 Roulette")
embedColor(message.author.id, message.guild.id).then(color => { .setDescription(`La mise doit être supérieure ou égale à \`25\`.`)
const embed = new EmbedBuilder() .setColor(color)
.setTitle('🎲 Roulette') .setTimestamp()
.setDescription(`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`) .setFooter({
.setColor(color) text: `Demandé par ${message.author.tag}`,
.setTimestamp() iconURL: message.author.displayAvatarURL(),
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) });
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
}); embeds: [embed],
return allowedMentions: { repliedUser: false },
} });
});
embedColor(message.author.id, message.guild.id).then(color => { return;
const embed = new EmbedBuilder() } else if (
.setTitle('🎲 Roulette') args[1] !== "rouge" &&
.setImage('https://images-ext-1.discordapp.net/external/Zz7GmmFoFdFRB7GCjiJGaDHDjJi8noOLY8zasCmUOGQ/https/media.giphy.com/media/26uflBhaGt5lQsaCA/giphy.gif') args[1] !== "noir" &&
.setDescription(`Vous avez misé \`${mise}\` sur \`${args[1]}\`. La bille tourne...\nRésultat dans 7.5 secondes...`) args[1] !== "vert" &&
.setColor(color) args[1] !== "red" &&
.setTimestamp() args[1] !== "black" &&
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) args[1] !== "green"
) {
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) embedColor(message.author.id, message.guild.id).then((color) => {
}); const embed = new EmbedBuilder()
.setTitle("🎲 Roulette")
await new Promise(resolve => setTimeout(resolve, 7500)); .setDescription(
`La couleur doit être \`rouge\`, \`noir\` ou \`vert\`.`,
const result = Math.floor(Math.random() * 37); )
let colorR = ''; .setColor(color)
if (result === 0) { .setTimestamp()
colorR = 'vert'; .setFooter({
} else if (result % 2 === 0) { text: `Demandé par ${message.author.tag}`,
colorR = 'rouge'; iconURL: message.author.displayAvatarURL(),
} else { });
colorR = 'noir';
} message.reply({
embeds: [embed],
let gain = 0; allowedMentions: { repliedUser: false },
if (((args[1] === 'rouge' || args[1] === 'red') && colorR === 'rouge') || ((args[1] === 'noir' || args[1] === 'black') && colorR === 'noir')) { });
gain = Math.round(mise * 1.5); });
} else if ((args[1] === 'vert' || args[1] === 'green') && colorR === 'vert') { return;
gain = mise * 36; }
} else {
gain = 0 - mise; if (pocket < mise) {
} embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
await new Promise((resolve, reject) => { .setTitle("🎲 Roulette")
db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [gain, message.author.id, message.guild.id], (err) => { .setDescription(
if (err) { `Vous n'avez pas assez d'argent sur vous pour miser cette somme.`,
reject(err); )
} else { .setColor(color)
resolve(); .setTimestamp()
} .setFooter({
}); text: `Demandé par ${message.author.tag}`,
}); iconURL: message.author.displayAvatarURL(),
});
if (gain >= 0) {
embedColor(message.author.id, message.guild.id).then(color => { message.reply({
const embed = new EmbedBuilder() embeds: [embed],
.setTitle('🎲 Roulette') allowedMentions: { repliedUser: false },
.setDescription(`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la bille est tombée sur \`${colorR}\`. Vous avez gagné \`${gain}\` !`) });
.setColor(color) });
.setTimestamp() return;
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) }
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) embedColor(message.author.id, message.guild.id).then((color) => {
}); const embed = new EmbedBuilder()
return .setTitle("🎲 Roulette")
} else { .setImage(
embedColor(message.author.id, message.guild.id).then(color => { "https://images-ext-1.discordapp.net/external/Zz7GmmFoFdFRB7GCjiJGaDHDjJi8noOLY8zasCmUOGQ/https/media.giphy.com/media/26uflBhaGt5lQsaCA/giphy.gif",
const embed = new EmbedBuilder() )
.setTitle('🎲 Roulette') .setDescription(
.setDescription(`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la bille est tombée sur \`${colorR}\`. Vous avez perdu \`${0 - gain}\` !`) `Vous avez misé \`${mise}\` sur \`${args[1]}\`. La bille tourne...\nRésultat dans 7.5 secondes...`,
.setColor(color) )
.setTimestamp() .setColor(color)
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setTimestamp()
.setFooter({
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) text: `Demandé par ${message.author.tag}`,
}); iconURL: message.author.displayAvatarURL(),
return });
}
} return message.reply({
}; embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
await new Promise((resolve) => setTimeout(resolve, 7500));
const result = Math.floor(Math.random() * 37);
let colorR = "";
if (result === 0) {
colorR = "vert";
} else if (result % 2 === 0) {
colorR = "rouge";
} else {
colorR = "noir";
}
let gain = 0;
if (
((args[1] === "rouge" || args[1] === "red") && colorR === "rouge") ||
((args[1] === "noir" || args[1] === "black") && colorR === "noir")
) {
gain = Math.round(mise * 1.5);
} else if (
(args[1] === "vert" || args[1] === "green") &&
colorR === "vert"
) {
gain = mise * 36;
} else {
gain = 0 - mise;
}
await new Promise((resolve, reject) => {
db.run(
`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`,
[gain, message.author.id, message.guild.id],
(err) => {
if (err) {
reject(err);
} else {
resolve();
}
},
);
});
if (gain >= 0) {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle("🎲 Roulette")
.setDescription(
`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la bille est tombée sur \`${colorR}\`. Vous avez gagné \`${gain}\` !`,
)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} else {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle("🎲 Roulette")
.setDescription(
`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la bille est tombée sur \`${colorR}\`. Vous avez perdu \`${0 - gain}\` !`,
)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
}
},
};
+168 -86
View File
@@ -1,100 +1,154 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const {
const embedColor = require('../../fonctions/embedColor.js'); EmbedBuilder,
const db = require('../../fonctions/database.js'); ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
module.exports = { module.exports = {
aliases: ['braquage'], aliases: ["braquage"],
description: 'Tente un braquage. (cout : 5rep)', description: "Tente un braquage. (cout : 5rep)",
emote: '🏦', emote: "🏦",
utilisation: '<@membre>', utilisation: "<@membre>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
/////////////////////////////// Calcule des données de la cible //////////////////////////////////////////////// /////////////////////////////// Calcule des données de la cible ////////////////////////////////////////////////
const cible = message.mentions.users.first(); const cible = message.mentions.users.first();
if (!cible) { if (!cible) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Vous devez mentionner un membre.') .setDescription("❌ Vous devez mentionner un membre.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
const cibleBD = await new Promise((resolve, reject) => { const cibleBD = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, cible.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, cible.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
if (cibleBD.bank <= 100) { if (cibleBD.bank <= 100) {
return message.reply('votre cible n\'a pas suffisament de coins en bank pour etre voler.') return message.reply(
"votre cible n'a pas suffisament de coins en bank pour etre voler.",
);
} }
/////////////////////////////// Calcule des données du message.author ///////////////////////////////////////// /////////////////////////////// Calcule des données du message.author /////////////////////////////////////////
const user = await new Promise((resolve, reject) => { const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
const usercoinsEnBank = user.bank const usercoinsEnBank = user.bank;
if (usercoinsEnBank < 8) { if (usercoinsEnBank < 8) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Braquage Impossible') .setTitle("Braquage Impossible")
.setDescription(`❌ Vous n'avez pas assez de reputation. Il faut \`8\` reputation mais vous n'avez que \`${usercoinsEnBank}\`reputation`) .setDescription(
`❌ Vous n'avez pas assez de reputation. Il faut \`8\` reputation mais vous n'avez que \`${usercoinsEnBank}\`reputation`,
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
const lastBraquage = user.lastBraquage const lastBraquage = user.lastBraquage;
if (lastBraquage > Date.now() - 7200000) { if (lastBraquage > Date.now() - 7200000) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Braquage Impossible') .setTitle("Braquage Impossible")
.setDescription(`❌ Vous avez déjà braquage récemment. Veuillez attendre ${Math.floor((lastBraquage + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir braquer à nouveau.`) .setDescription(
`❌ Vous avez déjà braquage 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)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
///////////////////////////////// Payage + MaJ du braquage ///////////////////////////////////////////////////// ///////////////////////////////// Payage + MaJ du braquage /////////////////////////////////////////////////////
db.run(`UPDATE users SET reputation = reputation - 5 WHERE guildId =? AND userId =?`, [message.guild.id, message.author.id], (err) => { db.run(
if (err) { `UPDATE users SET reputation = reputation - 5 WHERE guildId =? AND userId =?`,
console.log(`${err}`.red) [message.guild.id, message.author.id],
} (err) => {
}); if (err) {
db.run(`UPDATE users SET lastBraquage =? WHERE guildId =? AND userId =?`, [Date.now(), message.guild.id, message.author.id], (err) => { console.log(`${err}`.red);
if (err) { }
console.log(`${err}`.red) },
} );
}); db.run(
`UPDATE users SET lastBraquage =? WHERE guildId =? AND userId =?`,
[Date.now(), message.guild.id, message.author.id],
(err) => {
if (err) {
console.log(`${err}`.red);
}
},
);
/////////////////////////////////// Affichage du 1er msg /////////////////////////////////////////////////////// /////////////////////////////////// Affichage du 1er msg ///////////////////////////////////////////////////////
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🔐 Braquage') .setTitle("🔐 Braquage")
.setImage('https://images-ext-1.discordapp.net/external/Zz7GmmFoFdFRB7GCjiJGaDHDjJi8noOLY8zasCmUOGQ/https/media.giphy.com/media/26uflBhaGt5lQsaCA/giphy.gif') .setImage(
.setDescription(`Vous braquer la banque de ${cible}. La porte du coffre s'ouvre...\nRésultat dans 5 secondes...`) "https://images-ext-1.discordapp.net/external/Zz7GmmFoFdFRB7GCjiJGaDHDjJi8noOLY8zasCmUOGQ/https/media.giphy.com/media/26uflBhaGt5lQsaCA/giphy.gif",
)
.setDescription(
`Vous braquer la banque de ${cible}. La porte du coffre s'ouvre...\nRésultat dans 5 secondes...`,
)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
await new Promise(resolve => setTimeout(resolve, 5000)); await new Promise((resolve) => setTimeout(resolve, 5000));
/////////////////////////////////// Calcule des resultats /////////////////////////////////////////////////////// /////////////////////////////////// Calcule des resultats ///////////////////////////////////////////////////////
const result = Math.floor(Math.random() * 4); const result = Math.floor(Math.random() * 4);
let gain = 0; let gain = 0;
let coinsEnBank = 0; let coinsEnBank = 0;
@@ -103,63 +157,91 @@ module.exports = {
coinsEnBank = Math.floor(Math.random() * (cibleBD.bank / 2)); coinsEnBank = Math.floor(Math.random() * (cibleBD.bank / 2));
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
db.run(`UPDATE users SET bank = bank - ? WHERE userId = ? AND guildId = ?`, [coinsEnBank, message.author.id, message.guild.id], (err) => { db.run(
if (err) { `UPDATE users SET bank = bank - ? WHERE userId = ? AND guildId = ?`,
reject(err); [coinsEnBank, message.author.id, message.guild.id],
} else { (err) => {
resolve(); if (err) {
} reject(err);
}); } else {
resolve();
}
},
);
}); });
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
db.run(`UPDATE users SET bank = bank + ? WHERE userId = ? AND guildId = ?`, [coinsEnBank, cible.id, message.guild.id], (err) => { db.run(
if (err) { `UPDATE users SET bank = bank + ? WHERE userId = ? AND guildId = ?`,
reject(err); [coinsEnBank, cible.id, message.guild.id],
} else { (err) => {
resolve(); if (err) {
} reject(err);
}); } else {
resolve();
}
},
);
}); });
} else { } else {
gain = 0; gain = 0;
coinsEnBank = 0 coinsEnBank = 0;
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
db.run(`UPDATE users SET bank = bank - 3 WHERE userId = ? AND guildId = ?`, [cible.id, message.guild.id], (err) => { db.run(
if (err) { `UPDATE users SET bank = bank - 3 WHERE userId = ? AND guildId = ?`,
reject(err); [cible.id, message.guild.id],
} else { (err) => {
resolve(); if (err) {
} reject(err);
}); } else {
resolve();
}
},
);
}); });
} }
//////////////////////////////////// Affichage de la reponse /////////////////////////////////////////////////// //////////////////////////////////// Affichage de la reponse ///////////////////////////////////////////////////
if (gain == 1) { if (gain == 1) {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🔐 Braquage') .setTitle("🔐 Braquage")
.setDescription(`Vous avez braquer <@${cible.id}> et vous n'etes pas tomber sur un agent de securité. Vous avez gagné \`${coinsEnBank}\`coins !`) .setDescription(
`Vous avez braquer <@${cible.id}> et vous n'etes pas tomber sur un agent de securité. Vous avez gagné \`${coinsEnBank}\`coins !`,
)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} else { } else {
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🔐 Braquage') .setTitle("🔐 Braquage")
.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`) .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) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
return return;
} }
} },
}; };
+178 -85
View File
@@ -1,139 +1,232 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['hack'], aliases: ["hack"],
description: 'Supprime un cadenas à une team. (coût : 4reputation)', description: "Supprime un cadenas à une team. (coût : 4reputation)",
emote: '🔓', emote: "🔓",
utilisation: '<team-id>', utilisation: "<team-id>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
if (args.length >= 2) { if (args.length >= 2) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Hack Impossible') .setTitle("Hack Impossible")
.setDescription(`❌ Veuillez indiquer l'id une team.`) .setDescription(`❌ Veuillez indiquer l'id une team.`)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
const teamID = args[0].toLowerCase(); const teamID = args[0].toLowerCase();
const user = await new Promise((resolve, reject) => { const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
const userRep = user.reputation const userRep = user.reputation;
if (userRep < 4) { if (userRep < 4) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Hack Impossible') .setTitle("Hack Impossible")
.setDescription(`❌ Vous n'avez pas assez de reputation. Il faut \`4\` reputation mais vous n'avez que \`${userRep}\` reputation`) .setDescription(
`❌ Vous n'avez pas assez de reputation. Il faut \`4\` reputation mais vous n'avez que \`${userRep}\` reputation`,
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
const lastHack = user.lastHack const lastHack = user.lastHack;
const team = await new Promise((resolve, reject) => { const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM teams WHERE guildId = ? AND id = ?`, [message.guild.id, teamID], async (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM teams WHERE guildId = ? AND id = ?`,
if (!row) { [message.guild.id, teamID],
return message.reply({ async (err, row) => {
embeds: [ if (err) reject(err);
new EmbedBuilder() if (!row) {
.setTitle('Erreur') return message.reply({
.setDescription('❌ La team spécifié n\'existe pas.') embeds: [
.setColor(await embedColor(message.author.id, message.guild.id)) new EmbedBuilder()
.setTimestamp() .setTitle("Erreur")
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setDescription("❌ La team spécifié n'existe pas.")
], allowedMentions: { repliedUser: false } .setColor(
}); await embedColor(message.author.id, message.guild.id),
} )
resolve(parseInt(row.reputation)); .setTimestamp()
}); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
resolve(parseInt(row.reputation));
},
);
}); });
if (lastHack > Date.now() - 7200000) { if (lastHack > Date.now() - 7200000) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Hack Impossible') .setTitle("Hack Impossible")
.setDescription(`❌ Vous avez déjà hack une team récemment. Veuillez attendre ${Math.floor((lastHack + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir ajouter une reputation à nouveau.`) .setDescription(
`❌ Vous avez déjà hack une team récemment. Veuillez attendre ${Math.floor((lastHack + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir ajouter une reputation à nouveau.`,
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
db.run(`UPDATE users SET lastHack =? WHERE guildId =? AND userId =?`, [Date.now(), message.guild.id, message.author.id], (err) => { db.run(
if (err) { `UPDATE users SET lastHack =? WHERE guildId =? AND userId =?`,
console.log(`${err}`.red) [Date.now(), message.guild.id, message.author.id],
} (err) => {
}); if (err) {
db.run(`UPDATE users SET reputation = reputation - 4 WHERE guildId =? AND userId =?`, [message.guild.id, message.author.id], (err) => { console.log(`${err}`.red);
if (err) { }
console.log(`${err}`.red) },
} );
}); db.run(
`UPDATE users SET reputation = reputation - 4 WHERE guildId =? AND userId =?`,
[message.guild.id, message.author.id],
(err) => {
if (err) {
console.log(`${err}`.red);
}
},
);
if (Math.floor(Math.random() * 5) <= 1) { if (Math.floor(Math.random() * 5) <= 1) {
db.run(`UPDATE teams SET padlock = padlock - 1 WHERE guildId =? AND id =?`, [message.guild.id, teamID], (err) => { db.run(
if (err) { `UPDATE teams SET padlock = padlock - 1 WHERE guildId =? AND id =?`,
console.log(`${err}`.red) [message.guild.id, teamID],
} (err) => {
}); if (err) {
console.log(`${err}`.red);
}
},
);
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Hack réussi !') .setTitle("Hack réussi !")
.setDescription('Vous avez cassé(e) un cadenas de la team `' + team.name + '`, cette team à maintement `' + team.padlock - 1 + '` cadenas !') .setDescription(
"Vous avez cassé(e) un cadenas de la team `" +
team.name +
"`, cette team à maintement `" +
team.padlock -
1 +
"` cadenas !",
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setImage('https://cdn.discordapp.com/attachments/1173221717024448573/1188279536467579011/hack-pc.gif?ex=665721ce&is=6655d04e&hm=e2f2aacbc56c96a33cab6ce215bdc9d042c25df5ffc608098dc1595fe81ee710&') .setImage(
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); "https://cdn.discordapp.com/attachments/1173221717024448573/1188279536467579011/hack-pc.gif?ex=665721ce&is=6655d04e&hm=e2f2aacbc56c96a33cab6ce215bdc9d042c25df5ffc608098dc1595fe81ee710&",
)
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
if (team.padlock == 1) { if (team.padlock == 1) {
db.run(`UPDATE users SET bank =? WHERE guildId =? AND userId =?`, [user.bank + team.bank, message.guild.id, message.author.id], (err) => { db.run(
if (err) { `UPDATE users SET bank =? WHERE guildId =? AND userId =?`,
console.log(`${err}`.red) [user.bank + team.bank, message.guild.id, message.author.id],
} (err) => {
}); if (err) {
db.run(`UPDATE teams SET bank = 0 WHERE guildId =? AND userId =?`, [message.guild.id, message.author.id], (err) => { console.log(`${err}`.red);
if (err) { }
console.log(`${err}`.red) },
} );
}); db.run(
`UPDATE teams SET bank = 0 WHERE guildId =? AND userId =?`,
[message.guild.id, message.author.id],
(err) => {
if (err) {
console.log(`${err}`.red);
}
},
);
const embed2 = new EmbedBuilder() const embed2 = new EmbedBuilder()
.setTitle('Vole de la banque !') .setTitle("Vole de la banque !")
.setDescription('La team n\'a plus de cadenas ! Vous avez donc recupéré tout l\'argent de la bank (`' + team.bank + '`coins) !') .setDescription(
"La team n'a plus de cadenas ! Vous avez donc recupéré tout l'argent de la bank (`" +
team.bank +
"`coins) !",
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setImage('') .setImage("")
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed, embed2], allowedMentions: { repliedUser: false } }); message.reply({
embeds: [embed, embed2],
allowedMentions: { repliedUser: false },
});
} else {
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
else { } else {
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
}
else {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Erreur lors du hack !') .setTitle("Erreur lors du hack !")
.setDescription('Vous n\'avez pas reussi à casser un cadenas de la team `' + team.name + '`, qui à donc, toujours, `' + team.padlock + '` cadenas.') .setDescription(
"Vous n'avez pas reussi à casser un cadenas de la team `" +
team.name +
"`, qui à donc, toujours, `" +
team.padlock +
"` cadenas.",
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setImage('https://cdn.discordapp.com/attachments/1173221717024448573/1188280123485601842/hacker-meme.gif?ex=6655d0da&is=66547f5a&hm=103ee9971cdb67eb528df4c6031e4da69366fb1d1c638f21d4ebf0ef34220691&') .setImage(
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); "https://cdn.discordapp.com/attachments/1173221717024448573/1188280123485601842/hacker-meme.gif?ex=6655d0da&is=66547f5a&hm=103ee9971cdb67eb528df4c6031e4da69366fb1d1c638f21d4ebf0ef34220691&",
)
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
}, },
}; };
+271 -160
View File
@@ -1,177 +1,288 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const {
const embedColor = require('../../fonctions/embedColor.js'); EmbedBuilder,
const db = require('../../fonctions/database.js'); ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
const cooldown = new Set(); const cooldown = new Set();
module.exports = { module.exports = {
aliases: ['jugement', 'procès', 'proces'], aliases: ["jugement", "procès", "proces"],
description: 'Juge un membre. (cout : 1reputation + 500coins)', description: "Juge un membre. (cout : 1reputation + 500coins)",
emote: '🏦', emote: "🏦",
utilisation: '<@membre>', utilisation: "<@membre>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
/////////////////////////////// Calcule des données de la cible ////////////////////////////////////////////////
/////////////////////////////// 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(),
});
const cible = message.mentions.users.first(); return message.reply({
if (!cible) { embeds: [embed],
const embed = new EmbedBuilder() allowedMentions: { repliedUser: false },
.setTitle('Erreur') });
.setDescription('❌ Vous devez mentionner un membre.') }
.setColor(await embedColor(message.author.id, message.guild.id)) const cibleBD = await new Promise((resolve, reject) => {
.setTimestamp() db.get(
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, cible.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); /////////////////////////////// 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;
} }
const cibleBD = await new Promise((resolve, reject) => { msg.edit({
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, cible.id], (err, row) => { embeds: [
if (err) reject(err); new EmbedBuilder()
resolve(row); .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 {
/////////////////////////////// Calcule des données du message.author ///////////////////////////////////////// if (i.user.id == message.author.id) {
countPr = +2;
const user = await new Promise((resolve, reject) => { } else {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { countPr = +1;
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 } });
} }
msg.edit({
let countPr = 0 embeds: [
let countContre = 0 new EmbedBuilder()
const pour = new ButtonBuilder() .setTitle(`Jugement de <${cible.id}>`)
.setCustomId('pour') .setDescription(
.setLabel('✅ Pour la sanction') `Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``,
.setStyle(ButtonStyle.Primary); )
const contre = new ButtonBuilder() .setColor(await embedColor(message.author.id, message.guild.id))
.setCustomId('contre') .setTimestamp()
.setLabel('😡 Contre la sanction') .setImage(
.setStyle(ButtonStyle.Primary); "https://tenor.com/view/judge-ace-attorney-ace-attorney-aa-gif-2687377729828245947",
)
const row = new ActionRowBuilder() .setFooter({
.addComponents(pour); text: `Demandé par ${message.author.tag}`,
const msg = message.channel.send({ iconURL: message.author.displayAvatarURL(),
embeds: [ }),
new EmbedBuilder() ],
.setTitle(`Jugement de ${cible.user.username}`) components: [row],
.setDescription(`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``) allowedMentions: { repliedUser: false },
.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 }
}); });
}
});
/////////////////////////////////////////////////////////////////////////////////////////////////////////////// collector.on("end", () => {
/////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (countContre > countPr) {
msg.edit({
const filter = i => (i.customId === 'pour' || i.customId === 'contre') && i.user.id === message.author.id; embeds: [
const collector = msg.createMessageComponentCollector({ filter, time: 60000 }) new EmbedBuilder()
collector.on('collect', async (interaction) => { .setTitle(`Jugement de ${cible.user.username}`)
if (cooldown.has(message.author.id)) { return message.reply({ content: 'Vous avez deja voté', ephemeral: true }) } .setDescription(`Les charges sont abandonnée`)
cooldown.add(message.author.id); .setTimestamp()
if (i.customId === 'contre') { .setImage("")
if (i.user.id == message.author.id) { countContre = + 2 } else { countContre = + 1 } .setFooter({
msg.edit({ text: `Demandé par ${message.author.tag}`,
embeds: [ iconURL: message.author.displayAvatarURL(),
new EmbedBuilder() }),
.setTitle(`Jugement de ${cible.user.username}`) ],
.setDescription(`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``) components: [],
.setColor(await embedColor(message.author.id, message.guild.id)) allowedMentions: { repliedUser: false },
.setTimestamp() });
.setImage('') }
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) if (countContre == countPr) {
], msg.edit({
components: [row], embeds: [
allowedMentions: { repliedUser: false } 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}`);
} }
else { },
if (i.user.id == message.author.id) { countPr = + 2 } else { countPr = + 1 } );
msg.edit({ }
embeds: [ if (countContre < countPr) {
new EmbedBuilder() msg.edit({
.setTitle(`Jugement de <${cible.id}>`) embeds: [
.setDescription(`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``) new EmbedBuilder()
.setColor(await embedColor(message.author.id, message.guild.id)) .setTitle(`Jugement de ${cible.user.username}`)
.setTimestamp() .setDescription(
.setImage('https://tenor.com/view/judge-ace-attorney-ace-attorney-aa-gif-2687377729828245947') `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**.__`,
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) )
], .setTimestamp()
components: [row], .setImage("")
allowedMentions: { repliedUser: false } .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}`);
} }
}) },
);
collector.on('end', () => { }
if (countContre > countPr) { /* CAR TOUJOURS EN TEST ET FLEMME DE ME DROP DES REP ET COINS A CHAQUE FOIS
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 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]) db.run(`UPDATE users SET pocket = pocket - 500 WHERE guildId =? AND userId =?`, [message.guild.id, message.author.id])
*/ */
}); });
} },
}; };
+118 -58
View File
@@ -1,105 +1,165 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: [], aliases: [],
description: 'Vole des reputations à un membre. (coût 3rep)', description: "Vole des reputations à un membre. (coût 3rep)",
emote: '🦹', emote: "🦹",
utilisation: '<@membre>', utilisation: "<@membre>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const member = message.mentions.users.first(); const member = message.mentions.users.first();
if (!member) { if (!member) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Vous devez mentionner un membre.') .setDescription("❌ Vous devez mentionner un membre.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
const user = await new Promise((resolve, reject) => { const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
if (user.lastKill + 7200000 > Date.now()) { if (user.lastKill + 7200000 > Date.now()) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription(`❌ Vous devez encore attendre ${Math.floor((user.lastKill + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir voler à nouveau.`) .setDescription(
`❌ Vous devez encore attendre ${Math.floor((user.lastKill + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir voler à nouveau.`,
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
} embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
const memberInfo = await new Promise((resolve, reject) => { const memberInfo = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, member.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
const killer = await new Promise((resolve, reject) => { const killer = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
const memberRep = memberInfo.reputation; const memberRep = memberInfo.reputation;
if (killer < 3) { if (killer < 3) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Vous devez avoir `3`reputation.') .setDescription("❌ Vous devez avoir `3`reputation.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (memberRep <= 0) { } else if (memberRep <= 0) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription(`❌ <@${member.id}> n'a pas de reputation.`) .setDescription(`❌ <@${member.id}> n'a pas de reputation.`)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
if (Math.floor(Math.random() * 5) <= 1) { if (Math.floor(Math.random() * 5) <= 1) {
const amount = Math.floor(Math.random() * memberRep) + 1;
const amount = Math.floor(Math.random() * memberRep) + 1; db.run(
db.run(`UPDATE users SET reputation = reputation - ? WHERE guildId = ? AND userId = ?`, [amount, message.guild.id, member.id]); `UPDATE users SET reputation = reputation - ? WHERE guildId = ? AND userId = ?`,
db.run(`UPDATE users SET reputation = reputation + ?, lastKill = ? WHERE guildId = ? AND userId = ?`, [amount - 3, Date.now(), message.guild.id, message.author.id]); [amount, message.guild.id, member.id],
);
db.run(
`UPDATE users SET reputation = reputation + ?, lastKill = ? WHERE guildId = ? AND userId = ?`,
[amount - 3, Date.now(), message.guild.id, message.author.id],
);
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Vol') .setTitle("Vol")
.setDescription(`💰 Vous avez volé **${amount}rep** à <@${member.id}>.`) .setDescription(`💰 Vous avez volé **${amount}rep** à <@${member.id}>.`)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); iconURL: message.author.displayAvatarURL(),
});
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else { } else {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Erreur lors du kill !') .setTitle("Erreur lors du kill !")
.setDescription('Vous n\'avez pas reussi à voler de reputation à <@' + member.id + '>, qui à donc, toujours, `' + memberRep + '` reputation.') .setDescription(
.setColor(await embedColor(message.author.id, message.guild.id)) "Vous n'avez pas reussi à voler de reputation à <@" +
.setTimestamp() member.id +
.setImage() ">, qui à donc, toujours, `" +
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); memberRep +
"` reputation.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setImage()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });} message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
}, },
}; };
+143 -84
View File
@@ -1,141 +1,200 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
let teamName let teamName;
let teamDescription let teamDescription;
module.exports = { module.exports = {
aliases: ['teamcreate'], aliases: ["teamcreate"],
description: 'Crée une team.', description: "Crée une team.",
emote: '✒️', emote: "✒️",
utilisation: '', utilisation: "",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
db.get(`SELECT teamId, pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { db.get(
if (err) { `SELECT teamId, pocket FROM users WHERE userId = ? AND guildId = ?`,
reject(err); [message.author.id, message.guild.id],
} else { (err, row) => {
if (row.teamId !== null ) { if (err) {
embedColor(message.author.id, message.guild.id).then(color => { reject(err);
const embed = new EmbedBuilder()
.setTitle('🛡️ Création de team')
.setDescription(`Vous êtes déjà dans une team. Vous devez quitter votre team actuelle pour en créer une nouvelle.`)
.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 team')
.setDescription(`Vous n'avez pas assez de fonds pour créer une team. Vous avez besoin de 3000.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
});
} else { } else {
db.run(`UPDATE users SET pocket = pocket - 3000 WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id]); if (row.teamId !== null) {
resolve(); embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle("🛡️ Création de team")
.setDescription(
`Vous êtes déjà dans une team. Vous devez quitter votre team actuelle pour en créer une nouvelle.`,
)
.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 team")
.setDescription(
`Vous n'avez pas assez de fonds pour créer une team. Vous avez besoin de 3000.`,
)
.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() const embed = new EmbedBuilder()
.setTitle('🛡️ Création de team') .setTitle("🛡️ Création de team")
.setDescription(`Ecrivez le nom de votre team dans le chat.`) .setDescription(`Ecrivez le nom de votre team dans le chat.`)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
const messageTeam = await message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); const messageTeam = await message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
const filter = m => m.author.id === message.author.id; const filter = (m) => m.author.id === message.author.id;
const collector = message.channel.createMessageCollector({ filter, time: 60000, max: 1 }); const collector = message.channel.createMessageCollector({
collector.on('collect', async m => { filter,
time: 60000,
max: 1,
});
collector.on("collect", async (m) => {
if (m.content.length > 25) { if (m.content.length > 25) {
m.reply('Le nom de la team ne doit pas dépasser 25 caractères.'); m.reply("Le nom de la team ne doit pas dépasser 25 caractères.");
return collector.stop(); return collector.stop();
} else if (m.content.length < 3) { } else if (m.content.length < 3) {
m.reply('Le nom de la team doit contenir au moins 3 caractères.'); m.reply("Le nom de la team doit contenir au moins 3 caractères.");
return collector.stop(); return collector.stop();
} else { } else {
teamName = m.content; teamName = m.content;
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🛡️ Création de team') .setTitle("🛡️ Création de team")
.setDescription(`Ecrivez la description de votre team dans le chat.`) .setDescription(`Ecrivez la description de votre team dans le chat.`)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
messageTeam.edit({ embeds: [embed] }); messageTeam.edit({ embeds: [embed] });
m.delete(); m.delete();
const collectorD = message.channel.createMessageCollector({ filter, time: 60000, max: 1 }); const collectorD = message.channel.createMessageCollector({
collectorD.on('collect', async m => { filter,
time: 60000,
max: 1,
});
collectorD.on("collect", async (m) => {
if (m.content.length > 250) { if (m.content.length > 250) {
m.reply('La description de la team ne doit pas dépasser 250 caractères.'); m.reply(
"La description de la team ne doit pas dépasser 250 caractères.",
);
return collectorD.stop(); return collectorD.stop();
} else if (m.content.length < 5) { } else if (m.content.length < 5) {
m.reply('La description de la team doit contenir au moins 5 caractères.'); m.reply(
"La description de la team doit contenir au moins 5 caractères.",
);
return collectorD.stop(); return collectorD.stop();
} else { } else {
teamDescription = m.content; teamDescription = m.content;
let idBase = teamName.toLowerCase().replace(/ /g, ''); let idBase = teamName.toLowerCase().replace(/ /g, "");
idBase = idBase.replace('0', ''); idBase = idBase.replace("0", "");
idBase = idBase.replace('1', ''); idBase = idBase.replace("1", "");
idBase = idBase.replace('2', ''); idBase = idBase.replace("2", "");
idBase = idBase.replace('3', ''); idBase = idBase.replace("3", "");
idBase = idBase.replace('4', ''); idBase = idBase.replace("4", "");
idBase = idBase.replace('5', ''); idBase = idBase.replace("5", "");
idBase = idBase.replace('6', ''); idBase = idBase.replace("6", "");
idBase = idBase.replace('7', ''); idBase = idBase.replace("7", "");
idBase = idBase.replace('8', ''); idBase = idBase.replace("8", "");
idBase = idBase.replace('9', ''); idBase = idBase.replace("9", "");
let id = idBase; let id = idBase;
let increment = 0; let increment = 0;
let exists = true; let exists = true;
do { do {
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
db.get(`SELECT * FROM teams WHERE id = ? AND guildId = ?`, [id, message.guild.id], (err, row) => { db.get(
if (err) { `SELECT * FROM teams WHERE id = ? AND guildId = ?`,
reject(err); [id, message.guild.id],
} else { (err, row) => {
exists = !!row; if (err) {
if (exists) { reject(err);
increment += 1;
id = idBase + increment;
} else { } else {
db.run(`INSERT INTO teams (guildId, id, name, description) VALUES (?, ?, ?, ?)`, [message.guild.id, id, teamName, teamDescription]); exists = !!row;
db.run(`UPDATE users SET teamId = ?, teamRole = ? WHERE guildId = ? AND userId = ?`, [id, 'owner', message.guild.id, message.author.id]); if (exists) {
increment += 1;
id = idBase + increment;
} else {
db.run(
`INSERT INTO teams (guildId, id, name, description) VALUES (?, ?, ?, ?)`,
[message.guild.id, id, teamName, teamDescription],
);
db.run(
`UPDATE users SET teamId = ?, teamRole = ? WHERE guildId = ? AND userId = ?`,
[id, "owner", message.guild.id, message.author.id],
);
}
resolve();
} }
resolve(); },
} );
});
}); });
} while (exists); } while (exists);
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🛡️ Création de team') .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\` (vous deverez d'abord donner la team a quelqu'un d'autre).`) .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)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
messageTeam.edit({ embeds: [embed] }); messageTeam.edit({ embeds: [embed] });
m.delete(); m.delete();
} }
}); });
} }
}); });
} },
}; };
+139 -67
View File
@@ -1,105 +1,177 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder, EmbedBuilder } = require('discord.js'); const {
const db = require('../../fonctions/database.js'); ButtonStyle,
const embedColor = require('../../fonctions/embedColor.js'); ButtonBuilder,
ActionRowBuilder,
EmbedBuilder,
} = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['teamdelete'], aliases: ["teamdelete"],
description: 'Supprime votre équipe.', description: "Supprime votre équipe.",
emote: '🗑️', emote: "🗑️",
util: '', util: "",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const team = await new Promise((resolve, reject) => { 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) => { db.get(
if (err) reject(err); `SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`,
resolve(row); [message.guild.id, message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
if (!team) { if (!team) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🛡️ Suppression de l\'équipe') .setTitle("🛡️ Suppression de l'équipe")
.setDescription('Vous n\'êtes actuellement pas dans une équipe.') .setDescription("Vous n'êtes actuellement pas dans une équipe.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else { } else {
const teamRole = await new Promise((resolve, reject) => { 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) => { db.get(
if (err) reject(err); `SELECT teamRole FROM users WHERE guildId = ? AND userId = ?`,
resolve(row.teamRole); [message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
resolve(row.teamRole);
},
);
}); });
if (teamRole !== 'owner') { if (teamRole !== "owner") {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Suppression Impossible') .setTitle("Suppression Impossible")
.setDescription('❌ Vous n\'avez pas la permission de supprimer cette équipe.') .setDescription(
"❌ Vous n'avez pas la permission de supprimer cette équipe.",
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
const row = new ActionRowBuilder() const row = new ActionRowBuilder().addComponents(
.addComponents( new ButtonBuilder()
new ButtonBuilder() .setCustomId("confirm_delete")
.setCustomId('confirm_delete') .setLabel("Confirmer")
.setLabel('Confirmer') .setStyle(ButtonStyle.Danger),
.setStyle(ButtonStyle.Danger), new ButtonBuilder()
new ButtonBuilder() .setCustomId("cancel_delete")
.setCustomId('cancel_delete') .setLabel("Annuler")
.setLabel('Annuler') .setStyle(ButtonStyle.Secondary),
.setStyle(ButtonStyle.Secondary) );
);
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🛡️ Suppression de l\'équipe') .setTitle("🛡️ Suppression de l'équipe")
.setDescription(`Êtes-vous sûr de vouloir supprimer l'équipe ${team.name}? Cette action est irréversible.`) .setDescription(
`Êtes-vous sûr de vouloir supprimer l'équipe ${team.name}? Cette action est irréversible.`,
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }).then(sentMessage => { message
const filter = i => i.customId === 'confirm_delete' || i.customId === 'cancel_delete' && i.user.id === message.author.id; .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 }); const collector = sentMessage.createMessageComponentCollector({
filter,
time: 15000,
});
collector.on('collect', async i => { collector.on("collect", async (i) => {
if (i.customId === 'confirm_delete') { if (i.customId === "confirm_delete") {
db.run(`DELETE FROM teams WHERE guildId = ? AND id = ?`, [message.guild.id, team.id], async (err) => { db.run(
if (err) { `DELETE FROM teams WHERE guildId = ? AND id = ?`,
return i.update({ content: 'Une erreur est survenue lors de la suppression de l\'équipe.', components: [] }); [message.guild.id, team.id],
} async (err) => {
if (err) {
return i.update({
content:
"Une erreur est survenue lors de la suppression de l'équipe.",
components: [],
});
}
db.run(`UPDATE users SET teamRole = NULL, teamId = NULL WHERE guildId = ? AND teamId = ?`, [message.guild.id, team.id], async (err) => { db.run(
if (err) { `UPDATE users SET teamRole = NULL, teamId = NULL WHERE guildId = ? AND teamId = ?`,
return i.update({ content: 'Une erreur est survenue lors de la mise à jour des membres de l\'équipe.', components: [] }); [message.guild.id, team.id],
} async (err) => {
if (err) {
return i.update({
content:
"Une erreur est survenue lors de la mise à jour des membres de l'équipe.",
components: [],
});
}
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🛡️ Suppression de l\'équipe') .setTitle("🛡️ Suppression de l'équipe")
.setDescription(`L'équipe ${team.name} a été supprimée avec succès.`) .setDescription(
.setColor(await embedColor(message.author.id, message.guild.id)) `L'équipe ${team.name} a été supprimée avec succès.`,
.setTimestamp() )
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .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: [] }); return i.update({ embeds: [embed], components: [] });
},
);
},
);
} else {
await i.update({
content: "Suppression de l'équipe annulée.",
components: [],
}); });
}); }
} else { });
await i.update({ content: 'Suppression de l\'équipe annulée.', components: [] });
}
});
collector.on('end', collected => { collector.on("end", (collected) => {
if (collected.size === 0) sentMessage.edit({ content: 'Temps écoulé. Suppression de l\'équipe annulée.', components: [] }); if (collected.size === 0)
sentMessage.edit({
content: "Temps écoulé. Suppression de l'équipe annulée.",
components: [],
});
});
}); });
});
} }
}, },
}; };
+99 -55
View File
@@ -1,113 +1,157 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const {
const db = require('../../fonctions/database.js'); EmbedBuilder,
const embedColor = require('../../fonctions/embedColor.js'); ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['teamdemote', 'tderank'], aliases: ["teamdemote", "tderank"],
description: 'Rétrograder un officier à membre dans votre équipe.', description: "Rétrograder un officier à membre dans votre équipe.",
emote: '🛡️', emote: "🛡️",
utilisation: '<@user>', utilisation: "<@user>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
if (!args[0]) { if (!args[0]) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🛡️ Rétrograder un officier') .setTitle("🛡️ Rétrograder un officier")
.setDescription('Veuillez mentionner un utilisateur à rétrograder.') .setDescription("Veuillez mentionner un utilisateur à rétrograder.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
], ],
allowedMentions: { repliedUser: false } allowedMentions: { repliedUser: false },
}); });
} }
const userToDemote = message.mentions.users.first(); const userToDemote = message.mentions.users.first();
if (!userToDemote) { if (!userToDemote) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🛡️ Rétrograder un officier') .setTitle("🛡️ Rétrograder un officier")
.setDescription('Utilisateur non trouvé.') .setDescription("Utilisateur non trouvé.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
], ],
allowedMentions: { repliedUser: false } allowedMentions: { repliedUser: false },
}); });
} }
const user = await new Promise((resolve, reject) => { const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
if (!user || user.teamRole !== 'owner') { if (!user || user.teamRole !== "owner") {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🛡️ Rétrograder un officier') .setTitle("🛡️ Rétrograder un officier")
.setDescription('Vous n\'êtes pas administrateur de cette équipe.') .setDescription("Vous n'êtes pas administrateur de cette équipe.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
], ],
allowedMentions: { repliedUser: false } allowedMentions: { repliedUser: false },
}); });
} }
const userToDemoteInfo = await new Promise((resolve, reject) => { const userToDemoteInfo = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, userToDemote.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, userToDemote.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
if (!userToDemoteInfo || userToDemoteInfo.teamId !== user.teamId) { if (!userToDemoteInfo || userToDemoteInfo.teamId !== user.teamId) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🛡️ Rétrograder un officier') .setTitle("🛡️ Rétrograder un officier")
.setDescription('L\'utilisateur mentionné n\'est pas dans votre équipe.') .setDescription(
"L'utilisateur mentionné n'est pas dans votre équipe.",
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
], ],
allowedMentions: { repliedUser: false } allowedMentions: { repliedUser: false },
}); });
} }
if (userToDemoteInfo.teamRole !== 'officer') { if (userToDemoteInfo.teamRole !== "officer") {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🛡️ Rétrograder un officier') .setTitle("🛡️ Rétrograder un officier")
.setDescription('L\'utilisateur mentionné n\'est pas un officier.') .setDescription("L'utilisateur mentionné n'est pas un officier.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
], ],
allowedMentions: { repliedUser: false } allowedMentions: { repliedUser: false },
}); });
} }
db.run(`UPDATE users SET teamRole = 'membre' WHERE guildId = ? AND userId = ?`, [message.guild.id, userToDemote.id], async (err) => { db.run(
if (err) { `UPDATE users SET teamRole = 'membre' WHERE guildId = ? AND userId = ?`,
return message.reply('Une erreur est survenue lors de la rétrogradation de l\'utilisateur.'); [message.guild.id, userToDemote.id],
} async (err) => {
if (err) {
return message.reply(
"Une erreur est survenue lors de la rétrogradation de l'utilisateur.",
);
}
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🛡️ Rétrogradation dans l\'équipe') .setTitle("🛡️ Rétrogradation dans l'équipe")
.setDescription(`${userToDemote.tag} a été rétrogradé au rang de membre.`) .setDescription(
.setColor(await embedColor(message.author.id, message.guild.id)) `${userToDemote.tag} a été rétrogradé au rang de membre.`,
.setTimestamp() )
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .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 } }); return message.reply({
}); embeds: [embed],
allowedMentions: { repliedUser: false },
});
},
);
}, },
}; };
+62 -36
View File
@@ -1,66 +1,92 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['tedit'], aliases: ["tedit"],
description: 'Modifie les informations de votre team.', description: "Modifie les informations de votre team.",
emote: '🖋️', emote: "🖋️",
utilisation: '<nom|bannière|photo|description> <nouvelle valeur>', utilisation: "<nom|bannière|photo|description> <nouvelle valeur>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
if (args.length > 0) { if (args.length > 0) {
let subCommand = args[0].toLowerCase(); let subCommand = args[0].toLowerCase();
subCommand = subCommand.replice('n', 'name') subCommand = subCommand.replice("n", "name");
subCommand = subCommand.replice('nom', 'name') subCommand = subCommand.replice("nom", "name");
subCommand = subCommand.replice('noms', 'name') subCommand = subCommand.replice("noms", "name");
subCommand = subCommand.replice('banniere', 'banner') subCommand = subCommand.replice("banniere", "banner");
subCommand = subCommand.replice('bannière', 'banner') subCommand = subCommand.replice("bannière", "banner");
subCommand = subCommand.replice('b', 'banner') subCommand = subCommand.replice("b", "banner");
subCommand = subCommand.replice('i', 'icon') subCommand = subCommand.replice("i", "icon");
subCommand = subCommand.replice('p', 'icon') subCommand = subCommand.replice("p", "icon");
subCommand = subCommand.replice('photo', 'icon') subCommand = subCommand.replice("photo", "icon");
subCommand = subCommand.replice('icone', 'icon') subCommand = subCommand.replice("icone", "icon");
subCommand = subCommand.replice('d', 'description') subCommand = subCommand.replice("d", "description");
const newValue = args.slice(1).join(' '); const newValue = args.slice(1).join(" ");
if (['name', 'banner', 'icon', 'description'].includes(subCommand)) { if (["name", "banner", "icon", "description"].includes(subCommand)) {
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
db.run(`UPDATE teams SET ${subCommand} = ? WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [newValue, message.guild.id, message.guild.id, message.author.id], (err) => { db.run(
if (err) reject(err); `UPDATE teams SET ${subCommand} = ? WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`,
resolve(); [newValue, message.guild.id, message.guild.id, message.author.id],
}); (err) => {
if (err) reject(err);
resolve();
},
);
}); });
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🖋️ Modification de team') .setTitle("🖋️ Modification de team")
.setDescription(`La ${subCommand} de votre team a été mise à jour.`) .setDescription(`La ${subCommand} de votre team a été mise à jour.`)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else { } else {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🖋️ Modification de team') .setTitle("🖋️ Modification de team")
.setDescription('❌ Vous devez spécifier ce que vous voulez modifier (name, banner, icon ou description).') .setDescription(
"❌ Vous devez spécifier ce que vous voulez modifier (name, banner, icon ou description).",
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
} else { } else {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🖋️ Modification de team') .setTitle("🖋️ Modification de team")
.setDescription('Veuillez spécifier ce que vous voulez modifier et la nouvelle valeur.') .setDescription(
"Veuillez spécifier ce que vous voulez modifier et la nouvelle valeur.",
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
}, },
}; };
+134 -85
View File
@@ -1,144 +1,193 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['teamkick'], aliases: ["teamkick"],
description: 'Expulse un utilisateur de votre team.', description: "Expulse un utilisateur de votre team.",
emote: '🛠️', emote: "🛠️",
utilisation: '<@user>', utilisation: "<@user>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
if (!args[0]) { if (!args[0]) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🛠️ Expulsion de l\'équipe') .setTitle("🛠️ Expulsion de l'équipe")
.setDescription('Veuillez mentionner un utilisateur à expulser.') .setDescription("Veuillez mentionner un utilisateur à expulser.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
], ],
allowedMentions: { repliedUser: false } allowedMentions: { repliedUser: false },
}); });
} }
const userToKick = message.mentions.users.first(); const userToKick = message.mentions.users.first();
if (!userToKick) { if (!userToKick) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🛠️ Expulsion de l\'équipe') .setTitle("🛠️ Expulsion de l'équipe")
.setDescription('Utilisateur non trouvé.') .setDescription("Utilisateur non trouvé.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
], ],
allowedMentions: { repliedUser: false } allowedMentions: { repliedUser: false },
}); });
} else if (userToKick.id === message.author.id) { } else if (userToKick.id === message.author.id) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🛠️ Expulsion de l\'équipe') .setTitle("🛠️ Expulsion de l'équipe")
.setDescription('Vous ne pouvez pas vous expulser de votre propre équipe. Si vous souhaitez quitter votre équipe, utilisez la commande `&tleave`.') .setDescription(
"Vous ne pouvez pas vous expulser de votre propre équipe. Si vous souhaitez quitter votre équipe, utilisez la commande `&tleave`.",
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
], ],
allowedMentions: { repliedUser: false } allowedMentions: { repliedUser: false },
}); });
} }
const team = await new Promise((resolve, reject) => { 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) => { db.get(
if (err) reject(err); `SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`,
resolve(row); [message.guild.id, message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
if (!team) { if (!team) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🛠️ Expulsion de l\'équipe') .setTitle("🛠️ Expulsion de l'équipe")
.setDescription('Vous n\'êtes pas dans une équipe.') .setDescription("Vous n'êtes pas dans une équipe.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
], ],
allowedMentions: { repliedUser: false } allowedMentions: { repliedUser: false },
}); });
} }
const user = await new Promise((resolve, reject) => { const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
const userToKickInfo = await new Promise((resolve, reject) => { const userToKickInfo = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, userToKick.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, userToKick.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
if (!userToKickInfo || userToKickInfo.teamId !== user.teamId) { if (!userToKickInfo || userToKickInfo.teamId !== user.teamId) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🛠️ Expulsion de l\'équipe') .setTitle("🛠️ Expulsion de l'équipe")
.setDescription('L\'utilisateur mentionné n\'est pas dans votre équipe.') .setDescription(
"L'utilisateur mentionné n'est pas dans votre équipe.",
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
], ],
allowedMentions: { repliedUser: false } allowedMentions: { repliedUser: false },
});
}
if (!user || user.teamRole !== 'owner') {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🛠️ Expulsion de l\'équipe')
.setDescription('Vous n\'êtes pas administrateur de cette équipe.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
],
allowedMentions: { repliedUser: false }
}); });
} }
db.run(`UPDATE users SET teamId = NULL, teamRole = NULL WHERE guildId = ? AND userId = ?`, [message.guild.id, userToKick.id], async (err) => { if (!user || user.teamRole !== "owner") {
if (err) { return message.reply({
return message.reply({ embeds: [
embeds: [ new EmbedBuilder()
new EmbedBuilder() .setTitle("🛠️ Expulsion de l'équipe")
.setTitle('🛠️ Expulsion de l\'équipe') .setDescription("Vous n'êtes pas administrateur de cette équipe.")
.setDescription('Une erreur est survenue lors de l\'expulsion de l\'utilisateur.') .setColor(await embedColor(message.author.id, message.guild.id))
.setColor(await embedColor(message.author.id, message.guild.id)) .setTimestamp()
.setTimestamp() .setFooter({
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) text: `Demandé par ${message.author.tag}`,
], iconURL: message.author.displayAvatarURL(),
allowedMentions: { repliedUser: false } }),
],
allowedMentions: { repliedUser: false },
});
}
db.run(
`UPDATE users SET teamId = NULL, teamRole = NULL WHERE guildId = ? AND userId = ?`,
[message.guild.id, userToKick.id],
async (err) => {
if (err) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("🛠️ Expulsion de l'équipe")
.setDescription(
"Une erreur est survenue lors de l'expulsion de l'utilisateur.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle("🛠️ Expulsion de l'équipe")
.setDescription(`${userToKick.tag} a été expulsé de l'équipe.`)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
} },
);
embedColor(message.author.id, message.guild.id).then(color => {
const embed = new EmbedBuilder()
.setTitle('🛠️ Expulsion de l\'équipe')
.setDescription(`${userToKick.tag} a été expulsé de l'équipe.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
});
});
}, },
}; };
+149 -83
View File
@@ -1,147 +1,213 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder, EmbedBuilder } = require('discord.js'); const {
const db = require('../../fonctions/database.js'); ButtonStyle,
const embedColor = require('../../fonctions/embedColor.js'); ButtonBuilder,
ActionRowBuilder,
EmbedBuilder,
} = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['teamowner', 'towner', 'teamadmin'], aliases: ["teamowner", "towner", "teamadmin"],
description: 'Transfère votre team à un utilisteur de votre équipe.', description: "Transfère votre team à un utilisteur de votre équipe.",
emote: '👑', emote: "👑",
utilisation: '<@user>', utilisation: "<@user>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
if (!args[0]) { if (!args[0]) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('👑 Transfere de la propriété de la team') .setTitle("👑 Transfere de la propriété de la team")
.setDescription('Veuillez mentionner un utilisateur à promouvoir.') .setDescription("Veuillez mentionner un utilisateur à promouvoir.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
], ],
allowedMentions: { repliedUser: false } allowedMentions: { repliedUser: false },
}); });
} }
const userToPromote = message.mentions.users.first(); const userToPromote = message.mentions.users.first();
if (!userToPromote) { if (!userToPromote) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('👑 Transfere de la propriété de la team') .setTitle("👑 Transfere de la propriété de la team")
.setDescription('Utilisateur non trouvé.') .setDescription("Utilisateur non trouvé.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
], ],
allowedMentions: { repliedUser: false } allowedMentions: { repliedUser: false },
}); });
} }
const user = await new Promise((resolve, reject) => { const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
if (!user || user.teamRole !== 'owner') { if (!user || user.teamRole !== "owner") {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('👑 Transfere de la propriété de la team') .setTitle("👑 Transfere de la propriété de la team")
.setDescription('Vous n\'êtes pas administrateur de cette équipe.') .setDescription("Vous n'êtes pas administrateur de cette équipe.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
], ],
allowedMentions: { repliedUser: false } allowedMentions: { repliedUser: false },
}); });
} }
const userToPromoteInfo = await new Promise((resolve, reject) => { const userToPromoteInfo = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, userToPromote.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, userToPromote.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
if (!userToPromoteInfo || userToPromoteInfo.teamId !== user.teamId) { if (!userToPromoteInfo || userToPromoteInfo.teamId !== user.teamId) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('👑 Transfere de la propriété de la team') .setTitle("👑 Transfere de la propriété de la team")
.setDescription('L\'utilisateur mentionné n\'est pas dans votre équipe.') .setDescription(
"L'utilisateur mentionné n'est pas dans votre équipe.",
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
], ],
allowedMentions: { repliedUser: false } allowedMentions: { repliedUser: false },
}); });
} }
const bouton = new ButtonBuilder() const bouton = new ButtonBuilder()
.setCustomId('promote_to_admin') .setCustomId("promote_to_admin")
.setLabel('Confirmer') .setLabel("Confirmer")
.setStyle(ButtonStyle.Success); .setStyle(ButtonStyle.Success);
const row = new ActionRowBuilder() const row = new ActionRowBuilder().addComponents(bouton);
.addComponents(bouton);
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('👑 Transfere de la propriété de la team') .setTitle("👑 Transfere de la propriété de la team")
.setDescription(`Êtes-vous sûr de vouloir promouvoir ${userToPromote.tag} au rang d'administrateur ?`) .setDescription(
`Êtes-vous sûr de vouloir promouvoir ${userToPromote.tag} au rang d'administrateur ?`,
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
const sendMessage = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); const sendMessage = await message.reply({
embeds: [embed],
const filter = i => i.customId === 'promote_to_admin' && i.user.id === message.author.id; components: [row],
const collector = sendMessage.createMessageComponentCollector({ filter, time: 120000 }); allowedMentions: { repliedUser: false },
});
collector.on('collect', async (interaction) => {
db.run(`UPDATE users SET teamRole = 'owner' WHERE guildId = ? AND userId = ?`, [message.guild.id, userToPromote.id], async (err) => { const filter = (i) =>
if (err) { i.customId === "promote_to_admin" && i.user.id === message.author.id;
return message.reply({ const collector = sendMessage.createMessageComponentCollector({
embeds: [ filter,
new EmbedBuilder() time: 120000,
.setTitle('👑 Transfere de la propriété de la team') });
.setDescription('Une erreur est survenue lors de la promotion de l\'utilisateur.')
.setColor(await embedColor(message.author.id, message.guild.id)) collector.on("collect", async (interaction) => {
.setTimestamp() db.run(
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) `UPDATE users SET teamRole = 'owner' WHERE guildId = ? AND userId = ?`,
], [message.guild.id, userToPromote.id],
allowedMentions: { repliedUser: false } async (err) => {
});
}
db.run(`UPDATE users SET teamRole = 'officier' WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], async (err) => {
if (err) { if (err) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('👑 Transfere de la propriété de la team') .setTitle("👑 Transfere de la propriété de la team")
.setDescription('Une erreur est survenue lors de la mise à jour de votre rôle.') .setDescription(
.setColor(await embedColor(message.author.id, message.guild.id)) "Une erreur est survenue lors de la promotion de l'utilisateur.",
)
.setColor(
await embedColor(message.author.id, message.guild.id),
)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
], ],
allowedMentions: { repliedUser: false } allowedMentions: { repliedUser: false },
}); });
} }
const embed = new EmbedBuilder() db.run(
.setTitle('👑 Transfere de la propriété de la team') `UPDATE users SET teamRole = 'officier' WHERE guildId = ? AND userId = ?`,
.setDescription(`${userToPromote.tag} a été promu au rang d'administrateur. Vous avez été rétrogradé au rang d'officier.`) [message.guild.id, message.author.id],
.setColor(await embedColor(message.author.id, message.guild.id)) async (err) => {
.setTimestamp() if (err) {
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); return message.reply({
embeds: [
sendMessage.edit({ embeds: [embed], components: [] }); new EmbedBuilder()
}); .setTitle("👑 Transfere de la propriété de la team")
}); .setDescription(
"Une erreur est survenue lors de la mise à jour de votre rôle.",
)
.setColor(
await embedColor(message.author.id, message.guild.id),
)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
const embed = new EmbedBuilder()
.setTitle("👑 Transfere de la propriété de la team")
.setDescription(
`${userToPromote.tag} a été promu au rang d'administrateur. Vous avez été rétrogradé au rang d'officier.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
sendMessage.edit({ embeds: [embed], components: [] });
},
);
},
);
}); });
}, },
}; };
+113 -66
View File
@@ -1,123 +1,170 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const {
const db = require('../../fonctions/database.js'); EmbedBuilder,
const embedColor = require('../../fonctions/embedColor.js'); ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['teampromote', 'trankup'], aliases: ["teampromote", "trankup"],
description: 'Promouvoir un utilisateur à officier dans votre équipe.', description: "Promouvoir un utilisateur à officier dans votre équipe.",
emote: '🛡️', emote: "🛡️",
utilisation: '<@user>', utilisation: "<@user>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
if (!args[0]) { if (!args[0]) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🛡️ Promotion dans l\'équipe') .setTitle("🛡️ Promotion dans l'équipe")
.setDescription('Veuillez mentionner un utilisateur à promouvoir.') .setDescription("Veuillez mentionner un utilisateur à promouvoir.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
], ],
allowedMentions: { repliedUser: false } allowedMentions: { repliedUser: false },
}); });
} }
const userToPromote = message.mentions.users.first(); const userToPromote = message.mentions.users.first();
if (!userToPromote) { if (!userToPromote) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🛡️ Promotion dans l\'équipe') .setTitle("🛡️ Promotion dans l'équipe")
.setDescription('Utilisateur non trouvé.') .setDescription("Utilisateur non trouvé.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
], ],
allowedMentions: { repliedUser: false } allowedMentions: { repliedUser: false },
}); });
} }
const user = await new Promise((resolve, reject) => { const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
if (!user || user.teamRole !== 'owner') { if (!user || user.teamRole !== "owner") {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🛡️ Promotion dans l\'équipe') .setTitle("🛡️ Promotion dans l'équipe")
.setDescription('Vous n\'êtes pas administrateur de cette équipe.') .setDescription("Vous n'êtes pas administrateur de cette équipe.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
], ],
allowedMentions: { repliedUser: false } allowedMentions: { repliedUser: false },
}); });
} }
const userToPromoteInfo = await new Promise((resolve, reject) => { const userToPromoteInfo = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, userToPromote.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, userToPromote.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
if (!userToPromoteInfo || userToPromoteInfo.teamId !== user.teamId) { if (!userToPromoteInfo || userToPromoteInfo.teamId !== user.teamId) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🛡️ Promotion dans l\'équipe') .setTitle("🛡️ Promotion dans l'équipe")
.setDescription('L\'utilisateur mentionné n\'est pas dans votre équipe.') .setDescription(
"L'utilisateur mentionné n'est pas dans votre équipe.",
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
], ],
allowedMentions: { repliedUser: false } allowedMentions: { repliedUser: false },
}); });
} }
if (userToPromoteInfo.teamRole === 'officer') { if (userToPromoteInfo.teamRole === "officer") {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🛡️ Promotion dans l\'équipe') .setTitle("🛡️ Promotion dans l'équipe")
.setDescription('L\'utilisateur mentionné est déjà un officier.') .setDescription("L'utilisateur mentionné est déjà un officier.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
], ],
allowedMentions: { repliedUser: false } allowedMentions: { repliedUser: false },
}); });
} }
db.run(`UPDATE users SET teamRole = 'officer' WHERE guildId = ? AND userId = ?`, [message.guild.id, userToPromote.id], async (err) => { db.run(
if (err) { `UPDATE users SET teamRole = 'officer' WHERE guildId = ? AND userId = ?`,
return message.reply({ [message.guild.id, userToPromote.id],
embeds: [ async (err) => {
new EmbedBuilder() if (err) {
.setTitle('🛡️ Promotion dans l\'équipe') return message.reply({
.setDescription('Une erreur est survenue lors de la promotion de l\'utilisateur.') embeds: [
.setColor(await embedColor(message.author.id, message.guild.id)) new EmbedBuilder()
.setTimestamp() .setTitle("🛡️ Promotion dans l'équipe")
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setDescription(
], "Une erreur est survenue lors de la promotion de l'utilisateur.",
allowedMentions: { repliedUser: false } )
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
const embed = new EmbedBuilder()
.setTitle("🛡️ Promotion dans l'équipe")
.setDescription(
`${userToPromote.tag} a été promu au rang d'officier.`,
)
.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 embed = new EmbedBuilder()
.setTitle('🛡️ Promotion dans l\'équipe')
.setDescription(`${userToPromote.tag} a été promu au rang d'officier.`)
.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 } });
});
}, },
}; };
+122 -55
View File
@@ -1,113 +1,180 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['tretirer', 'teamwithdraw', 'teamretirer', 'teamwh', 'twh'], aliases: ["tretirer", "teamwithdraw", "teamretirer", "teamwh", "twh"],
description: 'Retire de l\'argent de la banque de votre team.', description: "Retire de l'argent de la banque de votre team.",
emote: '💰', emote: "💰",
utilisation: '<montant|all>', utilisation: "<montant|all>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
if (args.length !== 1) { if (args.length !== 1) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Retrait Impossible') .setTitle("Retrait Impossible")
.setDescription('❌ Vous devez spécifier un montant à retirer.') .setDescription("❌ Vous devez spécifier un montant à retirer.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
} else if (args[0] !== 'all' && isNaN(args[0])) { embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (args[0] !== "all" && isNaN(args[0])) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Retrait Impossible') .setTitle("Retrait Impossible")
.setDescription('❌ Vous devez spécifier un montant valide à retirer.') .setDescription("❌ Vous devez spécifier un montant valide à retirer.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (args[0] < 1) { } else if (args[0] < 1) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Retrait Impossible') .setTitle("Retrait Impossible")
.setDescription('❌ Vous devez retirer au moins 1 coin.') .setDescription("❌ Vous devez retirer au moins 1 coin.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
const teamRole = await new Promise((resolve, reject) => { 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) => { db.get(
if (err) reject(err); `SELECT teamRole FROM users WHERE guildId = ? AND userId = ?`,
resolve(row.teamRole); [message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
resolve(row.teamRole);
},
);
}); });
if (!teamRole || (teamRole !== 'officier' && teamRole !== 'owner')) { if (!teamRole || (teamRole !== "officier" && teamRole !== "owner")) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Retrait Impossible') .setTitle("Retrait Impossible")
.setDescription('❌ Vous n\'avez pas la permission de retirer de l\'argent de la banque de l\'équipe.') .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)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
const team = await new Promise((resolve, reject) => { 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(
if (err) reject(err); `SELECT teamId FROM users WHERE guildId = ? AND userId = ?`,
resolve(row.teamId); [message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
resolve(row.teamId);
},
);
}); });
if (!team) { if (!team) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Retrait Impossible') .setTitle("Retrait Impossible")
.setDescription('❌ Vous n\'êtes pas dans une team.') .setDescription("❌ Vous n'êtes pas dans une team.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else { } else {
const bank = await new Promise((resolve, reject) => { const bank = await new Promise((resolve, reject) => {
db.get(`SELECT bank FROM teams WHERE id = ? AND guildId = ?`, [team, message.guild.id], (err, row) => { db.get(
if (err) reject(err); `SELECT bank FROM teams WHERE id = ? AND guildId = ?`,
resolve(row.bank); [team, message.guild.id],
}); (err, row) => {
if (err) reject(err);
resolve(row.bank);
},
);
}); });
let amount; let amount;
if (args[0] === 'all') { if (args[0] === "all") {
amount = bank; amount = bank;
} else if (args[0] > bank) { } else if (args[0] > bank) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Retrait Impossible') .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.`) .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)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else { } else {
amount = args[0]; 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(
db.run(`UPDATE teams SET bank = bank - ? WHERE id = ? AND guildId = ?`, [amount, team, message.guild.id]); `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() const embed = new EmbedBuilder()
.setTitle('Retrait Effectué') .setTitle("Retrait Effectué")
.setDescription(`💰 Vous avez retiré **${amount}** coins de la banque de votre team.`) .setDescription(
`💰 Vous avez retiré **${amount}** coins de la banque de votre team.`,
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
}, },
}; };
+120 -69
View File
@@ -1,78 +1,129 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['tcadena'], aliases: ["tcadena"],
description: 'Ajoute un cadenas à une team. (max : 5, coût : 3reputation)', description: "Ajoute un cadenas à une team. (max : 5, coût : 3reputation)",
emote: '🔒', emote: "🔒",
utilisation: '<team-id>', utilisation: "<team-id>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const teamID = args[0].toLowerCase();
const teamID = args[0].toLowerCase(); const team = await new Promise((resolve, reject) => {
const team = await new Promise((resolve, reject) => { db.get(
db.get(`SELECT * FROM teams WHERE guildId = ? AND id = ?`, [message.guild.id, teamID], (err, row) => { `SELECT * FROM teams WHERE guildId = ? AND id = ?`,
if (err) reject(err); [message.guild.id, teamID],
resolve(row); (err, row) => {
}); if (err) reject(err);
}); resolve(row);
if (!team) { },
const embed = new EmbedBuilder() );
.setTitle('Ajout Impossible') });
.setDescription(`❌ Veuillez indiquer l'id une team.`) if (!team) {
.setColor(await embedColor(message.author.id, message.guild.id)) const embed = new EmbedBuilder()
.setTimestamp() .setTitle("Ajout Impossible")
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setDescription(`❌ Veuillez indiquer l'id une team.`)
.setColor(await embedColor(message.author.id, message.guild.id))
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); .setTimestamp()
} .setFooter({
text: `Demandé par ${message.author.tag}`,
const teamRep = team.reputation iconURL: message.author.displayAvatarURL(),
if (teamRep < 4) {
const embed = new EmbedBuilder()
.setTitle('Ajout de cadenas impossible')
.setDescription(`❌ Vous n'avez pas assez de reputation. Il faut \`4\` reputation mais la team n'a que \`${teamRep}\` reputation`)
.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 teams SET reputation = reputation - 4 WHERE guildId =? AND Id =?`, [message.guild.id, teamID], (err) => {
if (err) {
console.log(`${err}`.red)
}
}); });
if (team.padlock < 5) { return message.reply({
db.run(`UPDATE teams SET padlock = padlock + 1 WHERE guildId =? AND Id =?`, [message.guild.id, teamID], (err) => { embeds: [embed],
if (err) { allowedMentions: { repliedUser: false },
console.log(`${err}`.red) });
} }
});
const embed = new EmbedBuilder() const teamRep = team.reputation;
.setTitle('Ajout de cadenas réussi !') if (teamRep < 4) {
.setDescription('Vous avez ajouter un cadenas à team `' + team.name + '`, cette team à maintement `' + team.padlock + 1 + '` cadenas !') const embed = new EmbedBuilder()
.setColor(await embedColor(message.author.id, message.guild.id)) .setTitle("Ajout de cadenas impossible")
.setTimestamp() .setDescription(
.setImage() `❌ Vous n'avez pas assez de reputation. Il faut \`4\` reputation mais la team n'a que \`${teamRep}\` reputation`,
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); )
.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 } }); return message.reply({
} else { embeds: [embed],
const embed = new EmbedBuilder() allowedMentions: { repliedUser: false },
.setTitle('Ajout de cadenas impossible') });
.setDescription('`' + team.name + '` à le maximum de cadenas (`' + team.padlock + 1 + '` cadenas !)') }
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setImage()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); db.run(
`UPDATE teams SET reputation = reputation - 4 WHERE guildId =? AND Id =?`,
[message.guild.id, teamID],
(err) => {
if (err) {
console.log(`${err}`.red);
} }
}, },
}; );
if (team.padlock < 5) {
db.run(
`UPDATE teams SET padlock = padlock + 1 WHERE guildId =? AND Id =?`,
[message.guild.id, teamID],
(err) => {
if (err) {
console.log(`${err}`.red);
}
},
);
const embed = new EmbedBuilder()
.setTitle("Ajout de cadenas réussi !")
.setDescription(
"Vous avez ajouter un cadenas à team `" +
team.name +
"`, cette team à maintement `" +
team.padlock +
1 +
"` cadenas !",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setImage()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else {
const embed = new EmbedBuilder()
.setTitle("Ajout de cadenas impossible")
.setDescription(
"`" +
team.name +
"` à le maximum de cadenas (`" +
team.padlock +
1 +
"` cadenas !)",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setImage()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
},
};
+153 -94
View File
@@ -1,94 +1,153 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['tdep', 'tdepot', 'teamdep', 'teamdepot'], aliases: ["tdep", "tdepot", "teamdep", "teamdepot"],
description: 'Dépose de l\'argent dans la banque de votre team.', description: "Dépose de l'argent dans la banque de votre team.",
emote: '💰', emote: "💰",
utilisation: '<montant|all>', utilisation: "<montant|all>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
if (args.length == 0) { if (args.length == 0) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible') .setTitle("Dépôt Impossible")
.setDescription('❌ Vous devez spécifier un montant à déposer.') .setDescription("❌ Vous devez spécifier un montant à déposer.")
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); iconURL: message.author.displayAvatarURL(),
} else if (args[0] !== 'all' && isNaN(args[0])) { });
const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible') return message.reply({
.setDescription('❌ Vous devez spécifier un montant valide à déposer.') embeds: [embed],
.setColor(await embedColor(message.author.id, message.guild.id)) allowedMentions: { repliedUser: false },
.setTimestamp() });
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); } else if (args[0] !== "all" && isNaN(args[0])) {
const embed = new EmbedBuilder()
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); .setTitle("Dépôt Impossible")
} else if (args[0] < 1) { .setDescription("❌ Vous devez spécifier un montant valide à déposer.")
const embed = new EmbedBuilder() .setColor(await embedColor(message.author.id, message.guild.id))
.setTitle('Dépôt Impossible') .setTimestamp()
.setDescription('❌ Vous devez déposer au moins 1 coin.') .setFooter({
.setColor(await embedColor(message.author.id, message.guild.id)) text: `Demandé par ${message.author.tag}`,
.setTimestamp() iconURL: message.author.displayAvatarURL(),
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); 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) => { } else if (args[0] < 1) {
if (err) reject(err); const embed = new EmbedBuilder()
resolve(row.pocket); .setTitle("Dépôt Impossible")
}); .setDescription("❌ Vous devez déposer au moins 1 coin.")
}); .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
let amout; .setFooter({
if (args[0] === 'all') { text: `Demandé par ${message.author.tag}`,
amout = pocket; iconURL: message.author.displayAvatarURL(),
} else if (args[0] > pocket) { });
const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible') return message.reply({
.setDescription('❌ Vous n\'avez pas assez d\'argent sur vous pour déposer cette somme.\n\n💰 Vous avez actuellement **' + pocket + 'coins** sur vous.') embeds: [embed],
.setColor(await embedColor(message.author.id, message.guild.id)) allowedMentions: { repliedUser: false },
.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) => {
} else { db.get(
amout = args[0]; `SELECT pocket FROM users WHERE guildId = ? AND userId = ?`,
} [message.guild.id, message.author.id],
(err, row) => {
const team = await new Promise((resolve, reject) => { if (err) reject(err);
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { resolve(row.pocket);
if (err) reject(err); },
resolve(row); );
}); });
});
if (!team) { let amout;
const embed = new EmbedBuilder() if (args[0] === "all") {
.setTitle('Dépôt Impossible') amout = pocket;
.setDescription('❌ Vous n\'êtes pas dans une team.') } else if (args[0] > pocket) {
.setColor(await embedColor(message.author.id, message.guild.id)) const embed = new EmbedBuilder()
.setTimestamp() .setTitle("Dépôt Impossible")
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setDescription(
"❌ Vous n'avez pas assez d'argent sur vous pour déposer cette somme.\n\n💰 Vous avez actuellement **" +
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); pocket +
} else { "coins** sur vous.",
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]); .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
const embed = new EmbedBuilder() .setFooter({
.setTitle('Dépôt Effectué') text: `Demandé par ${message.author.tag}`,
.setDescription('💰 Vous avez déposé **' + amout + '** coins dans la banque de votre team.') iconURL: message.author.displayAvatarURL(),
.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],
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); allowedMentions: { repliedUser: false },
} });
}, } else {
}; amout = args[0];
}
const team = 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 (!team) {
const embed = new EmbedBuilder()
.setTitle("Dépôt 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 {
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é")
.setDescription(
"💰 Vous avez déposé **" +
amout +
"** coins dans 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 },
});
}
},
};
+157 -122
View File
@@ -1,122 +1,157 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['t', 'tinfo', 'teaminfo'], aliases: ["t", "tinfo", "teaminfo"],
description: 'Affiche les informations de votre team.', description: "Affiche les informations de votre team.",
emote: '🛡️', emote: "🛡️",
utilisation: '', utilisation: "",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const member = message.mentions.members.first() || message.member; const member = message.mentions.members.first() || message.member;
const team = await new Promise((resolve, reject) => { 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) => { db.get(
if (err) reject(err); `SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`,
resolve(row); [message.guild.id, message.guild.id, member.id],
}); (err, row) => {
}); if (err) reject(err);
resolve(row);
if (!team) { },
const embed = new EmbedBuilder() );
.setTitle('🛡️ Informations de team') });
.setDescription('<@' + member.id + '> n\'est actuellement dans aucune une team.')
.setColor(await embedColor(message.author.id, message.guild.id)) if (!team) {
.setTimestamp() const embed = new EmbedBuilder()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setTitle("🛡️ Informations de team")
.setDescription(
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); "<@" + member.id + "> n'est actuellement dans aucune une team.",
} else { )
.setColor(await embedColor(message.author.id, message.guild.id))
const alliance = await new Promise((resolve, reject) => { .setTimestamp()
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) => { .setFooter({
if (err) reject(err); text: `Demandé par ${message.author.tag}`,
resolve(row); iconURL: message.author.displayAvatarURL(),
}); });
});
let Aname return message.reply({
if (alliance) { embeds: [embed],
Aname = alliance.name allowedMentions: { repliedUser: false },
} });
else { } else {
Aname = 'aucune alliance' const alliance = await new Promise((resolve, reject) => {
} db.get(
`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM teams WHERE guildId = ? AND id = ?)`,
const memberlist = await new Promise((resolve, reject) => { [message.guild.id, message.guild.id, team.id],
db.all(`SELECT userId, teamRole FROM users WHERE guildId = ? AND teamId = ?`, [message.guild.id, team.id], (err, rows) => { (err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(rows); resolve(row);
}); },
}); );
let CadenaS = "🔓" });
if (team.padlock == 5) { let Aname;
CadenaS = "🔐🔐🔐🔐🔐" if (alliance) {
} Aname = alliance.name;
if (team.padlock == 4) { } else {
CadenaS = "🔐🔐🔐🔐" Aname = "aucune alliance";
} }
if (team.padlock == 3) {
CadenaS = "🔐🔐🔐" const memberlist = await new Promise((resolve, reject) => {
} db.all(
if (team.padlock == 2) { `SELECT userId, teamRole FROM users WHERE guildId = ? AND teamId = ?`,
CadenaS = "🔐🔐" [message.guild.id, team.id],
} (err, rows) => {
if (team.padlock == 1) { if (err) reject(err);
CadenaS = "🔐" resolve(rows);
} },
);
//////////////////////////////////////////////////// TEAM DROPER /////////////////////////////////////////////////////////////////// });
data = await new Promise((resolve, reject) => { let CadenaS = "🔓";
db.all(`SELECT userId, teamDroper AS coins FROM users WHERE teamId = ? ORDER BY coins DESC LIMIT 10`, [team.id], (err, rows) => { if (team.padlock == 5) {
if (err) reject(err); CadenaS = "🔐🔐🔐🔐🔐";
resolve(rows); }
}); if (team.padlock == 4) {
}); CadenaS = "🔐🔐🔐🔐";
let leaderboard = data.map((row, i) => { }
let position; if (team.padlock == 3) {
switch (i) { CadenaS = "🔐🔐🔐";
case 0: }
position = ':first_place:'; if (team.padlock == 2) {
break; CadenaS = "🔐🔐";
case 1: }
position = ':second_place:'; if (team.padlock == 1) {
break; CadenaS = "🔐";
case 2: }
position = ':third_place:';
break; //////////////////////////////////////////////////// TEAM DROPER ///////////////////////////////////////////////////////////////////
default: data = await new Promise((resolve, reject) => {
position = `**${i + 1}.**`; db.all(
} `SELECT userId, teamDroper AS coins FROM users WHERE teamId = ? ORDER BY coins DESC LIMIT 10`,
return `${position} <@${row.userId}> - \`${row.coins}\`coins donné(s)`; [team.id],
}).join('\n'); (err, rows) => {
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (err) reject(err);
resolve(rows);
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\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)) let leaderboard = data
.setTimestamp() .map((row, i) => {
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); let position;
switch (i) {
const embedTopDonnateur = new EmbedBuilder() case 0:
.setTitle('**Les 10 meilleurs donnateurs de la team sont :**') position = ":first_place:";
.setDescription(`${leaderboard}`) break;
.setColor(await embedColor(message.author.id, message.guild.id)) case 1:
.setTimestamp() position = ":second_place:";
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); break;
case 2:
const urlRegex1 = /(https?:\/\/[^\s]+)/g; position = ":third_place:";
if (team.icon && urlRegex1.test(team.icon)) { break;
embed.setThumbnail(team.icon); default:
} position = `**${i + 1}.**`;
}
const urlRegex2 = /(https?:\/\/[^\s]+)/g; return `${position} <@${row.userId}> - \`${row.coins}\`coins donné(s)`;
if (team.banner && urlRegex2.test(team.banner)) { })
embedTopDonnateur.setImage(team.banner); .join("\n");
} ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
return message.reply({ embeds: [embed, embedTopDonnateur], allowedMentions: { repliedUser: false } }); 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\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 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(),
});
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 },
});
}
},
};
+159 -110
View File
@@ -1,110 +1,159 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const {
const db = require('../../fonctions/database.js'); EmbedBuilder,
const embedColor = require('../../fonctions/embedColor.js'); ButtonStyle,
ButtonBuilder,
module.exports = { ActionRowBuilder,
aliases: ['tinvite'], } = require("discord.js");
description: 'Invite un utilisateur à votre team.', const db = require("../../fonctions/database.js");
emote: '🛡️', const embedColor = require("../../fonctions/embedColor.js");
utilisation: '<@user>',
permission: 0, module.exports = {
aliases: ["tinvite"],
async execute(message, args, client) { description: "Invite un utilisateur à votre team.",
if (!args[0]) { emote: "🛡️",
return message.reply({ utilisation: "<@user>",
embeds: [ permission: 0,
new EmbedBuilder()
.setTitle('🛡️ Invitation à l\'équipe') async execute(message, args, client) {
.setDescription('Veuillez mentionner un utilisateur à inviter.') if (!args[0]) {
.setColor(await embedColor(message.author.id, message.guild.id)) return message.reply({
.setTimestamp() embeds: [
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) new EmbedBuilder()
], .setTitle("🛡️ Invitation à l'équipe")
allowedMentions: { repliedUser: false } .setDescription("Veuillez mentionner un utilisateur à inviter.")
}); .setColor(await embedColor(message.author.id, message.guild.id))
} .setTimestamp()
.setFooter({
const userToInvite = message.mentions.users.first(); text: `Demandé par ${message.author.tag}`,
if (!userToInvite) { iconURL: message.author.displayAvatarURL(),
return message.reply({ }),
embeds: [ ],
new EmbedBuilder() allowedMentions: { repliedUser: false },
.setTitle('🛡️ Invitation à l\'équipe') });
.setDescription('Utilisateur non trouvé.') }
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() const userToInvite = message.mentions.users.first();
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) if (!userToInvite) {
], return message.reply({
allowedMentions: { repliedUser: false } embeds: [
}); new EmbedBuilder()
} .setTitle("🛡️ Invitation à l'équipe")
const team = await new Promise((resolve, reject) => { .setDescription("Utilisateur non trouvé.")
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) => { .setColor(await embedColor(message.author.id, message.guild.id))
if (err) reject(err); .setTimestamp()
resolve(row); .setFooter({
}); text: `Demandé par ${message.author.tag}`,
}); iconURL: message.author.displayAvatarURL(),
}),
if (team) { ],
return message.channel.reply('<@' + userToInvite.id + '> a déjà une team') allowedMentions: { repliedUser: false },
} });
}
const user = await new Promise((resolve, reject) => { const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`,
resolve(row); [message.guild.id, message.guild.id, userToInvite.id],
}); (err, row) => {
}); if (err) reject(err);
resolve(row);
if (!user || user.teamRole !== 'owner' || user.teamRole !== 'officer') { },
return message.reply({ );
embeds: [ });
new EmbedBuilder()
.setTitle('🛡️ Invitation à l\'équipe') if (team) {
.setDescription('Vous n\'êtes pas administrateur de cette équipe.') return message.channel.reply(
.setColor(await embedColor(message.author.id, message.guild.id)) "<@" + userToInvite.id + "> a déjà une team",
.setTimestamp() );
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) }
],
allowedMentions: { repliedUser: false } const user = await new Promise((resolve, reject) => {
}); db.get(
} `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
embedColor(message.author.id, message.guild.id).then(color => { [message.guild.id, message.author.id],
const accept = new ButtonBuilder() (err, row) => {
.setCustomId('accept') if (err) reject(err);
.setLabel('Rejoindre la team') resolve(row);
.setStyle(ButtonStyle.Success); },
);
const row = new ActionRowBuilder() });
.addComponents(accept);
if (!user || user.teamRole !== "owner" || user.teamRole !== "officer") {
const embed = new EmbedBuilder() return message.reply({
.setTitle('🛡️ Invitation à l\'équipe') embeds: [
.setDescription(`<@${userToInvite.id}> tu as été invité à rejoindre l'équipe de <@${message.author.id}>. Pour accepter l'invitation, clique sur le bouton.`) new EmbedBuilder()
.setColor(color) .setTitle("🛡️ Invitation à l'équipe")
.setTimestamp() .setDescription("Vous n'êtes pas administrateur de cette équipe.")
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
(async () => { .setFooter({
const sentMessage = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
const filter = i => i.customId === 'accept' && i.user.id === userToInvite.id; }),
const collector = sentMessage.createMessageComponentCollector({ filter, time: 120000 }); ],
collector.on('collect', async (interaction) => { allowedMentions: { repliedUser: false },
db.run(`UPDATE users SET teamId = ?, teamRole = ? WHERE guildId = ? AND userId = ?`, [user.teamId, 'membre', message.guild.id, userToInvite.id], (err) => { });
if (err) { }
return message.reply('Une erreur est survenue lors de l\'invitation de l\'utilisateur.'); embedColor(message.author.id, message.guild.id).then((color) => {
} const accept = new ButtonBuilder()
const embed = new EmbedBuilder() .setCustomId("accept")
.setTitle('🛡️ Invitation à l\'équipe') .setLabel("Rejoindre la team")
.setDescription(`<@${userToInvite.id}> rejoint l\'équipe.`) .setStyle(ButtonStyle.Success);
.setColor(color)
.setTimestamp() const row = new ActionRowBuilder().addComponents(accept);
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
sentMessage.edit({ embeds: [embed], components: [], allowedMentions: { repliedUser: false } }); const embed = new EmbedBuilder()
}); .setTitle("🛡️ Invitation à l'équipe")
}); .setDescription(
})(); `<@${userToInvite.id}> tu as été invité à rejoindre l'équipe de <@${message.author.id}>. Pour accepter l'invitation, clique sur le bouton.`,
}); )
}, .setColor(color)
}; .setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
(async () => {
const sentMessage = await message.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
});
const filter = (i) =>
i.customId === "accept" && i.user.id === userToInvite.id;
const collector = sentMessage.createMessageComponentCollector({
filter,
time: 120000,
});
collector.on("collect", async (interaction) => {
db.run(
`UPDATE users SET teamId = ?, teamRole = ? WHERE guildId = ? AND userId = ?`,
[user.teamId, "membre", message.guild.id, userToInvite.id],
(err) => {
if (err) {
return message.reply(
"Une erreur est survenue lors de l'invitation de l'utilisateur.",
);
}
const embed = new EmbedBuilder()
.setTitle("🛡️ Invitation à l'équipe")
.setDescription(`<@${userToInvite.id}> rejoint l\'équipe.`)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
sentMessage.edit({
embeds: [embed],
components: [],
allowedMentions: { repliedUser: false },
});
},
);
});
})();
});
},
};
+143 -101
View File
@@ -1,101 +1,143 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const {
const embedColor = require('../../fonctions/embedColor.js'); EmbedBuilder,
const db = require('../../fonctions/database.js'); ButtonStyle,
ButtonBuilder,
module.exports = { ActionRowBuilder,
aliases: ['teamleave'], } = require("discord.js");
description: 'Quitte une team.', const embedColor = require("../../fonctions/embedColor.js");
emote: '🛡️', const db = require("../../fonctions/database.js");
utilisation: '',
permission: 0, module.exports = {
aliases: ["teamleave"],
async execute(message, args, client) { description: "Quitte une team.",
await new Promise((resolve, reject) => { emote: "🛡️",
db.get(`SELECT teamId FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { utilisation: "",
if (err) { permission: 0,
reject(err);
} else { async execute(message, args, client) {
if (row.teamId === null ) { await new Promise((resolve, reject) => {
embedColor(message.author.id, message.guild.id).then(color => { db.get(
const embed = new EmbedBuilder() `SELECT teamId FROM users WHERE userId = ? AND guildId = ?`,
.setTitle('🛡️ Quitter une team') [message.author.id, message.guild.id],
.setDescription(`Vous n'êtes dans aucune team.`) (err, row) => {
.setColor(color) if (err) {
.setTimestamp() reject(err);
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) } else {
if (row.teamId === null) {
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) embedColor(message.author.id, message.guild.id).then((color) => {
}); const embed = new EmbedBuilder()
} else { .setTitle("🛡️ Quitter une team")
resolve(); .setDescription(`Vous n'êtes dans aucune team.`)
} .setColor(color)
} .setTimestamp()
}); .setFooter({
}); text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
await new Promise((resolve, reject) => { });
db.get(`SELECT teamRole FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => {
if (err) { return message.reply({
reject(err); embeds: [embed],
} else { allowedMentions: { repliedUser: false },
if (row.teamRole === 'owner') { });
embedColor(message.author.id, message.guild.id).then(color => { });
const embed = new EmbedBuilder() } else {
.setTitle('🛡️ Quitter une team') resolve();
.setDescription(`Vous êtes le leader de votre team. Vous devez nommer un autre membre leader avant de quitter la team. Pour cela, utilisez la commande \`&tpromote <membre>\` jusqu'à ce que vous ne soyez plus leader.`) }
.setColor(color) }
.setTimestamp() },
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) );
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
}); await new Promise((resolve, reject) => {
} else { db.get(
resolve(); `SELECT teamRole FROM users WHERE userId = ? AND guildId = ?`,
} [message.author.id, message.guild.id],
} (err, row) => {
}); if (err) {
}); reject(err);
} else {
if (row.teamRole === "owner") {
const embed = new EmbedBuilder() embedColor(message.author.id, message.guild.id).then((color) => {
.setTitle('🛡️ Quitter une team') const embed = new EmbedBuilder()
.setDescription(`Êtes-vous sûr de vouloir quitter votre team ?`) .setTitle("🛡️ Quitter une team")
.setColor(await embedColor(message.author.id, message.guild.id)) .setDescription(
.setTimestamp() `Vous êtes le leader de votre team. Vous devez nommer un autre membre leader avant de quitter la team. Pour cela, utilisez la commande \`&tpromote <membre>\` jusqu'à ce que vous ne soyez plus leader.`,
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); )
.setColor(color)
const confirmeButton = new ButtonBuilder() .setTimestamp()
.setCustomId('confirme') .setFooter({
.setLabel('✅') text: `Demandé par ${message.author.tag}`,
.setStyle(ButtonStyle.Primary); iconURL: message.author.displayAvatarURL(),
});
const row = new ActionRowBuilder()
.addComponents(confirmeButton); return message.reply({
embeds: [embed],
const messageTeam = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); allowedMentions: { repliedUser: false },
});
const filter = i => i.user.id === message.author.id; });
const collector = messageTeam.createMessageComponentCollector({ filter, time: 60000 }); } else {
collector.on('collect', async i => { resolve();
if (i.customId === 'confirme') { }
db.run(`UPDATE users SET teamId = NULL, teamRole = NULL WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], err => { }
if (err) { },
console.error(err); );
return i.reply('Une erreur est survenue.'); });
}
const embed = new EmbedBuilder()
embedColor(message.author.id, message.guild.id).then(color => { .setTitle("🛡️ Quitter une team")
const embed = new EmbedBuilder() .setDescription(`Êtes-vous sûr de vouloir quitter votre team ?`)
.setTitle('🛡️ Quitter une team') .setColor(await embedColor(message.author.id, message.guild.id))
.setDescription(`Vous avez quitté votre team.`) .setTimestamp()
.setColor(color) .setFooter({
.setTimestamp() text: `Demandé par ${message.author.tag}`,
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) iconURL: message.author.displayAvatarURL(),
});
return i.update({ embeds: [embed], components: [] });
}); const confirmeButton = new ButtonBuilder()
}); .setCustomId("confirme")
} .setLabel("✅")
}); .setStyle(ButtonStyle.Primary);
}
}; const row = new ActionRowBuilder().addComponents(confirmeButton);
const messageTeam = await message.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
});
const filter = (i) => i.user.id === message.author.id;
const collector = messageTeam.createMessageComponentCollector({
filter,
time: 60000,
});
collector.on("collect", async (i) => {
if (i.customId === "confirme") {
db.run(
`UPDATE users SET teamId = NULL, teamRole = NULL WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err) => {
if (err) {
console.error(err);
return i.reply("Une erreur est survenue.");
}
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle("🛡️ Quitter une team")
.setDescription(`Vous avez quitté votre team.`)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return i.update({ embeds: [embed], components: [] });
});
},
);
}
});
},
};
+94 -49
View File
@@ -1,84 +1,129 @@
const { EmbedBuilder } = require('discord.js'); const { EmbedBuilder } = require("discord.js");
const db = require('../../fonctions/database.js'); const db = require("../../fonctions/database.js");
const embedColor = require('../../fonctions/embedColor.js'); const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['teamrep'], aliases: ["teamrep"],
description: 'Ajoute un point de reputation à une team.', description: "Ajoute un point de reputation à une team.",
emote: '', emote: "",
utilisation: '<team-id>', utilisation: "<team-id>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
if (!args[0]) { if (!args[0]) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Ajout Impossible') .setTitle("Ajout Impossible")
.setDescription(`❌ Veuillez indiquer l'id une team.`) .setDescription(`❌ Veuillez indiquer l'id une team.`)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
const teamID = args[0].toLowerCase(); const teamID = args[0].toLowerCase();
const user = await new Promise((resolve, reject) => { const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
const lastTrep = user.lastTrep const lastTrep = user.lastTrep;
const team = await new Promise((resolve, reject) => { const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM teams WHERE guildId = ? AND id = ?`, [message.guild.id, teamID], async (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM teams WHERE guildId = ? AND id = ?`,
if (!row) { [message.guild.id, teamID],
return message.reply({ async (err, row) => {
embeds: [ if (err) reject(err);
new EmbedBuilder() if (!row) {
.setTitle('Erreur') return message.reply({
.setDescription('❌ La team spécifié n\'existe pas.') embeds: [
.setColor(await embedColor(message.author.id, message.guild.id)) new EmbedBuilder()
.setTimestamp() .setTitle("Erreur")
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setDescription("❌ La team spécifié n'existe pas.")
], allowedMentions: { repliedUser: false } .setColor(
}); await embedColor(message.author.id, message.guild.id),
} )
resolve(parseInt(row.reputation)); .setTimestamp()
}); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
resolve(parseInt(row.reputation));
},
);
}); });
if (lastTrep > Date.now() - 5400000) { if (lastTrep > Date.now() - 5400000) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Ajout Impossible') .setTitle("Ajout Impossible")
.setDescription(`❌ Vous avez déjà ajouter une reputation récemment. Veuillez attendre ${Math.floor((lastTrep + 5400000 - Date.now()) / 60000)} minutes avant de pouvoir ajouter une reputation à nouveau.`) .setDescription(
`❌ Vous avez déjà ajouter une reputation récemment. Veuillez attendre ${Math.floor((lastTrep + 5400000 - Date.now()) / 60000)} minutes avant de pouvoir ajouter une reputation à nouveau.`,
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
db.run(`UPDATE users SET lastTrep =? WHERE guildId =? AND userId =?`, [Date.now(), message.guild.id, message.author.id], (err) => { db.run(
if (err) { `UPDATE users SET lastTrep =? WHERE guildId =? AND userId =?`,
console.log(`${err}`.red) [Date.now(), message.guild.id, message.author.id],
} (err) => {
}); if (err) {
console.log(`${err}`.red);
}
},
);
db.run(`UPDATE teams SET reputation = reputation + 1 WHERE guildId =? AND id =?`, [message.guild.id, teamID], (err) => { db.run(
if (err) { `UPDATE teams SET reputation = reputation + 1 WHERE guildId =? AND id =?`,
console.log(`${err}`.red) [message.guild.id, teamID],
} (err) => {
}); if (err) {
console.log(`${err}`.red);
}
},
);
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Reputation ajouté !') .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)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}, },
}; };
+2 -2
View File
@@ -1,3 +1,3 @@
{ {
"owners": ["1066067393123733595", "671763971803447298"] "owners": ["1066067393123733595", "671763971803447298"]
} }
+18 -12
View File
@@ -1,12 +1,18 @@
const { Events } = require('discord.js'); const { Events } = require("discord.js");
const db = require('../fonctions/database.js'); const db = require("../fonctions/database.js");
module.exports = { module.exports = {
name: Events.GuildCreate, name: Events.GuildCreate,
async execute(guild) { async execute(guild) {
db.run(`INSERT OR IGNORE INTO config (guildId, name, value) VALUES (?, ?, ?)`, [guild.id, 'prefix', '&']); db.run(
guild.members.cache.forEach(member => { `INSERT OR IGNORE INTO config (guildId, name, value) VALUES (?, ?, ?)`,
db.run(`INSERT OR IGNORE INTO users (guildId, userId) VALUES (?, ?)`, [guild.id, member.id]); [guild.id, "prefix", "&"],
}); );
}, guild.members.cache.forEach((member) => {
}; db.run(`INSERT OR IGNORE INTO users (guildId, userId) VALUES (?, ?)`, [
guild.id,
member.id,
]);
});
},
};
+12 -9
View File
@@ -1,9 +1,12 @@
const { Events } = require('discord.js'); const { Events } = require("discord.js");
const db = require('../fonctions/database.js'); const db = require("../fonctions/database.js");
module.exports = { module.exports = {
name: Events.GuildMemberAdd, name: Events.GuildMemberAdd,
async execute(member) { async execute(member) {
db.run(`INSERT INTO users (guildId, userId) VALUES (?, ?)`, [member.guild.id, member.id]); db.run(`INSERT INTO users (guildId, userId) VALUES (?, ?)`, [
}, member.guild.id,
}; member.id,
]);
},
};
+71 -45
View File
@@ -1,45 +1,71 @@
const { Message, Events } = require("discord.js"); const { Message, Events } = require("discord.js");
const db = require('../fonctions/database.js'); const db = require("../fonctions/database.js");
var loggT = require('../loggerT.js'); var loggT = require("../loggerT.js");
var loggE = require('../loggerE.js'); var loggE = require("../loggerE.js");
const getPermissionLevel = require("../fonctions/getPermissionLevel.js"); const getPermissionLevel = require("../fonctions/getPermissionLevel.js");
module.exports = { module.exports = {
name: Events.MessageCreate, name: Events.MessageCreate,
async execute(message, client) { async execute(message, client) {
if (message.author.bot) return; if (message.author.bot) return;
const user = await new Promise((resolve, reject) => { const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, message.author.id],
}); (err, row) => {
}); if (err) reject(err);
if (user.blacklist == true) { return } resolve(row);
},
const prefix = db.get(`SELECT value FROM config WHERE guildId = ? AND name = ?`, [message.guild.id, 'prefix'])?.value || '&'; );
if (message.content.startsWith(prefix)) { });
const args = message.content.slice(prefix.length).trim().split(/ +/); if (user.blacklist == true) {
const commandName = args.shift()?.toLowerCase(); return;
}
const command = client.commands.get(commandName);
if (!command) return; const prefix =
db.get(`SELECT value FROM config WHERE guildId = ? AND name = ?`, [
const permissionLevel = await getPermissionLevel(message.guild.id, message.member); message.guild.id,
if ((permissionLevel < command.permission) && (!client.config.owners.includes(message.author.id))) { "prefix",
return message.reply("Vous n'avez pas la permission d'utiliser cette commande."); ])?.value || "&";
} if (message.content.startsWith(prefix)) {
const args = message.content.slice(prefix.length).trim().split(/ +/);
try { const commandName = args.shift()?.toLowerCase();
command.execute(message, args, client);
console.log(`[${prefix}}] ${message.guild.name} | ${message.author.tag} | ${command.name}`.blue) const command = client.commands.get(commandName);
loggT(`[${prefix}] ${message.guild.name} | ${message.author.tag} | ${command.name}`) if (!command) return;
} catch (error) {
console.error(error); const permissionLevel = await getPermissionLevel(
loggE(error) message.guild.id,
message.reply("Erreur lors de l'exécution de la commande"); message.member,
} );
} else if (message.content === `<@!${client.user.id}>` || message.content === `<@${client.user.id}>`) { if (
message.reply(`Mon prefix est \`${prefix}\``); permissionLevel < command.permission &&
} !client.config.owners.includes(message.author.id)
} ) {
}; return message.reply(
"Vous n'avez pas la permission d'utiliser cette commande.",
);
}
try {
command.execute(message, args, client);
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}>`
) {
message.reply(`Mon prefix est \`${prefix}\``);
}
},
};
+22 -9
View File
@@ -8,14 +8,20 @@ module.exports = {
async execute(message, client) { async execute(message, client) {
if (message.channel.type === "DM") return; if (message.channel.type === "DM") return;
if (message.author.bot) return; if (message.author.bot) return;
const user = await new Promise((resolve, reject) => { const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [message.guild.id, message.author.id],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
if (user.blacklist == true) { return } if (user.blacklist == true) {
return;
}
////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////
/////////////////////////// xp systeme /////////////////////////// /////////////////////////// xp systeme ///////////////////////////
@@ -37,7 +43,6 @@ module.exports = {
]); ]);
} }
////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////
/////////////////////////// lvl systeme ////////////////////////// /////////////////////////// lvl systeme //////////////////////////
////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////
@@ -45,12 +50,20 @@ module.exports = {
if (user.xp >= 100 * user.lvl) { if (user.xp >= 100 * user.lvl) {
db.run( db.run(
`UPDATE users SET xp = xp - ?, lvl = lvl + 1, pocket = pocket + ?, reputation = reputation + ? WHERE guildId = ? AND userId = ?`, `UPDATE users SET xp = xp - ?, lvl = lvl + 1, pocket = pocket + ?, reputation = reputation + ? WHERE guildId = ? AND userId = ?`,
[100 * user.lvl, ((user.lvl + 1) * 250), 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() const embedlvl = new EmbedBuilder()
.setTitle("Nouveau niveau !") .setTitle("Nouveau niveau !")
.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)}\` 🔺 !`) .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)); .setColor(await embedColor(message.author.id, message.guild.id));
message.author.send({ embeds: [embedlvl] }); message.author.send({ embeds: [embedlvl] });
+161 -117
View File
@@ -1,117 +1,161 @@
const { Events, ActivityType } = require('discord.js'); const { Events, ActivityType } = require("discord.js");
const db = require('../fonctions/database.js'); const db = require("../fonctions/database.js");
var loggT = require('../loggerT.js'); var loggT = require("../loggerT.js");
var loggE = require('../loggerE.js'); var loggE = require("../loggerE.js");
module.exports = { module.exports = {
name: Events.ClientReady, name: Events.ClientReady,
async execute(client) { async execute(client) {
console.log(`[READY] ${client.user.tag} est prêt ||| ${client.guilds.cache.size} serveurs | ${client.guilds.cache.reduce((acc, guild) => acc + guild.memberCount, 0)} utilisateurs\n`.green); console.log(
loggT(`\n\n`) `[READY] ${client.user.tag} est prêt ||| ${client.guilds.cache.size} serveurs | ${client.guilds.cache.reduce((acc, guild) => acc + guild.memberCount, 0)} utilisateurs\n`
loggT(`[READY] ${client.user.tag} est prêt ||| ${client.guilds.cache.size} serveurs | ${client.guilds.cache.reduce((acc, guild) => acc + guild.memberCount, 0)} utilisateurs`); .green,
);
console.log('setPresence : ...') loggT(`\n\n`);
client.user.setPresence({ loggT(
activities: [{ `[READY] ${client.user.tag} est prêt ||| ${client.guilds.cache.size} serveurs | ${client.guilds.cache.reduce((acc, guild) => acc + guild.memberCount, 0)} utilisateurs`,
name: '/azelie', );
type: ActivityType.Streaming,
url: 'https://twitch.tv/tuturp33' console.log("setPresence : ...");
}], client.user.setPresence({
status: 'online' activities: [
}); {
console.log('setPresence : OK') name: "/azelie",
type: ActivityType.Streaming,
url: "https://twitch.tv/tuturp33",
client.guilds.cache.forEach(guild => { },
console.log('BD update : ...') ],
db.run(`INSERT OR IGNORE INTO config (guildId, name, value) VALUES (?, ?, ?)`, [guild.id, 'prefix', '&']); status: "online",
guild.members.cache.forEach(member => { });
db.run(`INSERT OR IGNORE INTO users (guildId, userId) VALUES (?, ?)`, [guild.id, member.id]); console.log("setPresence : OK");
});
console.log('BD update : OK') client.guilds.cache.forEach((guild) => {
}); console.log("BD update : ...");
db.run(
`INSERT OR IGNORE INTO config (guildId, name, value) VALUES (?, ?, ?)`,
setInterval(async () => { [guild.id, "prefix", "&"],
console.log('Recompense vocal : ...') );
client.guilds.cache.forEach(guild => { guild.members.cache.forEach((member) => {
guild.members.cache.filter(member => member.voice.channel).forEach(member => { db.run(`INSERT OR IGNORE INTO users (guildId, userId) VALUES (?, ?)`, [
if (member.voice.selfMute == true) { guild.id,
db.run('UPDATE users SET pocket = pocket + 50 WHERE guildId = ? AND userId = ?', [guild.id, member.id]); member.id,
db.run('UPDATE users SET xp = xp + 5 WHERE guildId = ? AND userId = ?', [guild.id, member.id]); ]);
});
} else { console.log("BD update : OK");
db.run('UPDATE users SET pocket = pocket + 100 WHERE guildId = ? AND userId = ?', [guild.id, member.id]); });
db.run('UPDATE users SET xp = xp + 10 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
} setInterval(
}); async () => {
guild.members.cache.filter(member => member.voice.channel && member.voice.streaming).forEach(member => { console.log("Recompense vocal : ...");
db.run('UPDATE users SET pocket = pocket + 200 WHERE guildId = ? AND userId = ?', [guild.id, member.id]); client.guilds.cache.forEach((guild) => {
db.run('UPDATE users SET xp = xp + 20 WHERE guildId = ? AND userId = ?', [guild.id, member.id]); guild.members.cache
.filter((member) => member.voice.channel)
}); .forEach((member) => {
guild.members.cache.filter(member => member.voice.channel && member.voice.selfVideo).forEach(member => { if (member.voice.selfMute == true) {
db.run('UPDATE users SET pocket = pocket + 200 WHERE guildId = ? AND userId = ?', [guild.id, member.id]); db.run(
db.run('UPDATE users SET xp = xp + 20 WHERE guildId = ? AND userId = ?', [guild.id, member.id]); "UPDATE users SET pocket = pocket + 50 WHERE guildId = ? AND userId = ?",
}); [guild.id, member.id],
}); );
console.log('Recompense vocal : OK') db.run(
}, 15 * 60 * 1000); "UPDATE users SET xp = xp + 5 WHERE guildId = ? AND userId = ?",
[guild.id, member.id],
setInterval(async () => { );
console.log('Bâtiment : ...') } else {
const team = await new Promise((resolve, reject) => { db.run(
db.get(`SELECT * FROM teams`, (err, row) => { "UPDATE users SET pocket = pocket + 100 WHERE guildId = ? AND userId = ?",
if (err) reject(err); [guild.id, member.id],
resolve(row); );
}); db.run(
}); "UPDATE users SET xp = xp + 10 WHERE guildId = ? AND userId = ?",
[guild.id, member.id],
if (team.location == 0) return );
db.run(`UPDATE teams SET bank = bank + ?`, [team.location]); }
console.log('Bâtiment : OK') });
}, 1 * 60 * 1000) guild.members.cache
.filter((member) => member.voice.channel && member.voice.streaming)
//AntiCrash .forEach((member) => {
process.on('unhandledRejection', (error) => { db.run(
if (error.code == "10064") return "UPDATE users SET pocket = pocket + 200 WHERE guildId = ? AND userId = ?",
if (error.code == "10008") return [guild.id, member.id],
console.log(' [antiCrash] :: Unhandled Rejection/Catch'.red); );
console.log(`${error}`.grey); db.run(
loggE(error) "UPDATE users SET xp = xp + 20 WHERE guildId = ? AND userId = ?",
}); [guild.id, member.id],
);
process.on("uncaughtException", (error, origin) => { });
if (error.code == "10064") return guild.members.cache
if (error.code == "10008") return .filter((member) => member.voice.channel && member.voice.selfVideo)
console.log(' [antiCrash] :: Uncaught Exception/Catch'.red); .forEach((member) => {
console.log(`${error}`.grey); db.run(
console.log('Information supplémentaire:', origin); "UPDATE users SET pocket = pocket + 200 WHERE guildId = ? AND userId = ?",
loggE(error) [guild.id, member.id],
}); );
db.run(
process.on('uncaughtExceptionMonitor', (error, origin) => { "UPDATE users SET xp = xp + 20 WHERE guildId = ? AND userId = ?",
if (error.code == "10064") return [guild.id, member.id],
if (error.code == "10008") return );
console.log(' [antiCrash] :: Uncaught Exception Monitor/Catch'.red); });
console.log(`${error}`.grey); });
console.log('Information supplémentaire:', origin); console.log("Recompense vocal : OK");
loggE(error) },
}); 15 * 60 * 1000,
);
process.on('beforeExit', (code) => {
if (error.code == "10064") return setInterval(
if (error.code == "10008") return async () => {
console.log(' [antiCrash] :: Before Exit'.red); console.log("Bâtiment : ...");
console.log('Code de sortie:', code); const team = await new Promise((resolve, reject) => {
}); db.get(`SELECT * FROM teams`, (err, row) => {
if (err) reject(err);
process.on('exit', (code) => { resolve(row);
if (error.code == "10064") return });
if (error.code == "10008") return });
console.log(' [antiCrash] :: Exit'.red);
console.log('Code de sortie:', code); if (team.location == 0) return;
}); db.run(`UPDATE teams SET bank = bank + ?`, [team.location]);
console.log("Bâtiment : OK");
}, },
}; 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}`.grey);
loggE(error);
});
process.on("uncaughtException", (error, origin) => {
if (error.code == "10064") return;
if (error.code == "10008") return;
console.log(" [antiCrash] :: Uncaught Exception/Catch".red);
console.log(`${error}`.grey);
console.log("Information supplémentaire:", origin);
loggE(error);
});
process.on("uncaughtExceptionMonitor", (error, origin) => {
if (error.code == "10064") return;
if (error.code == "10008") return;
console.log(" [antiCrash] :: Uncaught Exception Monitor/Catch".red);
console.log(`${error}`.grey);
console.log("Information supplémentaire:", origin);
loggE(error);
});
process.on("beforeExit", (code) => {
if (error.code == "10064") return;
if (error.code == "10008") return;
console.log(" [antiCrash] :: Before Exit".red);
console.log("Code de sortie:", code);
});
process.on("exit", (code) => {
if (error.code == "10064") return;
if (error.code == "10008") return;
console.log(" [antiCrash] :: Exit".red);
console.log("Code de sortie:", code);
});
},
};
+85 -85
View File
@@ -1,85 +1,85 @@
const sqlite3 = require('sqlite3').verbose(); const sqlite3 = require("sqlite3").verbose();
let db = new sqlite3.Database('./db.sqlite'); let db = new sqlite3.Database("./db.sqlite");
db.run(`CREATE TABLE IF NOT EXISTS config ( db.run(`CREATE TABLE IF NOT EXISTS config (
guildId TEXT, guildId TEXT,
name TEXT, name TEXT,
value TEXT, value TEXT,
PRIMARY KEY (guildId, name) PRIMARY KEY (guildId, name)
)`); )`);
db.run(`CREATE TABLE IF NOT EXISTS users ( db.run(`CREATE TABLE IF NOT EXISTS users (
guildId TEXT, guildId TEXT,
userId TEXT, userId TEXT,
pocket INTEGER DEFAULT 0, pocket INTEGER DEFAULT 0,
bank INTEGER DEFAULT 0, bank INTEGER DEFAULT 0,
reputation INTEGER DEFAULT 0, reputation INTEGER DEFAULT 0,
lvl INTERGER DEFAULT 0, lvl INTERGER DEFAULT 0,
xp INTERGER DEFAULT 0, xp INTERGER DEFAULT 0,
objet INTERGER DEFAULT 0, objet INTERGER DEFAULT 0,
key INTERGER DEFAULT 0, key INTERGER DEFAULT 0,
buyer BOOLEAN DEFAULT FALSE, buyer BOOLEAN DEFAULT FALSE,
owner BOOLEAN DEFAULT FALSE, owner BOOLEAN DEFAULT FALSE,
whitelist BOOLEAN DEFAULT FALSE, whitelist BOOLEAN DEFAULT FALSE,
blacklist BOOLEAN DEFAULT FALSE, blacklist BOOLEAN DEFAULT FALSE,
antiRob INTEGER DEFAULT 0, antiRob INTEGER DEFAULT 0,
lastRob INTEGER DEFAULT 0, lastRob INTEGER DEFAULT 0,
lastRecolt INTEGER DEFAULT 0, lastRecolt INTEGER DEFAULT 0,
lastWork INTEGER DEFAULT 0, lastWork INTEGER DEFAULT 0,
lastDaily INTEGER DEFAULT 0, lastDaily INTEGER DEFAULT 0,
lastRep INTERGER DEFAULT 0, lastRep INTERGER DEFAULT 0,
lastTrep INTERGER DEFAULT 0, lastTrep INTERGER DEFAULT 0,
lastArep INTERGER DEFAULT 0, lastArep INTERGER DEFAULT 0,
lastHack INTERGER DEFAULT 0, lastHack INTERGER DEFAULT 0,
lastKill INTERGER DEFAULT 0, lastKill INTERGER DEFAULT 0,
lastBraquage INTERGER DEFAULT 0, lastBraquage INTERGER DEFAULT 0,
job TEXT, job TEXT,
teamId TEXT, teamId TEXT,
teamRole TEXT, teamRole TEXT,
teamDroper INTERGER DEFAULT 0, teamDroper INTERGER DEFAULT 0,
embed TEXT, embed TEXT,
PRIMARY KEY (guildId, userId) PRIMARY KEY (guildId, userId)
)`); )`);
db.run(`CREATE TABLE IF NOT EXISTS teams ( db.run(`CREATE TABLE IF NOT EXISTS teams (
guildId TEXT, guildId TEXT,
id TEXT, id TEXT,
name TEXT, name TEXT,
description TEXT, description TEXT,
icon TEXT, icon TEXT,
banner TEXT, banner TEXT,
reputation INTERGER DEFAULT 0, reputation INTERGER DEFAULT 0,
bank INTEGER DEFAULT 0, bank INTEGER DEFAULT 0,
location INTERGER DEFAULT 0, location INTERGER DEFAULT 0,
level INTEGER DEFAULT 1, level INTEGER DEFAULT 1,
padlock INTEGER DEFAULT 5, padlock INTEGER DEFAULT 5,
soldiers INTEGER DEFAULT 0, soldiers INTEGER DEFAULT 0,
woundedSoldiers INTEGER DEFAULT 0, woundedSoldiers INTEGER DEFAULT 0,
campLevel INTEGER DEFAULT 1, campLevel INTEGER DEFAULT 1,
turrets INTEGER DEFAULT 0, turrets INTEGER DEFAULT 0,
alliancesId TEXT, alliancesId TEXT,
PRIMARY KEY (guildId, id) PRIMARY KEY (guildId, id)
)`); )`);
db.run(`CREATE TABLE IF NOT EXISTS alliances ( db.run(`CREATE TABLE IF NOT EXISTS alliances (
guildId TEXT, guildId TEXT,
id TEXT, id TEXT,
creator TEXT, creator TEXT,
name TEXT, name TEXT,
description TEXT, description TEXT,
icon TEXT, icon TEXT,
banner TEXT, banner TEXT,
reputation INTERGER DEFAULT 0, reputation INTERGER DEFAULT 0,
bank INTEGER DEFAULT 0, bank INTEGER DEFAULT 0,
PRIMARY KEY (guildId, id) PRIMARY KEY (guildId, id)
)`); )`);
db.run(`CREATE TABLE IF NOT EXISTS rolePermission ( db.run(`CREATE TABLE IF NOT EXISTS rolePermission (
guildId TEXT, guildId TEXT,
roleId TEXT, roleId TEXT,
permission INTEGER, permission INTEGER,
PRIMARY KEY (guildId, permission) PRIMARY KEY (guildId, permission)
)`); )`);
module.exports = db; module.exports = db;
+51 -37
View File
@@ -1,37 +1,51 @@
const db = require('./database.js'); const db = require("./database.js");
module.exports = async function embedColor(memberId, serverId) { module.exports = async function embedColor(memberId, serverId) {
const user = await new Promise((resolve, reject) => { const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [serverId, memberId], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM users WHERE guildId = ? AND userId = ?`,
resolve(row); [serverId, memberId],
}); (err, row) => {
}); if (err) reject(err);
let embedColor = user.embed; resolve(row);
if (embedColor === 'random') { },
const colors = ['red', 'orange', 'yellow', 'green', 'blue', 'purple', 'brown', 'black', 'white']; );
embedColor = colors[Math.floor(Math.random() * colors.length)]; });
} let embedColor = user.embed;
if (!embedColor) { if (embedColor === "random") {
embedColor = '#FFD700'; const colors = [
} else if (embedColor === 'red') { "red",
embedColor = '#FF0000'; "orange",
} else if (embedColor === 'orange') { "yellow",
embedColor = '#FFA500'; "green",
} else if (embedColor === 'yellow') { "blue",
embedColor = '#FFFF00'; "purple",
} else if (embedColor === 'green') { "brown",
embedColor = '#008000'; "black",
} else if (embedColor === 'blue') { "white",
embedColor = '#0000FF'; ];
} else if (embedColor === 'purple') { embedColor = colors[Math.floor(Math.random() * colors.length)];
embedColor = '#800080'; }
} else if (embedColor === 'brown') { if (!embedColor) {
embedColor = '#A52A2A'; embedColor = "#FFD700";
} else if (embedColor === 'black') { } else if (embedColor === "red") {
embedColor = '#000000'; embedColor = "#FF0000";
} else if (embedColor === 'white') { } else if (embedColor === "orange") {
embedColor = '#FFFFFF'; embedColor = "#FFA500";
} } else if (embedColor === "yellow") {
return embedColor; embedColor = "#FFFF00";
} } else if (embedColor === "green") {
embedColor = "#008000";
} else if (embedColor === "blue") {
embedColor = "#0000FF";
} else if (embedColor === "purple") {
embedColor = "#800080";
} else if (embedColor === "brown") {
embedColor = "#A52A2A";
} else if (embedColor === "black") {
embedColor = "#000000";
} else if (embedColor === "white") {
embedColor = "#FFFFFF";
}
return embedColor;
};
+13 -9
View File
@@ -1,15 +1,19 @@
const db = require('./database.js'); const db = require("./database.js");
module.exports = async function getPermissionLevel(serverId, user) { module.exports = async function getPermissionLevel(serverId, user) {
const roles = user.roles.cache.map(role => role.id); const roles = user.roles.cache.map((role) => role.id);
const perms = await new Promise((resolve, reject) => { const perms = await new Promise((resolve, reject) => {
db.all(`SELECT * FROM rolePermission WHERE guildId = ? AND roleId IN (${roles.map(() => '?').join(',')})`, [serverId, ...roles], (err, rows) => { db.all(
if (err) reject(err); `SELECT * FROM rolePermission WHERE guildId = ? AND roleId IN (${roles.map(() => "?").join(",")})`,
resolve(rows); [serverId, ...roles],
}); (err, rows) => {
if (err) reject(err);
resolve(rows);
},
);
}); });
const highestPermission = Math.max(...perms.map(perm => perm.permission)); const highestPermission = Math.max(...perms.map((perm) => perm.permission));
return highestPermission; return highestPermission;
} };
+11 -7
View File
@@ -1,12 +1,16 @@
const db = require('./database.js'); const db = require("./database.js");
module.exports = async function getPrefix(serverId) { module.exports = async function getPrefix(serverId) {
const prefix = await new Promise((resolve, reject) => { const prefix = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM config WHERE guildId = ? AND name = ?`, [serverId, 'prefix'], (err, row) => { db.get(
if (err) reject(err); `SELECT * FROM config WHERE guildId = ? AND name = ?`,
resolve(row); [serverId, "prefix"],
}); (err, row) => {
if (err) reject(err);
resolve(row);
},
);
}); });
return prefix ? prefix.value : '&'; return prefix ? prefix.value : "&";
} };
+35 -35
View File
@@ -1,35 +1,35 @@
const fs = require('fs'); const fs = require("fs");
const path = require('path'); const path = require("path");
module.exports = function loadCommands(client, dir) { module.exports = function loadCommands(client, dir) {
let count = 0; let count = 0;
fs.readdirSync(path.join(__dirname, dir)).forEach((file) => { fs.readdirSync(path.join(__dirname, dir)).forEach((file) => {
const filePath = path.join(__dirname, dir, file); const filePath = path.join(__dirname, dir, file);
if (fs.statSync(filePath).isDirectory()) { if (fs.statSync(filePath).isDirectory()) {
count += loadCommands(client, path.join(dir, file)); count += loadCommands(client, path.join(dir, file));
} else if (file.endsWith('.js') || file.endsWith('.ts')) { } else if (file.endsWith(".js") || file.endsWith(".ts")) {
try { try {
delete require.cache[require.resolve(filePath)]; delete require.cache[require.resolve(filePath)];
const command = require(filePath); const command = require(filePath);
const fileName = file.replace(/\.js|\.ts/g, ''); const fileName = file.replace(/\.js|\.ts/g, "");
if (!command.name) command.name = fileName; if (!command.name) command.name = fileName;
if (!command.category) { if (!command.category) {
const parentDir = path.basename(path.dirname(filePath)); const parentDir = path.basename(path.dirname(filePath));
command.category = parentDir === 'commands' ? 'other' : parentDir; command.category = parentDir === "commands" ? "other" : parentDir;
} }
if (!command.permission) command.permission = 0; if (!command.permission) command.permission = 0;
client.commands.set(fileName, command); client.commands.set(fileName, command);
if (command.aliases) { if (command.aliases) {
command.aliases.forEach((alias) => { command.aliases.forEach((alias) => {
client.commands.set(alias, command); client.commands.set(alias, command);
}); });
} }
count++; count++;
} catch (error) { } catch (error) {
console.error(`Failed to load file: ${filePath}`); console.error(`Failed to load file: ${filePath}`);
console.error(error); console.error(error);
} }
} }
}); });
return count; return count;
} };
+22 -22
View File
@@ -1,22 +1,22 @@
const fs = require('fs'); const fs = require("fs");
const path = require('path'); const path = require("path");
module.exports = function loadEvents(client, dir) { module.exports = function loadEvents(client, dir) {
let count = 0; let count = 0;
fs.readdirSync(path.join(__dirname, dir)).forEach((file) => { fs.readdirSync(path.join(__dirname, dir)).forEach((file) => {
const filePath = path.join(__dirname, dir, file); const filePath = path.join(__dirname, dir, file);
if (fs.statSync(filePath).isDirectory()) { if (fs.statSync(filePath).isDirectory()) {
loadEvents(client, path.join(dir, file)); loadEvents(client, path.join(dir, file));
} else if (file.endsWith('.js') || file.endsWith('.ts')) { } else if (file.endsWith(".js") || file.endsWith(".ts")) {
delete require.cache[require.resolve(filePath)]; delete require.cache[require.resolve(filePath)];
const event = require(filePath); const event = require(filePath);
if (typeof event.execute === 'function') { if (typeof event.execute === "function") {
client.on(event.name, (...args) => event.execute(...args, client)); // Specify the type of 'args' as an array of any type client.on(event.name, (...args) => event.execute(...args, client)); // Specify the type of 'args' as an array of any type
count++; count++;
} else { } else {
console.error(`Event ${event.name} does not have an execute method.`); console.error(`Event ${event.name} does not have an execute method.`);
} }
} }
}); });
return count; return count;
} };
+28 -28
View File
@@ -1,4 +1,4 @@
const fs = require("fs") const fs = require("fs");
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////// //////////
@@ -7,32 +7,32 @@ const fs = require("fs")
///////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function saveLOGE(LOG) { function saveLOGE(LOG) {
try { try {
let data = fs.readFileSync('logs/ERROR.txt', 'utf8'); let data = fs.readFileSync("logs/ERROR.txt", "utf8");
const log = data.split('\n'); const log = data.split("\n");
log.push(...LOG); log.push(...LOG);
data = log.join('\n'); data = log.join("\n");
fs.writeFileSync('logs/ERROR.txt', data); fs.writeFileSync("logs/ERROR.txt", data);
} catch (err) { } catch (err) {
console.log(err); console.log(err);
} }
} }
module.exports = function loggE(erreur) { module.exports = function loggE(erreur) {
const config = require("./config.json"); const config = require("./config.json");
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ TIME ///////////////////////////////////////////////////////////////////////////// //*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ TIME /////////////////////////////////////////////////////////////////////////////
const d = new Date() const d = new Date();
var jours = d.getDate().toString().padStart(2, "0") var jours = d.getDate().toString().padStart(2, "0");
var mois = d.getMonth().toString().padStart(2, "0") + 1 var mois = d.getMonth().toString().padStart(2, "0") + 1;
var année = d.getFullYear().toString().padStart(2, "0") var année = d.getFullYear().toString().padStart(2, "0");
var heures = d.getHours().toString().padStart(2, "0") var heures = d.getHours().toString().padStart(2, "0");
var minutes = d.getMinutes().toString().padStart(2, "0") var minutes = d.getMinutes().toString().padStart(2, "0");
var secondes = d.getSeconds().toString().padStart(2, "0") var secondes = d.getSeconds().toString().padStart(2, "0");
var milliseconds = d.getMilliseconds().toString().padStart(3, "0") var milliseconds = d.getMilliseconds().toString().padStart(3, "0");
const time = ` ${jours}/${mois}/${année} =>> ${heures}h ${minutes}m ${secondes}s ${milliseconds}ms ` const time = ` ${jours}/${mois}/${année} =>> ${heures}h ${minutes}m ${secondes}s ${milliseconds}ms `;
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ CODE DE LOG /////////////////////////////////////////////////////////////////////// //*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ CODE DE LOG ///////////////////////////////////////////////////////////////////////
const text = erreur const text = erreur;
const ERROR = `[ERROR] || ${time} || ${text}` const ERROR = `[ERROR] || ${time} || ${text}`;
const LOG = []; const LOG = [];
LOG.push(ERROR); LOG.push(ERROR);
saveLOGE(LOG); saveLOGE(LOG);
} };
+39 -40
View File
@@ -1,4 +1,4 @@
const fs = require("fs") const fs = require("fs");
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////// //////////
@@ -7,45 +7,44 @@ const fs = require("fs")
///////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function saveLOGT(LOG) { function saveLOGT(LOG) {
try { try {
let data = fs.readFileSync('logs/TEXT.txt', 'utf8'); let data = fs.readFileSync("logs/TEXT.txt", "utf8");
const log = data.split('\n'); const log = data.split("\n");
log.push(...LOG); log.push(...LOG);
data = log.join('\n'); data = log.join("\n");
fs.writeFileSync('logs/TEXT.txt', data); fs.writeFileSync("logs/TEXT.txt", data);
} catch (err) { } catch (err) {
console.log(err); console.log(err);
} }
} }
module.exports = function loggT(msg) { module.exports = function loggT(msg) {
const config = require("./config.json"); const config = require("./config.json");
if (config.test == true) { if (config.test == true) {
return return;
} }
if (!msg == "\n" || !msg == "\n\n") { if (!msg == "\n" || !msg == "\n\n") {
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ TIME ///////////////////////////////////////////////////////////////////////////// //*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ TIME /////////////////////////////////////////////////////////////////////////////
const d = new Date() const d = new Date();
var jours = d.getDate().toString().padStart(2, "0") var jours = d.getDate().toString().padStart(2, "0");
var mois = d.getMonth().toString().padStart(2, "0") var mois = d.getMonth().toString().padStart(2, "0");
var année = d.getFullYear().toString().padStart(2, "0") var année = d.getFullYear().toString().padStart(2, "0");
var heures = d.getHours().toString().padStart(2, "0") var heures = d.getHours().toString().padStart(2, "0");
var minutes = d.getMinutes().toString().padStart(2, "0") var minutes = d.getMinutes().toString().padStart(2, "0");
var secondes = d.getSeconds().toString().padStart(2, "0") var secondes = d.getSeconds().toString().padStart(2, "0");
var milliseconds = d.getMilliseconds().toString().padStart(3, "0") var milliseconds = d.getMilliseconds().toString().padStart(3, "0");
const time = ` ${jours}/${mois}/${année} =>> ${heures}h ${minutes}m ${secondes}s ${milliseconds}ms ` const time = ` ${jours}/${mois}/${année} =>> ${heures}h ${minutes}m ${secondes}s ${milliseconds}ms `;
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ CODE DE LOG /////////////////////////////////////////////////////////////////////// //*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ CODE DE LOG ///////////////////////////////////////////////////////////////////////
const text = msg const text = msg;
const MSG_T = `[TEXT] || ${time} || ${text}` const MSG_T = `[TEXT] || ${time} || ${text}`;
const LOG = []; const LOG = [];
LOG.push(MSG_T); LOG.push(MSG_T);
saveLOGT(LOG); saveLOGT(LOG);
} } else {
else { const MSG_T = `\n\n`;
const MSG_T = `\n\n` const LOG = [];
const LOG = []; LOG.push(MSG_T);
LOG.push(MSG_T); saveLOGT(LOG);
saveLOGT(LOG); }
} };
}
+19 -19
View File
@@ -1,19 +1,19 @@
require('dotenv').config(); require("dotenv").config();
const { Client, IntentsBitField, Collection } = require("discord.js"); const { Client, IntentsBitField, Collection } = require("discord.js");
const loadCommands = require("./fonctions/loadCommands"); const loadCommands = require("./fonctions/loadCommands");
const loadEvents = require("./fonctions/loadEvents"); const loadEvents = require("./fonctions/loadEvents");
const client = new Client({intents: new IntentsBitField(3276799)}); const client = new Client({ intents: new IntentsBitField(3276799) });
const color = require('colors') const color = require("colors");
var loggT = require('./loggerT.js'); var loggT = require("./loggerT.js");
var loggE = require('./loggerE.js'); var loggE = require("./loggerE.js");
client.events = new Collection(); client.events = new Collection();
client.commands = new Collection(); client.commands = new Collection();
client.config = require("./config.json"); client.config = require("./config.json");
console.log(`${loadEvents(client, '..\\events')} events loaded`.grey); console.log(`${loadEvents(client, "..\\events")} events loaded`.grey);
console.log(`${loadCommands(client, '..\\commands')} commands loaded`.grey); console.log(`${loadCommands(client, "..\\commands")} commands loaded`.grey);
loggT(`${loadEvents(client, '..\\events')} events loaded`) loggT(`${loadEvents(client, "..\\events")} events loaded`);
loggT(`${loadCommands(client, '..\\commands')} commands loaded`) loggT(`${loadCommands(client, "..\\commands")} commands loaded`);
client.login(process.env.TOKEN); client.login(process.env.TOKEN);