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
+137 -62
View File
@@ -1,129 +1,186 @@
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(
`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`,
[message.guild.id, message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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(
`SELECT * FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
if (row.teamRole !== 'owner') { if (row.teamRole !== "owner") {
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('🛡️ Création de alliance') .setTitle("🛡️ Création de alliance")
.setDescription(`Vous n'êtes pas proprietaire d'une team.`) .setDescription(`Vous n'êtes pas proprietaire d'une team.`)
.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 },
});
}); });
} else if (row.alliancesId) { } else if (row.alliancesId) {
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('🛡️ Création de alliance') .setTitle("🛡️ Création de alliance")
.setDescription(`Votre team a deja une alliance.`) .setDescription(`Votre team a deja une alliance.`)
.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 },
});
}); });
} else if (row.pocket < 3000) { } else if (row.pocket < 3000) {
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('🛡️ Création de alliance') .setTitle("🛡️ Création de alliance")
.setDescription(`Vous n'avez pas assez de fonds pour créer une alliance. Vous avez besoin de 3000coins.`) .setDescription(
`Vous n'avez pas assez de fonds pour créer une alliance. Vous avez besoin de 3000coins.`,
)
.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 },
});
}); });
} else { } else {
db.run(`UPDATE users SET pocket = pocket - 3000 WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id]); db.run(
`UPDATE users SET pocket = pocket - 3000 WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
);
resolve(); 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(
`SELECT * FROM alliances WHERE id = ? AND guildId = ?`,
[id, message.guild.id],
(err, row) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
@@ -132,21 +189,39 @@ module.exports = {
increment = increment + 1; increment = increment + 1;
id = idBase + increment; 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]); db.run(
db.run(`UPDATE teams SET alliancesId = ? WHERE guildId = ? AND id = ?`, [id, message.guild.id, team.id]); `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();
@@ -154,5 +229,5 @@ module.exports = {
}); });
} }
}); });
} },
}; };
+119 -48
View File
@@ -1,102 +1,173 @@
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(
`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`,
[message.guild.id, message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
}); },
);
}); });
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 teams WHERE guildId = ? AND id = ?)`, [message.guild.id, message.guild.id, team.id], (err, row) => { 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);
}); },
);
}); });
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(
`DELETE FROM alliances WHERE guildId = ? AND id = ? AND creator = ?`,
[message.guild.id, alliance.id, message.author.id],
async (err) => {
if (err) { if (err) {
return i.update({ content: 'Une erreur est survenue lors de la suppression de l\'alliance.', components: [] }); 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(
`UPDATE teams SET alliancesId = null WHERE guildId =? AND alliancesId =?`,
[message.guild.id, alliance.id],
async (err) => {
if (err) { if (err) {
return i.update({ content: 'Une erreur est survenue lors de la mise à jour des teams membres.', components: [] }); 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.`,
)
.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 i.update({ embeds: [embed], components: [] }); return i.update({ embeds: [embed], components: [] });
}); },
}); );
},
);
} else { } else {
await i.update({ content: 'Suppression de l\'alliance annulée.', components: [] }); 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: [],
});
}); });
}); });
} }
+98 -39
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(
`SELECT pocket FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row.pocket); 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(
`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM team WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?))`,
[message.guild.id, message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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 },
});
} }
}, },
}; };
+78 -32
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: "💰",
utilisation: "<id>",
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('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}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (args[0] < 3) { } else if (args[0] < 3) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Ajout de reputation') .setTitle("Ajout de reputation")
.setDescription('❌ Vous devez mettre l\'id d\'une alliance.') .setDescription("❌ Vous devez mettre l'id d'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 },
});
} }
const alliance = await new Promise((resolve, reject) => { const alliance = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM alliances WHERE guildId = ? AND id = ?`, [message.guild.id, args[0]], (err, row) => { db.get(
`SELECT * FROM alliances WHERE guildId = ? AND id = ?`,
[message.guild.id, args[0]],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
}); },
);
}); });
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row.lastRep); resolve(row.lastRep);
}); },
);
}); });
if (!alliance) { if (!alliance) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Ajout de reputation') .setTitle("Ajout de reputation")
.setDescription('❌ Alliance introuvable.') .setDescription("❌ Alliance introuvable.")
.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 (user.lastArep > Date.now() - 1800000) { } else if (user.lastArep > Date.now() - 1800000) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Ajout de reputation impossible') .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.`) .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)) .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 alliances SET reputation = reputation + 1 WHERE guildId = ? AND id = ?`, [message.guild.id, args[0]]); db.run(
`UPDATE alliances SET reputation = reputation + 1 WHERE guildId = ? AND id = ?`,
[message.guild.id, args[0]],
);
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Ajout de reputation effectué') .setTitle("Ajout de reputation effectué")
.setDescription('💰 Vous avez ajouter `1` reputation à l\`alliance `' + args[0] + '`.') .setDescription(
"💰 Vous avez ajouter `1` reputation à l`alliance `" + args[0] + "`.",
)
.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 },
});
} }
}, },
}; };
+155 -55
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(
`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM team WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?))`,
[message.guild.id, message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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(
"❌ Veuillez spécifier un type valide (rep|coins) :\n(`awith <rep|coins> <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 },
});
} }
},
}; };
+49 -21
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(
`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`,
[message.guild.id, message.guild.id, member.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
}); },
);
}); });
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 teams WHERE guildId = ? AND id = ?)`, [message.guild.id, message.guild.id, team.id], (err, row) => { 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);
}); },
);
}); });
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(
`SELECT name FROM teams WHERE guildId = ? AND alliancesId = ?`,
[message.guild.id, team.alliancesId],
(err, rows) => {
if (err) reject(err); if (err) reject(err);
resolve(rows); 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 },
});
} }
}, },
}; };
+134 -73
View File
@@ -1,150 +1,211 @@
const { EmbedBuilder, StringSelectMenuBuilder, ActionRowBuilder } = require('discord.js'); const {
const db = require('../../fonctions/database.js'); EmbedBuilder,
const embedColor = require('../../fonctions/embedColor.js'); StringSelectMenuBuilder,
ActionRowBuilder,
} = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: [], aliases: [],
description: 'Change la couleur de vos embed.', description: "Change la couleur de vos embed.",
emote: '🔵', emote: "🔵",
utilisation: '', utilisation: "",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🔵 Embed') .setTitle("🔵 Embed")
.setDescription(`Sélectionnez une couleur pour vos embeds`) .setDescription(`Sélectionnez une couleur pour vos embeds`)
.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('color') .setCustomId("color")
.setPlaceholder('Sélectionnez une couleur') .setPlaceholder("Sélectionnez une couleur")
.addOptions([ .addOptions([
{ {
label: '🔴 Rouge', label: "🔴 Rouge",
description: 'Prix : 3 rep🔺', description: "Prix : 3 rep🔺",
value: 'red', value: "red",
}, },
{ {
label: '🟠 Orange', label: "🟠 Orange",
description: 'Prix : 3 rep🔺', description: "Prix : 3 rep🔺",
value: 'orange', value: "orange",
}, },
{ {
label: '🟡 Jaune', label: "🟡 Jaune",
description: 'Prix : 3 rep🔺', description: "Prix : 3 rep🔺",
value: 'yellow', value: "yellow",
}, },
{ {
label: '🟢 Vert', label: "🟢 Vert",
description: 'Prix : 3 rep🔺', description: "Prix : 3 rep🔺",
value: 'green', value: "green",
}, },
{ {
label: '🔵 Bleu', label: "🔵 Bleu",
description: 'Prix : 3 rep🔺', description: "Prix : 3 rep🔺",
value: 'blue', value: "blue",
}, },
{ {
label: '🟣 Violet', label: "🟣 Violet",
description: 'Prix : 3 rep🔺', description: "Prix : 3 rep🔺",
value: 'purple', value: "purple",
}, },
{ {
label: '🟤 Marron', label: "🟤 Marron",
description: 'Prix : 3 rep🔺', description: "Prix : 3 rep🔺",
value: 'brown', value: "brown",
}, },
{ {
label: '⚫ Noir', label: "⚫ Noir",
description: 'Prix : 3 rep🔺', description: "Prix : 3 rep🔺",
value: 'black', value: "black",
}, },
{ {
label: '⚪ Blanc', label: "⚪ Blanc",
description: 'Prix : 3 rep🔺', description: "Prix : 3 rep🔺",
value: 'white', value: "white",
}, },
{ {
label: 'Aléatoire 🌈', label: "Aléatoire 🌈",
description: 'Prix : 5 rep🔺', description: "Prix : 5 rep🔺",
value: 'random', value: "random",
}, },
]); ]);
const row = new ActionRowBuilder() const row = new ActionRowBuilder().addComponents(select);
.addComponents(select);
const embedMessage = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); const embedMessage = await message.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
});
const filter = (interaction) => interaction.user.id === message.author.id; const filter = (interaction) => interaction.user.id === message.author.id;
const collector = embedMessage.createMessageComponentCollector({ filter, time: 60000 }); const collector = embedMessage.createMessageComponentCollector({
collector.on('collect', async (interaction) => { filter,
time: 60000,
});
collector.on("collect", async (interaction) => {
if (interaction.isStringSelectMenu()) { if (interaction.isStringSelectMenu()) {
if (!client.user) return if (!client.user) return;
const value = interaction.values[0]; const value = interaction.values[0];
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
}); },
);
}); });
const reputation = user.reputation; const reputation = user.reputation;
if (value === 'random') { if (value === "random") {
if (reputation < 5) { if (reputation < 5) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Vous n\'avez pas assez de réputations pour acheter cette couleur.') .setDescription(
"❌ Vous n'avez pas assez de réputations pour acheter cette couleur.",
)
.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 interaction.reply({ embeds: [embed], ephemeral: true, allowedMentions: { repliedUser: false } }); iconURL: message.author.displayAvatarURL(),
}
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);
}); });
return interaction.reply({
embeds: [embed],
ephemeral: true,
allowedMentions: { repliedUser: false },
});
}
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 embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🔵 Embed') .setTitle("🔵 Embed")
.setDescription('✅ Vous avez acheté la couleur aléatoire pour vos embeds.') .setDescription(
"✅ Vous avez acheté la couleur aléatoire pour vos embeds.",
)
.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(),
});
interaction.reply({ embeds: [embed], ephemeral: true, allowedMentions: { repliedUser: false } }); interaction.reply({
embeds: [embed],
ephemeral: true,
allowedMentions: { repliedUser: false },
});
} else { } else {
if (reputation < 3) { if (reputation < 3) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Vous n\'avez pas assez de réputations pour acheter cette couleur.') .setDescription(
"❌ Vous n'avez pas assez de réputations pour acheter cette couleur.",
)
.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 interaction.reply({ embeds: [embed], ephemeral: true, allowedMentions: { repliedUser: false } }); 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) => { 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); if (err) return console.error(err);
}); },
);
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🔵 Embed') .setTitle("🔵 Embed")
.setDescription(`✅ Vous avez acheté la couleur ${value} pour vos embeds.`) .setDescription(
`✅ Vous avez acheté la couleur ${value} pour vos embeds.`,
)
.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(),
});
interaction.reply({ embeds: [embed], ephemeral: true, allowedMentions: { repliedUser: false } }); interaction.reply({
embeds: [embed],
ephemeral: true,
allowedMentions: { repliedUser: false },
});
} }
} }
}); });
collector.on('end', async () => { collector.on("end", async () => {
embedMessage.edit({ components: [] }); embedMessage.edit({ components: [] });
}); });
}, },
+121 -55
View File
@@ -1,124 +1,190 @@
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: ['shop', 'magasin', 'boutique', 'store'], aliases: ["shop", "magasin", "boutique", "store"],
description: 'Affiche le shop du bot.', description: "Affiche le shop du bot.",
emote: '🛍️', emote: "🛍️",
utilisation: '', utilisation: "",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
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. 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`) .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)) .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('🔒 AntiRob') .setLabel("🔒 AntiRob")
.setValue('antirob') .setValue("antirob")
.setDescription('Protège contre les vols pendant 2 heures') .setDescription("Protège contre les vols pendant 2 heures")
.setEmoji('🔒') .setEmoji("🔒")
.setDefault(false), .setDefault(false),
new StringSelectMenuOptionBuilder() new StringSelectMenuOptionBuilder()
.setLabel('🗝️ Clef') .setLabel("🗝️ Clef")
.setValue('key') .setValue("key")
.setDescription('Permet d\'ouvrir une boite') .setDescription("Permet d'ouvrir une boite")
.setEmoji('🗝️') .setEmoji("🗝️")
.setDefault(false), .setDefault(false),
new StringSelectMenuOptionBuilder() new StringSelectMenuOptionBuilder()
.setLabel('💰 25000 Coins') .setLabel("💰 25000 Coins")
.setValue('coins') .setValue("coins")
.setDescription('Vous donne 25K de coins contre 1reputation') .setDescription("Vous donne 25K de coins contre 1reputation")
.setEmoji('💰') .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];
if (selected === 'antirob') { if (selected === "antirob") {
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
}); },
);
}); });
if (user.pocket < 2000) { if (user.pocket < 2000) {
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 assez d'argent pour acheter cet item.",
ephemeral: true,
});
} }
db.run(`UPDATE users SET pocket = pocket - 2000, antiRob = ? WHERE guildId = ? AND userId = ?`, [Date.now(), message.guild.id, message.author.id]); db.run(
`UPDATE users SET pocket = pocket - 2000, antiRob = ? WHERE guildId = ? AND userId = ?`,
[Date.now(), message.guild.id, message.author.id],
);
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🛍️ Shop') .setTitle("🛍️ Shop")
.setDescription(`Vous avez acheté l'item 🔒 AntiRob pour 2000 coins !`) .setDescription(
`Vous avez acheté l'item 🔒 AntiRob pour 2000 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(),
});
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); interaction.reply({
} else if (selected === 'key') { embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (selected === "key") {
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
}); },
);
}); });
if (user.pocket < 2500) { if (user.pocket < 2500) {
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 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]); 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() const embed = new EmbedBuilder()
.setTitle('🛍️ Shop') .setTitle("🛍️ Shop")
.setDescription(`Vous avez acheté l'item 🗝️ clef pour 2500 coins !`) .setDescription(`Vous avez acheté l'item 🗝️ clef pour 2500 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(),
});
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); interaction.reply({
} else if (selected === 'coins') { embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (selected === "coins") {
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
}); },
);
}); });
if (user.reputation < 1) { if (user.reputation < 1) {
return interaction.reply({ content: 'Vous n\'avez pas assez de reputation pour acheter cet item.', ephemeral: true }); 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]); 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() const embed = new EmbedBuilder()
.setTitle('🛍️ Shop') .setTitle("🛍️ Shop")
.setDescription(`Vous avez acheté \`25000\`coins contre une reputation !`) .setDescription(
`Vous avez acheté \`25000\`coins contre une 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(),
});
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); interaction.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
}); });
}, },
+134 -72
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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(
`SELECT * FROM teams WHERE guildId = ? AND id = ?`,
[message.guild.id, user.teamId],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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",
ephemeral: true,
});
if (team.bank < coup)
return interaction.reply({
content: "Vous n'avez pas assez d'argent pour acheter cet item.",
ephemeral: true,
});
db.run(`UPDATE teams SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`, [coup, message.guild.id, message.author.id]); db.run(
db.run(`UPDATE teams SET location = location + ? WHERE guildId = ? AND userId = ?`, [win, message.guild.id, message.author.id]); `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 },
});
}); });
}, },
}; };
+25 -14
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}`,
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 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 } });
}, },
+25 -14
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}`,
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 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 } });
}, },
+174 -74
View File
@@ -1,28 +1,39 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js'); const {
const embedColor = require('../../fonctions/embedColor.js'); EmbedBuilder,
const getPrefix = require('../../fonctions/getPrefix.js'); ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const getPrefix = require("../../fonctions/getPrefix.js");
function commandsList(client, category, prefix) { function commandsList(client, category, prefix) {
const casinoCommands = client.commands.filter(command => command.category === category).sort((a, b) => a.name.localeCompare(b.name)); const casinoCommands = client.commands
.filter((command) => command.category === category)
.sort((a, b) => a.name.localeCompare(b.name));
const uniqueCommands = new Map(); const uniqueCommands = new Map();
casinoCommands.forEach(command => { casinoCommands.forEach((command) => {
uniqueCommands.set(command.name, { description: command.description, emote: command.emote, utilisation: command.utilisation }); uniqueCommands.set(command.name, {
description: command.description,
emote: command.emote,
utilisation: command.utilisation,
});
}); });
let commandsList = ''; let commandsList = "";
uniqueCommands.forEach((command, name) => { uniqueCommands.forEach((command, name) => {
commandsList += `> ${command.emote} \`${prefix}${name}${command.utilisation ? ' ' + command.utilisation : ''}\`\n> ┖ ${command.description}\n\n`; commandsList += `> ${command.emote} \`${prefix}${name}${command.utilisation ? " " + command.utilisation : ""}\`\n> ┖ ${command.description}\n\n`;
}); });
return commandsList; return commandsList;
} }
module.exports = { module.exports = {
aliases: ['', 'h', 'aide'], aliases: ["", "h", "aide"],
description: 'Affiche la liste des commandes disponibles', description: "Affiche la liste des commandes disponibles",
emote: '📚', emote: "📚",
utilisation: '[commande]', utilisation: "[commande]",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
@@ -33,57 +44,81 @@ module.exports = {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle(`📚・${command.name}`) .setTitle(`📚・${command.name}`)
.setThumbnail(message.guild.iconURL()) .setThumbnail(message.guild.iconURL())
.setDescription(`> **Description :** ${command.description}\n> **Utilisation :** \`${prefix}${command.name}${command.utilisation ? ' ' + command.utilisation : ''}\`\n> **Alias :** ${command.aliases.join(', ') || 'Aucun'}\n> **Permission :** ${command.permission}\n> **Catégorie :** ${command.category}\n> **Emote :** ${command.emote}`) .setDescription(
`> **Description :** ${command.description}\n> **Utilisation :** \`${prefix}${command.name}${command.utilisation ? " " + command.utilisation : ""}\`\n> **Alias :** ${command.aliases.join(", ") || "Aucun"}\n> **Permission :** ${command.permission}\n> **Catégorie :** ${command.category}\n> **Emote :** ${command.emote}`,
)
.setColor(await embedColor(message.author.id, message.guild.id)) .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 },
});
} else { } else {
if (args[0]) { if (args[0]) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('❌・Commande inconnue') .setTitle("❌・Commande inconnue")
.setDescription('La commande que vous avez demandée n\'existe pas. Nous vous invitons à vérifier l\'orthographe dans le help si dessous et à réessayer.') .setDescription(
.setColor(await embedColor(message.author.id, message.guild.id)) "La commande que vous avez demandée n'existe pas. Nous vous invitons à vérifier l'orthographe dans le help si dessous et à réessayer.",
)
.setColor(await embedColor(message.author.id, message.guild.id));
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
} }
} }
const prefix = await getPrefix(message.guild.id); const prefix = await getPrefix(message.guild.id);
const embedPage1 = new EmbedBuilder() const embedPage1 = new EmbedBuilder()
.setTitle('📚 ・Information') .setTitle("📚 ・Information")
.setThumbnail(message.guild.iconURL()) .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.`) .setDescription(
`Voici le panel d'aide du bot. Pour plus d'informations sur une commande, utilisez ${prefix}help <commande>\n\n> **🎙️ Récompenses vocales :**\n> Vous gagnez \`100\` coins toutes les \`15\`minutes lorsque vous êtes en vocal (**NON MUTE** sinon c'est \`50\`coins).\n \n> **📺 Récompenses de streaming :**\n> Activer un stream vous fera gagner \`200\`.\n \n> **📷 Récompenses de caméra :**\n> Activer votre caméra vous fera gagner \`200\`.\n\n> Le coins est une monnaie fictive.`,
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Page 1/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Page 1/10 | Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
const leftButton = new ButtonBuilder() const leftButton = new ButtonBuilder()
.setCustomId('left') .setCustomId("left")
.setLabel('◀') .setLabel("◀")
.setStyle(ButtonStyle.Primary); .setStyle(ButtonStyle.Primary);
const rightButton = new ButtonBuilder() const rightButton = new ButtonBuilder()
.setCustomId('right') .setCustomId("right")
.setLabel('▶') .setLabel("▶")
.setStyle(ButtonStyle.Primary); .setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder() const row = new ActionRowBuilder().addComponents(leftButton, rightButton);
.addComponents(leftButton, rightButton);
let messageEmbed; let messageEmbed;
messageEmbed = await message.reply({ embeds: [embedPage1], components: [row], allowedMentions: { repliedUser: false } }); messageEmbed = await message.reply({
embeds: [embedPage1],
components: [row],
allowedMentions: { repliedUser: false },
});
const filter = i => i.user.id === message.author.id; const filter = (i) => i.user.id === message.author.id;
const collector = message.channel.createMessageComponentCollector({ filter, time: 120000 }); const collector = message.channel.createMessageComponentCollector({
filter,
time: 120000,
});
let page = 1; let page = 1;
collector.on('collect', async i => { collector.on("collect", async (i) => {
if (i.customId === 'left') { if (i.customId === "left") {
page--; page--;
if (page < 1) page = 10; if (page < 1) page = 10;
} else if (i.customId === 'right') { } else if (i.customId === "right") {
page++; page++;
if (page > 10) page = 1; if (page > 10) page = 1;
} }
@@ -92,100 +127,165 @@ module.exports = {
i.update({ embeds: [embedPage1], components: [row] }); i.update({ embeds: [embedPage1], components: [row] });
} else if (page === 2) { } else if (page === 2) {
const embedPage2 = new EmbedBuilder() const embedPage2 = new EmbedBuilder()
.setTitle('💰・Casino') .setTitle("💰・Casino")
.setThumbnail(message.guild.iconURL()) .setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'casino', prefix)) .setDescription(commandsList(client, "casino", prefix))
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Page 2/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Page 2/10 | Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
i.update({ embeds: [embedPage2], components: [row], allowedMentions: { repliedUser: false } }); i.update({
embeds: [embedPage2],
components: [row],
allowedMentions: { repliedUser: false },
});
} else if (page === 3) { } else if (page === 3) {
const embedPage3 = new EmbedBuilder() const embedPage3 = new EmbedBuilder()
.setTitle('🎲・Jeux') .setTitle("🎲・Jeux")
.setThumbnail(message.guild.iconURL()) .setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'jeux', prefix)) .setDescription(commandsList(client, "jeux", prefix))
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Page 3/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Page 3/10 | Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
i.update({ embeds: [embedPage3], components: [row], allowedMentions: { repliedUser: false } }); i.update({
embeds: [embedPage3],
components: [row],
allowedMentions: { repliedUser: false },
});
} else if (page === 4) { } else if (page === 4) {
const embedPage4 = new EmbedBuilder() const embedPage4 = new EmbedBuilder()
.setTitle('🛍️・Achats') .setTitle("🛍️・Achats")
.setThumbnail(message.guild.iconURL()) .setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'achats', prefix)) .setDescription(commandsList(client, "achats", prefix))
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Page 4/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Page 4/10 | Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
i.update({ embeds: [embedPage4], components: [row], allowedMentions: { repliedUser: false } }); i.update({
embeds: [embedPage4],
components: [row],
allowedMentions: { repliedUser: false },
});
} else if (page === 5) { } else if (page === 5) {
const embedPage5 = new EmbedBuilder() const embedPage5 = new EmbedBuilder()
.setTitle('🏭・Metier et capacité') .setTitle("🏭・Metier et capacité")
.setThumbnail(message.guild.iconURL()) .setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'jobs', prefix)) .setDescription(commandsList(client, "jobs", prefix))
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Page 5/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Page 5/10 | Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
i.update({ embeds: [embedPage5], components: [row], allowedMentions: { repliedUser: false } }); i.update({
embeds: [embedPage5],
components: [row],
allowedMentions: { repliedUser: false },
});
} else if (page === 6) { } else if (page === 6) {
const embedPage6 = new EmbedBuilder() const embedPage6 = new EmbedBuilder()
.setTitle('💼・Teams') .setTitle("💼・Teams")
.setThumbnail(message.guild.iconURL()) .setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'teams', prefix)) .setDescription(commandsList(client, "teams", prefix))
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Page 6/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Page 6/10 | Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
i.update({ embeds: [embedPage6], components: [row], allowedMentions: { repliedUser: false } }); i.update({
embeds: [embedPage6],
components: [row],
allowedMentions: { repliedUser: false },
});
} else if (page === 7) { } else if (page === 7) {
const embedPage7 = new EmbedBuilder() const embedPage7 = new EmbedBuilder()
.setTitle('🛡️・Teams administration') .setTitle("🛡️・Teams administration")
.setThumbnail(message.guild.iconURL()) .setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'teams admin', prefix)) .setDescription(commandsList(client, "teams admin", prefix))
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Page 7/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Page 7/10 | Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
i.update({ embeds: [embedPage7], components: [row], allowedMentions: { repliedUser: false } }); i.update({
embeds: [embedPage7],
components: [row],
allowedMentions: { repliedUser: false },
});
} else if (page === 8) { } else if (page === 8) {
const embedPage8 = new EmbedBuilder() const embedPage8 = new EmbedBuilder()
.setTitle('🤝・Alliance') .setTitle("🤝・Alliance")
.setThumbnail(message.guild.iconURL()) .setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'Alliance', prefix)) .setDescription(commandsList(client, "Alliance", prefix))
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Page 8/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Page 8/10 | Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
i.update({ embeds: [embedPage8], components: [row], allowedMentions: { repliedUser: false } }); i.update({
embeds: [embedPage8],
components: [row],
allowedMentions: { repliedUser: false },
});
} else if (page === 9) { } else if (page === 9) {
const embedPage9 = new EmbedBuilder() const embedPage9 = new EmbedBuilder()
.setTitle('👑・Gestion') .setTitle("👑・Gestion")
.setThumbnail(message.guild.iconURL()) .setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'gestion', 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({ text: `Page 9/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Page 9/10 | Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
i.update({ embeds: [embedPage9], components: [row], allowedMentions: { repliedUser: false } }); i.update({
embeds: [embedPage9],
components: [row],
allowedMentions: { repliedUser: false },
});
} else if (page === 10) { } else if (page === 10) {
const embedPage10 = new EmbedBuilder() const embedPage10 = new EmbedBuilder()
.setTitle('👑・Bot control') .setTitle("👑・Bot control")
.setThumbnail(message.guild.iconURL()) .setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'bot control', prefix)) .setDescription(commandsList(client, "bot control", prefix))
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter({ text: `Page 10/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
text: `Page 10/10 | Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
i.update({ embeds: [embedPage10], components: [row], allowedMentions: { repliedUser: false } }); i.update({
embeds: [embedPage10],
components: [row],
allowedMentions: { repliedUser: false },
});
} }
}); });
collector.on('end', () => { collector.on("end", () => {
messageEmbed.edit({ components: [], allowedMentions: { repliedUser: false } }) messageEmbed.edit({
components: [],
allowedMentions: { repliedUser: false },
}); });
});
} },
}; };
+26 -17
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) =>
const filter = i => i.customId === 'confirm' && i.user.id === message.author.id; i.customId === "confirm" && i.user.id === message.author.id;
const collector = sentMessage.createMessageComponentCollector({ filter, time: 15000 }) const collector = sentMessage.createMessageComponentCollector({
collector.on('collect', async (interaction) => { filter,
time: 15000,
});
collector.on("collect", async (interaction) => {
sentMessage.edit({ sentMessage.edit({
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 },
}); });
interaction.reply({ content: 'La latence a été rafraichie', ephemeral: true, allowedMentions: { repliedUser: false } }); interaction.reply({
content: "La latence a été rafraichie",
ephemeral: true,
allowedMentions: { repliedUser: false },
});
}); });
collector.on('end', () => { collector.on("end", () => {
sentMessage.edit({ components: [], allowedMentions: { repliedUser: false } }); sentMessage.edit({
components: [],
allowedMentions: { repliedUser: false },
}); });
} });
},
}; };
+10 -10
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);
},
}; };
+44 -40
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) => { const convertToMorse = (str) => {
return str.toUpperCase().split("").map(el => { return str
.toUpperCase()
.split("")
.map((el) => {
return morseCode[el] ? morseCode[el] : el; return morseCode[el] ? morseCode[el] : el;
}).join(""); })
.join("");
}; };
let msg = message.content let msg = message.content;
msg = msg.replace('&morse ', '') msg = msg.replace("&morse ", "");
msg = msg.replace('&saymorse ', '') msg = msg.replace("&saymorse ", "");
message.channel.send(convertToMorse(msg)) message.channel.send(convertToMorse(msg));
} },
}; };
+17 -14
View File
@@ -1,14 +1,14 @@
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",
@@ -36,18 +36,21 @@ module.exports = {
"-..-": "X", "-..-": "X",
"-.--": "Y", "-.--": "Y",
"--..": "Z", "--..": "Z",
" ": " " " ": " ",
}; };
const convertFromMorse = (str) => { const convertFromMorse = (str) => {
return str.split(" ").map(el => { return str
.split(" ")
.map((el) => {
return morseCode[el] ? morseCode[el] : el; return morseCode[el] ? morseCode[el] : el;
}).join(""); })
.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));
} },
}; };
+39 -20
View File
@@ -1,47 +1,66 @@
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: ['srvs'], aliases: ["srvs"],
description: 'Affiche la liste des serveurs où le bot est présent', description: "Affiche la liste des serveurs où le bot est présent",
emote: '🌐', emote: "🌐",
utilisation: '', utilisation: "",
permission: 10, permission: 10,
async execute(message, args, client) { async execute(message, args, client) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Liste des serveurs') .setTitle("Liste des serveurs")
.setDescription(client.guilds.cache.map(guild => `${guild.name} (ID: ${guild.id})`).join('\n')) .setDescription(
client.guilds.cache
.map((guild) => `${guild.name} (ID: ${guild.id})`)
.join("\n"),
)
.setColor(await embedColor(message.author.id, message.guild.id)); .setColor(await embedColor(message.author.id, message.guild.id));
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({
embeds: [embed], embeds: [embed],
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: 60000 }); i.customId === "confirm" && i.user.id === message.author.id;
const collector = sentMessage.createMessageComponentCollector({
filter,
time: 60000,
});
collector.on('collect', async (interaction) => { collector.on("collect", async (interaction) => {
embed.setDescription(client.guilds.cache.map(guild => `${guild.name} (ID: ${guild.id})`).join('\n')); embed.setDescription(
client.guilds.cache
.map((guild) => `${guild.name} (ID: ${guild.id})`)
.join("\n"),
);
sentMessage.edit({ sentMessage.edit({
embeds: [embed], embeds: [embed],
components: [row], components: [row],
}); });
interaction.reply({ content: 'La liste des serveurs a été rafraichie', ephemeral: true }); interaction.reply({
content: "La liste des serveurs a été rafraichie",
ephemeral: true,
});
}); });
collector.on('end', () => { collector.on("end", () => {
sentMessage.edit({ components: [] }); sentMessage.edit({ components: [] });
}); });
} },
}; };
+21 -11
View File
@@ -1,11 +1,16 @@
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) {
@@ -14,12 +19,17 @@ module.exports = {
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] });
},
}; };
+36 -20
View File
@@ -1,37 +1,52 @@
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
},
);
}); });
}); const lastDaily = user.lastDaily;
const lastDaily = user.lastDaily const pocket = user.pocket;
const pocket = user.pocket
if (lastDaily > Date.now() - 86400000) { if (lastDaily > Date.now() - 86400000) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Argent Impossible') .setTitle("Argent Impossible")
.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.`) .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)) .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() * (1000 - 500 + 1)) + 500; const randomAmount = Math.floor(Math.random() * (1000 - 500 + 1)) + 500;
db.run(`UPDATE users SET pocket = ?, lastDaily = ? WHERE guildId = ? AND userId = ?`, [pocket + randomAmount, Date.now(), message.guild.id, message.author.id]); db.run(
`UPDATE users SET pocket = ?, lastDaily = ? WHERE guildId = ? AND userId = ?`,
[pocket + randomAmount, Date.now(), message.guild.id, message.author.id],
);
const dailys = [ const dailys = [
`🌅 Vous vous êtes réveillé tôt ce matin et avez trouvé \`${randomAmount}\` coins sous votre oreiller.`, `🌅 Vous vous êtes réveillé tôt ce matin et avez trouvé \`${randomAmount}\` coins sous votre oreiller.`,
@@ -56,14 +71,15 @@ module.exports = {
`💻 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 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() const embed = new EmbedBuilder()
.setTitle('Argent Récupéré') .setTitle("Argent Récupéré")
.setDescription(dailys[Math.floor(Math.random() * dailys.length)]) .setDescription(dailys[Math.floor(Math.random() * dailys.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 } });
}, },
+47 -27
View File
@@ -1,49 +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: ['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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
},
);
}); });
}); const pocket = user.pocket;
const pocket = user.pocket const bank = user.bank;
const bank = user.bank
let title = 'Dépôt Impossible' let title = "Dépôt Impossible";
let description = '' let description = "";
if (args.length === 0) { if (args.length === 0) {
description = '❌ Vous devez spécifier un montant à déposer.' description = "❌ Vous devez spécifier un montant à déposer.";
} else if (args[0] === 'all') { } else if (args[0] === "all") {
if (pocket <= 0) { if (pocket <= 0) {
description = '❌ Vous n\'avez pas d\'argent à déposer.' description = "❌ Vous n'avez pas d'argent à déposer.";
} else { } else {
title = 'Dépôt Réussi' title = "Dépôt Réussi";
description = `💰 Vous avez déposé \`${pocket}\` coins dans votre compte en banque.` description = `💰 Vous avez déposé \`${pocket}\` coins dans votre compte en banque.`;
db.run(`UPDATE users SET pocket = ?, bank = ? WHERE guildId = ? AND userId = ?`, [0, pocket + bank, message.guild.id, message.author.id]); db.run(
`UPDATE users SET pocket = ?, bank = ? WHERE guildId = ? AND userId = ?`,
[0, pocket + bank, message.guild.id, message.author.id],
);
} }
} else if (isNaN(args[0])) { } else if (isNaN(args[0])) {
description = '❌ Vous devez spécifier un montant valide à déposer.' description = "❌ Vous devez spécifier un montant valide à déposer.";
} else if (pocket <= 0) { } else if (pocket <= 0) {
description = '❌ Vous n\'avez pas d\'argent à déposer.' description = "❌ Vous n'avez pas d'argent à déposer.";
} else if (parseInt(args[0]) > pocket) { } else if (parseInt(args[0]) > pocket) {
description = '❌ Vous n\'avez pas assez d\'argent pour déposer cette somme.' description =
"❌ Vous n'avez pas assez d'argent pour déposer cette somme.";
} else if (parseInt(args[0]) <= 0) { } else if (parseInt(args[0]) <= 0) {
description = '❌ Vous ne pouvez pas deposer une somme négative ou nulle.'; description =
"❌ Vous ne pouvez pas deposer une somme négative ou nulle.";
} else { } else {
title = 'Dépôt Réussi' title = "Dépôt Réussi";
description = `💰 Vous avez déposé ${args[0]} coins dans votre compte en banque.` description = `💰 Vous avez déposé ${args[0]} coins dans votre compte en banque.`;
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]); 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() const embed = new EmbedBuilder()
@@ -51,7 +68,10 @@ 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(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}, },
+45 -20
View File
@@ -1,40 +1,65 @@
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, member.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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 } });
}, },
+86 -54
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}`,
iconURL: message.author.displayAvatarURL(),
};
const pocket = await new Promise((resolve, reject) => { const pocket = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => { db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row.pocket); resolve(row.pocket);
}); },
);
}); });
if (!member) { if (!member) {
return message.reply({ embeds: [ return message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Veuillez mentionner un membre du serveur.') .setDescription("❌ Veuillez mentionner un membre du serveur.")
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter(footer) .setFooter(footer),
], allowedMentions: { repliedUser: false } }); ],
allowedMentions: { repliedUser: false },
});
} }
if (!args[0]) { if (!args[0]) {
return message.reply({ embeds: [ return message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Veuillez spécifier un montant à payer.') .setDescription("❌ Veuillez spécifier un montant à payer.")
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter(footer) .setFooter(footer),
], allowedMentions: { repliedUser: false } }); ],
allowedMentions: { repliedUser: false },
} else if (args[0] === 'all') { });
} else if (args[0] === "all") {
amount = pocket; amount = pocket;
} else if (isNaN(args[0])) { } else if (isNaN(args[0])) {
return message.reply({ embeds: [ return message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Veuillez spécifier un montant valide.') .setDescription("❌ Veuillez spécifier un montant valide.")
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter(footer) .setFooter(footer),
], allowedMentions: { repliedUser: false } }); ],
allowedMentions: { repliedUser: false },
});
} else if (args[0] <= 0) { } else if (args[0] <= 0) {
return message.reply({ embeds: [ return message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Veuillez spécifier un montant supérieur à \`0\`.') .setDescription("❌ Veuillez spécifier un montant supérieur à `0`.")
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter(footer) .setFooter(footer),
], allowedMentions: { repliedUser: false } }); ],
allowedMentions: { repliedUser: false },
});
} else if (args[0] > pocket) { } else if (args[0] > pocket) {
return message.reply({ embeds: [ return message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Vous n\'avez pas assez d\'argent pour effectuer cette transaction.') .setDescription(
"❌ Vous n'avez pas assez d'argent pour effectuer cette transaction.",
)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter(footer) .setFooter(footer),
], allowedMentions: { repliedUser: false } }); ],
allowedMentions: { repliedUser: false },
});
} else if (!Number.isInteger(Number(args[0]))) { } else if (!Number.isInteger(Number(args[0]))) {
return message.reply({ embeds: [ return message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Veuillez spécifier un montant entier.') .setDescription("❌ Veuillez spécifier un montant entier.")
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter(footer) .setFooter(footer),
], allowedMentions: { repliedUser: false } }); ],
allowedMentions: { repliedUser: false },
});
} else { } else {
amount = args[0]; amount = args[0];
} }
db.run(`UPDATE users SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`, [amount, message.guild.id, message.author.id]); db.run(
db.run(`UPDATE users SET pocket = pocket + ? WHERE guildId = ? AND userId = ?`, [amount, message.guild.id, member.id]); `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: [ message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Paiement') .setTitle("Paiement")
.setDescription(`💰 Vous avez payé \`${amount}\` à ${member.user.tag}.`) .setDescription(
`💰 Vous avez payé \`${amount}\` à ${member.user.tag}.`,
)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter(footer) .setFooter(footer),
], allowedMentions: { repliedUser: false } }); ],
allowedMentions: { repliedUser: false },
});
}, },
}; };
+37 -20
View File
@@ -1,51 +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: ['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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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 } });
}, },
+105 -47
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({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Veuillez spécifier un membre du serveur.') .setDescription("❌ Veuillez spécifier un membre du serveur.")
.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 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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row.lastRep); resolve(row.lastRep);
}); },
);
}); });
if (lastRep > Date.now() - 7200000) { if (lastRep > Date.now() - 7200000) {
return message.reply({ embeds: [ return message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Ajout Impossible') .setTitle("Ajout Impossible")
.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.`) .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.`,
)
.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 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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, member],
async (err, row) => {
if (err) reject(err); if (err) reject(err);
if (!row) { if (!row) {
return message.reply({ embeds: [ return message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ L\'utilisateur spécifié n\'existe pas.') .setDescription("❌ L'utilisateur spécifié n'existe pas.")
.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 },
});
} }
resolve(parseInt(row.reputation)); resolve(parseInt(row.reputation));
}); },
);
}); });
if (member === message.author.id) { if (member === message.author.id) {
return message.reply({ embeds: [ return message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Vous ne pouvez pas vous donner une réputation à vous-même.') .setDescription(
"❌ Vous ne pouvez pas vous donner une réputation à vous-même.",
)
.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(),
}),
db.run(`UPDATE users SET lastRep = ? WHERE guildId = ? AND userId = ?`, [Date.now(), message.guild.id, message.author.id], (err) => { ],
if (err) { allowedMentions: { repliedUser: false },
console.log(`${err}`.red)
}
}); });
db.run(`UPDATE users SET reputation = reputation + 1 WHERE guildId = ? AND userId = ?`, [message.guild.id, member], (err) => {
if (err) {
console.log(`${err}`.red)
} }
});
message.reply({ embeds: [ db.run(
`UPDATE users SET lastRep = ? WHERE guildId = ? AND userId = ?`,
[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) => {
if (err) {
console.log(`${err}`.red);
}
},
);
message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Reputation ajouté !') .setTitle("Reputation ajouté !")
.setDescription('Vous avez ajouter une reputation à <@' + member + '>, qui a maintement `' + (userReputation + 1) + '` reputation !') .setDescription(
"Vous avez ajouter une reputation à <@" +
member +
">, qui a maintement `" +
(userReputation + 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({
], allowedMentions: { repliedUser: false } }); text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}, },
}; };
+94 -37
View File
@@ -1,100 +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: [], 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}`,
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
}); },
);
}); });
const memberlist = await new Promise((resolve, reject) => { const memberlist = await new Promise((resolve, reject) => {
db.all(`SELECT userId FROM users WHERE guildId = ? AND teamId = ?`, [message.guild.id, user.teamId], (err, rows) => { db.all(
`SELECT userId FROM users WHERE guildId = ? AND teamId = ?`,
[message.guild.id, user.teamId],
(err, rows) => {
if (err) reject(err); if (err) reject(err);
resolve(rows); resolve(rows);
},
);
}); });
}); if (memberlist.includes(member))
if (memberlist.includes(member)) return message.reply({ embeds: [ return message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Veuillez choisir un membre qui __n\'est pas__ dans votre team.') .setDescription(
"❌ Veuillez choisir un membre qui __n'est pas__ dans votre team.",
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setFooter(footer) .setFooter(footer),
], allowedMentions: { repliedUser: false } }); ],
allowedMentions: { repliedUser: false },
});
if (user.lastRob + 7200000 > Date.now()) { if (user.lastRob + 7200000 > Date.now()) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription(`❌ Vous devez encore attendre ${Math.floor((user.lastRob + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir voler à nouveau.`) .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)) .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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, member.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
}); },
);
}); });
if (memberInfo.antiRob + 7200000 > Date.now()) { if (memberInfo.antiRob + 7200000 > Date.now()) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.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.`) .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)) .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 memberPocket = memberInfo.pocket; const memberPocket = memberInfo.pocket;
if (memberPocket <= 0) { if (memberPocket <= 0) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription(`❌ <@${member.id}> n'a pas d'argent sur lui pour que vous puissiez le voler.`) .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)) .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 amount = Math.floor(Math.random() * memberPocket) + 1; 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(
db.run(`UPDATE users SET pocket = pocket + ?, lastRob = ? WHERE guildId = ? AND userId = ?`, [amount, Date.now(), message.guild.id, message.author.id]); `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() const embed = new EmbedBuilder()
.setTitle('Vol') .setTitle("Vol")
.setDescription(`💰 Vous avez volé ${amount} à <@${member.id}>.`) .setDescription(`💰 Vous avez volé ${amount} à <@${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}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}, },
+177 -97
View File
@@ -1,181 +1,261 @@
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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 nombre d'objet à vendre.\n\nVous avez \`${user.objet}\`objet.\nAttention, il est possible que de petit pourboire de client soit rajouté.`) .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)) .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('sell') .setCustomId("sell")
.setPlaceholder('Sélectionnez un nombre d\'objet') .setPlaceholder("Sélectionnez un nombre d'objet")
.addOptions( .addOptions(
new StringSelectMenuOptionBuilder() new StringSelectMenuOptionBuilder()
.setLabel('👶 Debutant') .setLabel("👶 Debutant")
.setValue('1') .setValue("1")
.setDescription('Vend un objet, pour \`200\`coins.') .setDescription("Vend un objet, pour `200`coins.")
.setEmoji('👶') .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), .setDefault(false),
) )
.addOptions( .addOptions(
new StringSelectMenuOptionBuilder() new StringSelectMenuOptionBuilder()
.setLabel('👑 Mythique') .setLabel("🚸 Enfant")
.setValue('5') .setValue("2")
.setDescription('Vend cinq objet, pour \`1 000\`coins.') .setDescription("Vend deux objet, pour `400`coins.")
.setEmoji('👑') .setEmoji("🚸")
.setDefault(false), .setDefault(false),
) )
.addOptions( .addOptions(
new StringSelectMenuOptionBuilder() new StringSelectMenuOptionBuilder()
.setLabel('👑 Legendaire') .setLabel("🔞 Mineur")
.setValue('10') .setValue("3")
.setDescription('Vend dix objet, pour \`10 000\`coins !') .setDescription("Vend trois objet, pour `600`coins.")
.setEmoji('👑') .setEmoji("🔞")
.setDefault(false), .setDefault(false),
) )
.addOptions( .addOptions(
new StringSelectMenuOptionBuilder() new StringSelectMenuOptionBuilder()
.setLabel('👑 Ultime') .setLabel("🧐 Expert")
.setValue('25') .setValue("4")
.setDescription('Vend 25 objet, pour \`30 000\`coins !') .setDescription("Vend quatre objet, pour `800`coins.")
.setEmoji('👑') .setEmoji("🧐")
.setDefault(false), .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() 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.user.id !== message.author.id) return; if (!interaction.user.id !== message.author.id) return;
if (!interaction.isSelectMenu()) return; if (!interaction.isSelectMenu()) return;
if (!interaction.customId === 'sell') return if (!interaction.customId === "sell") return;
const selected = interaction.values[0]; const selected = interaction.values[0];
if (selected === '1') { if (selected === "1") {
if (user.objet < 1) { if (user.objet < 1) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true }); 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]); 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 (selected === "2") {
if (user.objet < 2) { if (user.objet < 2) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true }); 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]); 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 (selected === "3") {
if (user.objet < 3) { if (user.objet < 3) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true }); 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]); 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 (selected === "4") {
if (user.objet < 4) { if (user.objet < 4) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true }); 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]); 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 (selected === "5") {
if (user.objet < 5) { if (user.objet < 5) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true }); 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]); 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 (selected === "10") {
if (user.objet < 10) { if (user.objet < 10) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true }); 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]); 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 (selected === "25") {
if (user.objet < 25) { if (user.objet < 25) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true }); 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]); db.run(
`UPDATE users SET objet = objet - 25, pocket = pocket + 31000 WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
);
} }
if (select <= 9) { if (select <= 9) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🛍️ Shop') .setTitle("🛍️ Shop")
.setDescription(`Vous avez vendu \`${select}\`objet pour \`${200 * select}\`coins !`) .setDescription(
`Vous avez vendu \`${select}\`objet pour \`${200 * select}\`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(),
});
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); interaction.reply({
} embeds: [embed],
else if (select === 10){ allowedMentions: { repliedUser: false },
});
} else if (select === 10) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🛍️ Shop') .setTitle("🛍️ Shop")
.setDescription(`Vous avez vendu \`${select}\`objet pour \`10000\`coins !`) .setDescription(
`Vous avez vendu \`${select}\`objet pour \`10000\`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(),
});
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); interaction.reply({
} embeds: [embed],
else if (select === 25){ allowedMentions: { repliedUser: false },
});
} else if (select === 25) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🛍️ Shop') .setTitle("🛍️ Shop")
.setDescription(`Vous avez vendu \`${select}\`objet pour \`30000\`coins !`) .setDescription(
`Vous avez vendu \`${select}\`objet pour \`30000\`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(),
});
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); interaction.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
}); });
}, },
+219 -113
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,
StringSelectMenuOptionBuilder,
} = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = { module.exports = {
aliases: ['leaderboard', 'lb', 'ttop'], aliases: ["leaderboard", "lb", "ttop"],
description: 'Affiche le top 10 des membres/teams du serveur.', description: "Affiche le top 10 des membres/teams du serveur.",
emote: '🏆', emote: "🏆",
utilisation: '[global|pocket|bank|reputation|niveau|team|teamreputation|teamdonnateur]', utilisation:
"[global|pocket|bank|reputation|niveau|team|teamreputation|teamdonnateur]",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
if (args[0] === 'coins' || args[0] === 'coin' || args[0] === 'global' || args[0] === 'money') { if (
args[0] = 'coins' args[0] === "coins" ||
} else if (args[0] === 'pocket' || args[0] === 'cash' || args[0] === 'wallet' || args[0] === 'porte-monnaie' || args[0] === 'poche') { args[0] === "coin" ||
args[0] = 'pocket' args[0] === "global" ||
} else if (args[0] === 'bank' || args[0] === 'banque' || args[0] === 'coffre' || args[0] === 'coffre-fort' || args[0] === 'bk') { args[0] === "money"
args[0] = 'bank' ) {
} else if (args[0] === 'reputation' || args[0] === 'rep' || args[0] === 'réputation' || args[0] === 'reput') { args[0] = "coins";
args[0] = 'reputation' } else if (
} else if (args[0] === 'niveau' || args[0] === 'lvl' || args[0] === 'level' || args[0] === 'lvl') { args[0] === "pocket" ||
args[0] = 'niveau' args[0] === "cash" ||
} else if (args[0] === 'team' || args[0] === 't') { args[0] === "wallet" ||
args[0] = 'team' args[0] === "porte-monnaie" ||
} else if (args[0] === 'teamreputation' || args[0] === 'treputation' || args[0] === 'teamrep' || args[0] === 'trep') { args[0] === "poche"
args[0] = 'team' ) {
} 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' } else if (
args[0] === "bank" ||
args[0] === "banque" ||
args[0] === "coffre" ||
args[0] === "coffre-fort" ||
args[0] === "bk"
) {
args[0] = "bank";
} else if (
args[0] === "reputation" ||
args[0] === "rep" ||
args[0] === "réputation" ||
args[0] === "reput"
) {
args[0] = "reputation";
} else if (
args[0] === "niveau" ||
args[0] === "lvl" ||
args[0] === "level" ||
args[0] === "lvl"
) {
args[0] = "niveau";
} else if (args[0] === "team" || args[0] === "t") {
args[0] = "team";
} else if (
args[0] === "teamreputation" ||
args[0] === "treputation" ||
args[0] === "teamrep" ||
args[0] === "trep"
) {
args[0] = "team";
} else if (
args[0] === "teamdonnateur" ||
args[0] === " tdonnateur" ||
args[0] === "tdroper" ||
args[0] === " tdropper" ||
args[0] === " teamdrop" ||
args[0] === "tdrop" ||
args[0] === "teamdroper" ||
args[0] === "teamdropper"
) {
args[0] = "teamdroper";
} else if (!args[0]) { } else if (!args[0]) {
args[0] = 'coins' args[0] = "coins";
} else { } else {
args[0] = 'coins' args[0] = "coins";
message.reply({ embeds: [ message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Argument invalide') .setTitle("Argument invalide")
.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.`) .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.`,
)
.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 },
});
} }
async function leaderboard(type) { async function leaderboard(type) {
let data; let data;
if (type === 'coins') { if (type === "coins") {
data = await new Promise((resolve, reject) => { data = await new Promise((resolve, reject) => {
db.all(`SELECT userId, pocket+bank AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { 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); if (err) reject(err);
resolve(rows); resolve(rows);
},
);
}); });
}); } else if (type === "pocket") {
} else if (type === 'pocket') {
data = await new Promise((resolve, reject) => { data = await new Promise((resolve, reject) => {
db.all(`SELECT userId, pocket AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { 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); if (err) reject(err);
resolve(rows); resolve(rows);
},
);
}); });
}); } else if (type === "bank") {
} else if (type === 'bank') {
data = await new Promise((resolve, reject) => { data = await new Promise((resolve, reject) => {
db.all(`SELECT userId, bank AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { db.all(
`SELECT userId, bank AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`,
[message.guild.id],
(err, rows) => {
if (err) reject(err); if (err) reject(err);
resolve(rows); resolve(rows);
},
);
}); });
}); } else if (type === "reputation") {
} else if (type === 'reputation') {
data = await new Promise((resolve, reject) => { data = await new Promise((resolve, reject) => {
db.all(`SELECT userId, reputation AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { db.all(
`SELECT userId, reputation AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`,
[message.guild.id],
(err, rows) => {
if (err) reject(err); if (err) reject(err);
resolve(rows); resolve(rows);
},
);
}); });
}); } else if (type === "niveau") {
} else if (type === 'niveau') {
data = await new Promise((resolve, reject) => { 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) => { db.all(
`SELECT userId, lvl AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`,
[message.guild.id],
(err, rows) => {
if (err) reject(err); if (err) reject(err);
resolve(rows); resolve(rows);
},
);
}); });
}); } else if (type === "team") {
} else if (type === 'team') {
data = await new Promise((resolve, reject) => { data = await new Promise((resolve, reject) => {
db.all(`SELECT name, bank AS coins FROM teams WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { db.all(
`SELECT name, bank AS coins FROM teams WHERE guildId = ? ORDER BY coins DESC LIMIT 10`,
[message.guild.id],
(err, rows) => {
if (err) reject(err); if (err) reject(err);
resolve(rows); resolve(rows);
},
);
}); });
}); } else if (type === "teamreputation") {
} else if (type === 'teamreputation') {
data = await new Promise((resolve, reject) => { data = await new Promise((resolve, reject) => {
db.all(`SELECT name, reputation AS teams FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => { db.all(
`SELECT name, reputation AS teams FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`,
[message.guild.id],
(err, rows) => {
if (err) reject(err); if (err) reject(err);
resolve(rows); resolve(rows);
},
);
}); });
}); } else if (type === "teamdroper") {
} else if (type === 'teamdroper') {
data = await new Promise((resolve, reject) => { 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) => { 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); if (err) reject(err);
resolve(rows); resolve(rows);
}); },
);
}); });
} }
const emoji = { const emoji = {
coins: '🪙', coins: "🪙",
pocket: '💰', pocket: "💰",
bank: '🏦', bank: "🏦",
reputation: '🔺', reputation: "🔺",
niveau: '📊', niveau: "📊",
team: '👑', team: "👑",
teamreputation: '🔺', teamreputation: "🔺",
teamdroper: '🎁' teamdroper: "🎁",
} };
let leaderboard = data.map((row, i) => { let leaderboard = data
.map((row, i) => {
let position; let position;
switch (i) { switch (i) {
case 0: case 0:
position = ':first_place:'; position = ":first_place:";
break; break;
case 1: case 1:
position = ':second_place:'; position = ":second_place:";
break; break;
case 2: case 2:
position = ':third_place:'; position = ":third_place:";
break; break;
default: default:
position = `**${i + 1}.**`; position = `**${i + 1}.**`;
} }
return `${position} <@${row.userId}> - \`${row.coins}\` ${emoji[type]}`; return `${position} <@${row.userId}> - \`${row.coins}\` ${emoji[type]}`;
}).join('\n\n'); })
.join("\n\n");
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🏆 Top 10 des membres du serveur') .setTitle("🏆 Top 10 des membres du serveur")
.setDescription(`Voici le top 10 des membres du serveur trié par ${type}:\n\n${leaderboard}`) .setDescription(
`Voici le top 10 des membres du serveur trié par ${type}:\n\n${leaderboard}`,
)
.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 embed return embed;
} }
const embed = await leaderboard(args[0]); const embed = await leaderboard(args[0]);
const select = new StringSelectMenuBuilder() const select = new StringSelectMenuBuilder()
.setCustomId('topLeaderboard') .setCustomId("topLeaderboard")
.setPlaceholder('Choisissez un type de leaderboard') .setPlaceholder("Choisissez un type de leaderboard")
.addOptions( .addOptions(
new StringSelectMenuOptionBuilder() new StringSelectMenuOptionBuilder()
.setLabel('Global') .setLabel("Global")
.setEmoji('🪙') .setEmoji("🪙")
.setDescription('Affiche le top en fonction de la somme de l\'argent en poche et en banque') .setDescription(
.setValue('coins'), "Affiche le top en fonction de la somme de l'argent en poche et en banque",
)
.setValue("coins"),
new StringSelectMenuOptionBuilder() new StringSelectMenuOptionBuilder()
.setLabel('Poche') .setLabel("Poche")
.setEmoji('💰') .setEmoji("💰")
.setDescription('Affiche le top en fonction de l\'argent en poche') .setDescription("Affiche le top en fonction de l'argent en poche")
.setValue('pocket'), .setValue("pocket"),
new StringSelectMenuOptionBuilder() new StringSelectMenuOptionBuilder()
.setLabel('Banque') .setLabel("Banque")
.setEmoji('🏦') .setEmoji("🏦")
.setDescription('Affiche le top en fonction de l\'argent en banque') .setDescription("Affiche le top en fonction de l'argent en banque")
.setValue('bank'), .setValue("bank"),
new StringSelectMenuOptionBuilder() new StringSelectMenuOptionBuilder()
.setLabel('Réputation') .setLabel("Réputation")
.setEmoji('🔺') .setEmoji("🔺")
.setDescription('Affiche le top en fonction de la réputation') .setDescription("Affiche le top en fonction de la réputation")
.setValue('reputation'), .setValue("reputation"),
new StringSelectMenuOptionBuilder() new StringSelectMenuOptionBuilder()
.setLabel('Niveau') .setLabel("Niveau")
.setEmoji('📊') .setEmoji("📊")
.setDescription('Affiche le top en fonction du niveau') .setDescription("Affiche le top en fonction du niveau")
.setValue('niveau'), .setValue("niveau"),
new StringSelectMenuOptionBuilder() new StringSelectMenuOptionBuilder()
.setLabel('Teams bank') .setLabel("Teams bank")
.setEmoji('👑') .setEmoji("👑")
.setDescription('Affiche le top en fonction de l\'argent des teams') .setDescription("Affiche le top en fonction de l'argent des teams")
.setValue('team'), .setValue("team"),
new StringSelectMenuOptionBuilder() new StringSelectMenuOptionBuilder()
.setLabel('Teams réputation') .setLabel("Teams réputation")
.setEmoji('🔺') .setEmoji("🔺")
.setDescription('Affiche le top en fonction de la réputation des teams') .setDescription(
.setValue('teamreputation'), "Affiche le top en fonction de la réputation des teams",
)
.setValue("teamreputation"),
new StringSelectMenuOptionBuilder() new StringSelectMenuOptionBuilder()
.setLabel('TeamDroper') .setLabel("TeamDroper")
.setEmoji('🎁') .setEmoji("🎁")
.setDescription('Affiche le top en fonction du nombre de coins donnés à une team') .setDescription(
.setValue('teamdroper') "Affiche le top en fonction du nombre de coins donnés à une team",
)
.setValue("teamdroper"),
); );
const row = new ActionRowBuilder() const row = new ActionRowBuilder().addComponents(select);
.addComponents(select);
const replyMessage = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }) const replyMessage = await 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 === 'topLeaderboard') { if (interaction.customId === "topLeaderboard") {
const selected = interaction.values[0]; const selected = interaction.values[0];
await interaction.deferUpdate(); await interaction.deferUpdate();
const embed = await leaderboard(selected); const embed = await leaderboard(selected);
replyMessage.edit({ embeds: [embed] }); replyMessage.edit({ embeds: [embed] });
interaction.followUp({ content: 'Leaderboard mis à jour', ephemeral: true }); interaction.followUp({
content: "Leaderboard mis à jour",
ephemeral: true,
});
} }
}); });
}, },
} };
+44 -23
View File
@@ -1,49 +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: ['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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
}); },
);
}); });
const pocket = user.pocket; const pocket = user.pocket;
const bank = user.bank; const bank = user.bank;
let title = 'Retrait Impossible'; let title = "Retrait Impossible";
let description = ''; let description = "";
if (args.length === 0) { if (args.length === 0) {
description = '❌ Vous devez spécifier un montant à retirer.'; description = "❌ Vous devez spécifier un montant à retirer.";
} else if (args[0] === 'all') { } else if (args[0] === "all") {
if (bank <= 0) { if (bank <= 0) {
description = '❌ Vous n\'avez pas d\'argent à retirer de votre compte en banque.'; description =
"❌ Vous n'avez pas d'argent à retirer de votre compte en banque.";
} else { } else {
title = 'Retrait Réussi'; title = "Retrait Réussi";
description = `🏦 Vous avez retiré \`${bank}\` coins de votre compte en banque.`; description = `🏦 Vous avez retiré \`${bank}\` coins de votre compte en banque.`;
db.run(`UPDATE users SET pocket = ?, bank = ? WHERE guildId = ? AND userId = ?`, [pocket + bank, 0, message.guild.id, message.author.id]); db.run(
`UPDATE users SET pocket = ?, bank = ? WHERE guildId = ? AND userId = ?`,
[pocket + bank, 0, message.guild.id, message.author.id],
);
} }
} else if (isNaN(args[0])) { } else if (isNaN(args[0])) {
description = '❌ Vous devez spécifier un montant valide à retirer.'; description = "❌ Vous devez spécifier un montant valide à retirer.";
} else if (bank <= 0) { } else if (bank <= 0) {
description = '❌ Vous n\'avez pas d\'argent à retirer.' description = "❌ Vous n'avez pas d'argent à retirer.";
} else if (parseInt(args[0]) > bank) { } else if (parseInt(args[0]) > bank) {
description = '❌ Vous n\'avez pas assez d\'argent dans votre compte en banque pour retirer cette somme.'; description =
"❌ Vous n'avez pas assez d'argent dans votre compte en banque pour retirer cette somme.";
} else if (parseInt(args[0]) <= 0) { } else if (parseInt(args[0]) <= 0) {
description = '❌ Vous ne pouvez pas retirer une somme négative ou nulle.'; description =
"❌ Vous ne pouvez pas retirer une somme négative ou nulle.";
} else { } else {
title = 'Retrait Réussi'; title = "Retrait Réussi";
description = `🏦 Vous avez retiré ${args[0]} coins de votre compte en banque.`; description = `🏦 Vous avez retiré ${args[0]} coins de votre compte en banque.`;
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]); 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() const embed = new EmbedBuilder()
@@ -51,7 +69,10 @@ 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(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}, },
+36 -19
View File
@@ -1,37 +1,52 @@
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
},
);
}); });
}); const lastWork = user.lastWork;
const lastWork = user.lastWork const pocket = user.pocket;
const pocket = user.pocket
if (lastWork > Date.now() - 2700000) { if (lastWork > Date.now() - 2700000) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Travail Impossible') .setTitle("Travail Impossible")
.setDescription(`❌ Vous avez déjà travaillé récemment. Veuillez attendre \`${Math.floor((lastWork + 2700000 - Date.now()) / 60000)}\` minutes avant de pouvoir travailler à nouveau.`) .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)) .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() * (500 - 100 + 1) + 100); const randomAmount = Math.floor(Math.random() * (500 - 100 + 1) + 100);
db.run(`UPDATE users SET pocket = ?, lastWork = ? WHERE guildId = ? AND userId = ?`, [pocket + randomAmount, Date.now(), message.guild.id, message.author.id]); db.run(
`UPDATE users SET pocket = ?, lastWork = ? WHERE guildId = ? AND userId = ?`,
[pocket + randomAmount, Date.now(), message.guild.id, message.author.id],
);
const works = [ const works = [
`💼 Vous avez exploré une ancienne ruine et avez trouvé \`${randomAmount}\` coins.`, `💼 Vous avez exploré une ancienne ruine et avez trouvé \`${randomAmount}\` coins.`,
@@ -75,13 +90,15 @@ module.exports = {
`👶 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}\`.`, `👶 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() const embed = new EmbedBuilder()
.setTitle('Travail Terminé') .setTitle("Travail Terminé")
.setDescription(works[Math.floor(Math.random() * works.length)]) .setDescription(works[Math.floor(Math.random() * works.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 } });
}, },
+35 -19
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: '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: "💰",
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
}); },
);
}); });
let member = message.author; let member = message.author;
let title = 'Ajout d\'argent'; let title = "Ajout d'argent";
let description = `💰 Vous avez ajouté ${args[0]} à votre ${args[1]}.`; let description = `💰 Vous avez ajouté ${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 ajouté ${args[0]} à la ${args[1]} de ${member.tag}.`; description = `💰 Vous avez ajouté ${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]} = ${args[1]} + ? WHERE guildId = ? AND userId = ?`, [args[0], message.guild.id, member.id]); 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 } }); message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
+89 -47
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 (
(!authorPerms || !authorPerms.has(PermissionFlagsBits.banMembers)) &&
!client.config.owners.includes(message.author.id)
) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Vous n\'avez pas les permissions pour expulser.') .setDescription("❌ Vous n'avez pas les permissions pour 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({
], allowedMentions: { repliedUser: false } 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]); let member = message.mentions.members.first(); // || message.guild.members.get(args[0]);
if (!member) { if (!member) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Veuillez spécifier un membre du serveur.') .setDescription("❌ Veuillez spécifier un membre du serveur.")
.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 motif = args[1] const motif = args[1];
if (motif.length < 2) { if (motif.length < 2) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Veuillez indiquer un motif.') .setDescription("❌ Veuillez indiquer un motif.")
.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 },
}); });
} }
let reponse let reponse;
member.ban({ reason: motif }) member.ban({ reason: motif }).then(async () => {
.then(async () => {
const btn = new ButtonBuilder() const btn = new ButtonBuilder()
.setCustomId('mp') .setCustomId("mp")
.setLabel('Prevenir le membre en MP') .setLabel("Prevenir le membre en MP")
.setStyle(ButtonStyle.Primary); .setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder() const row = new ActionRowBuilder().addComponents(btn);
.addComponents(btn);
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Membre banni !') .setTitle("Membre banni !")
.setDescription('Vous avez banni: <@' + member + '>\nMotif: `' + motif + '`') .setDescription(
"Vous avez banni: <@" + member + ">\nMotif: `" + motif + "`",
)
.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({
reponse = 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 === 'mp' && i.user.id === message.author.id; reponse = await message.reply({
const collector = reponse.createMessageComponentCollector({ filter, time: 30000 }) embeds: [embed],
collector.on('collect', async (interaction) => { components: [row],
const embedBanni = new EmbedBuilder() allowedMentions: { repliedUser: false },
.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', () => { 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 } }); reponse.edit({ components: [], allowedMentions: { repliedUser: false } });
}); });
} },
}; };
+34 -20
View File
@@ -1,22 +1,21 @@
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
@@ -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 },
}); });
} });
},
}; };
+89 -47
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 (
(!authorPerms || !authorPerms.has(PermissionFlagsBits.kickMembers)) &&
!client.config.owners.includes(message.author.id)
) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Vous n\'avez pas les permissions pour expulser.') .setDescription("❌ Vous n'avez pas les permissions pour 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({
], allowedMentions: { repliedUser: false } 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]); let member = message.mentions.members.first(); //|| message.guild.members.get(args[0]);
if (!member) { if (!member) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Veuillez spécifier un membre du serveur.') .setDescription("❌ Veuillez spécifier un membre du serveur.")
.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 motif = args[1] const motif = args[1];
if (motif.length < 2) { if (motif.length < 2) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Veuillez indiquer un motif.') .setDescription("❌ Veuillez indiquer un motif.")
.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 },
}); });
} }
let reponse let reponse;
member.kick({ reason: motif }) member.kick({ reason: motif }).then(async () => {
.then(async () => {
const btn = new ButtonBuilder() const btn = new ButtonBuilder()
.setCustomId('mp') .setCustomId("mp")
.setLabel('Prevenir le membre en MP') .setLabel("Prevenir le membre en MP")
.setStyle(ButtonStyle.Primary); .setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder() const row = new ActionRowBuilder().addComponents(btn);
.addComponents(btn);
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Membre expulser !') .setTitle("Membre expulser !")
.setDescription('Vous avez expulser: <@' + member + '>\nMotif: `' + motif + '`') .setDescription(
"Vous avez expulser: <@" + member + ">\nMotif: `" + motif + "`",
)
.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({
reponse = message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); text: `Demandé par ${message.author.tag}`,
}) iconURL: message.author.displayAvatarURL(),
});
const filter = i => i.customId === 'mp' && i.user.id === message.author.id; reponse = message.reply({
const collector = reponse.createMessageComponentCollector({ filter, time: 30000 }) embeds: [embed],
collector.on('collect', async (interaction) => { components: [row],
const embedkick = new EmbedBuilder() allowedMentions: { repliedUser: false },
.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', () => { 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 } }); reponse.edit({ components: [], allowedMentions: { repliedUser: false } });
}); });
} },
}; };
+118 -58
View File
@@ -1,25 +1,38 @@
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 (
(!authorPerms || !authorPerms.has(PermissionFlagsBits.MuteMembers)) &&
!client.config.owners.includes(message.author.id)
) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Vous n\'avez pas les permissions pour expulser.') .setDescription("❌ Vous n'avez pas les permissions pour 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({
], allowedMentions: { repliedUser: false } text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
}); });
} }
@@ -27,92 +40,139 @@ module.exports = {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Veuillez respecter ce format : <@membre|membreId> <min> <raison>.') .setDescription(
"❌ Veuillez respecter ce format : <@membre|membreId> <min> <raison>.",
)
.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 },
}); });
} }
let member = message.mentions.members.first() //|| message.guild.members.get(args[0]) let member = message.mentions.members.first(); //|| message.guild.members.get(args[0])
if (!member) { if (!member) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Veuillez spécifier un membre du serveur.') .setDescription("❌ Veuillez spécifier un membre du serveur.")
.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 },
}); });
} }
let time = args[1] let time = args[1];
if (time.length <= 3 || !time.includes('min')) { if (time.length <= 3 || !time.includes("min")) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Veuillez indiquer une durée valide <`x`min>.') .setDescription("❌ Veuillez indiquer une durée valide <`x`min>.")
.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 },
}); });
} }
time = time.replace('min', '') time = time.replace("min", "");
const motif = args[2] const motif = args[2];
if (motif.length <= 2) { if (motif.length <= 2) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ Veuillez indiquer un motif (minimum 3caractère).') .setDescription(
"❌ Veuillez indiquer un motif (minimum 3caractère).",
)
.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 },
}); });
} }
let reponse let reponse;
member.timeout(time * 60 * 1000, motif) member.timeout(time * 60 * 1000, motif).then(async () => {
.then(async () => {
const btn = new ButtonBuilder() const btn = new ButtonBuilder()
.setCustomId('mp') .setCustomId("mp")
.setLabel('Prevenir le membre en MP') .setLabel("Prevenir le membre en MP")
.setStyle(ButtonStyle.Primary); .setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder() const row = new ActionRowBuilder().addComponents(btn);
.addComponents(btn);
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Membre mute !') .setTitle("Membre mute !")
.setDescription('Vous avez mute: <@' + member + '>\nTemps: `' + time + '`min\nMotif: `' + motif + '`') .setDescription(
"Vous avez mute: <@" +
member +
">\nTemps: `" +
time +
"`min\nMotif: `" +
motif +
"`",
)
.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({
reponse = message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); text: `Demandé par ${message.author.tag}`,
}) iconURL: message.author.displayAvatarURL(),
});
const filter = i => i.customId === 'mp' && i.user.id === message.author.id; reponse = message.reply({
const collector = reponse.createMessageComponentCollector({ filter, time: 30000 }) embeds: [embed],
collector.on('collect', async (interaction) => { components: [row],
const embedkick = new EmbedBuilder() allowedMentions: { repliedUser: false },
.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', () => { 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 } }); reponse.edit({ components: [], allowedMentions: { repliedUser: false } });
}); });
} },
}; };
+28 -13
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(
`SELECT * FROM rolePermission WHERE guildId = ?`,
[message.guild.id],
(err, rows) => {
if (err) reject(err); if (err) reject(err);
resolve(rows); 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 },
});
}, },
}; };
+35 -19
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: '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: "💰",
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
}); },
);
}); });
let member = message.author; let member = message.author;
let title = 'Argent retiré'; let title = "Argent retiré";
let description = `💰 Vous avez retiré ${args[0]} à votre ${args[1]}.`; let description = `💰 Vous avez retiré ${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 retiré ${args[0]} à la ${args[1]} de ${member.tag}.`; description = `💰 Vous avez retiré ${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]} = ${args[1]} - ? WHERE guildId = ? AND userId = ?`, [args[0], message.guild.id, member.id]); 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 } }); message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
+45 -18
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}`,
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 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 } });
}, },
+35 -19
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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 } });
+77 -32
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 },
});
}, },
}; };
+286 -117
View File
@@ -1,13 +1,29 @@
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 cardValues = { const cardValues = {
'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 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 cardSymbols = ['♠️', '♥️', '♦️', '♣️']; const cardSymbols = ["♠️", "♥️", "♦️", "♣️"];
const usersWithGameInProgress = new Map(); const usersWithGameInProgress = new Map();
setInterval(() => { setInterval(() => {
usersWithGameInProgress.clear(); usersWithGameInProgress.clear();
@@ -15,352 +31,505 @@ setInterval(() => {
function drawCard() { function drawCard() {
const symbol = cardSymbols[Math.floor(Math.random() * cardSymbols.length)]; const symbol = cardSymbols[Math.floor(Math.random() * cardSymbols.length)];
const value = Object.keys(cardValues)[Math.floor(Math.random() * Object.keys(cardValues).length)]; const value =
Object.keys(cardValues)[
Math.floor(Math.random() * Object.keys(cardValues).length)
];
return { symbol, value }; return { symbol, value };
} }
module.exports = { module.exports = {
aliases: ['bj'], aliases: ["bj"],
description: 'Joue au blackjack.', description: "Joue au blackjack.",
emote: '🃏', emote: "🃏",
utilisation: '<mise>', 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('🃏 Blackjack') .setTitle("🃏 Blackjack")
.setDescription(`Vous devez spécifier une mise. Exemple : \`&blackjack 100\`.`) .setDescription(
`Vous devez spécifier une mise. Exemple : \`&blackjack 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(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
} 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('🃏 Blackjack') .setTitle("🃏 Blackjack")
.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(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
} 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('🃏 Blackjack') .setTitle("🃏 Blackjack")
.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(),
});
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 userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { db.get(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(row.pocket); 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('🃏 Blackjack') .setTitle("🃏 Blackjack")
.setDescription(`Vous n'avez pas assez d'argent pour miser cette somme.`) .setDescription(
`Vous n'avez pas assez d'argent 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(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}); });
} else { } else {
const user = message.author; const user = message.author;
const guildId = message.guild.id; const guildId = message.guild.id;
const currencyName = 'coins' const currencyName = "coins";
let amount = args[0]; let amount = args[0];
let pocketAmount = await new Promise((resolve, reject) => { 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) => { db.get(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(row.pocket || 0); resolve(row.pocket || 0);
} }
},
);
}); });
});
const playerCards = [drawCard(), drawCard()]; const playerCards = [drawCard(), drawCard()];
const dealerCards = [drawCard()]; const dealerCards = [drawCard()];
const playerTotal = playerCards.reduce((total, card) => total + cardValues[card.value], 0); const playerTotal = playerCards.reduce(
(total, card) => total + cardValues[card.value],
0,
);
if (playerTotal === 21 && playerCards.length === 2) { if (playerTotal === 21 && playerCards.length === 2) {
const blackjackPayoutMultiplier = 1.25; const blackjackPayoutMultiplier = 1.25;
const winnings = Math.floor(amount * blackjackPayoutMultiplier); const winnings = Math.floor(amount * blackjackPayoutMultiplier);
let pocketAmount = await new Promise((resolve, reject) => { 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) => { db.get(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(row.pocket || 0); resolve(row.pocket || 0);
} }
}); },
);
}); });
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
db.run(`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, [pocketAmount + winnings, message.author.id, message.guild.id], (err) => { db.run(
`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`,
[pocketAmount + winnings, message.author.id, message.guild.id],
(err) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(); resolve();
} }
}); },
);
}); });
const winEmbed = new EmbedBuilder() const winEmbed = new EmbedBuilder()
.setTitle('Blackjack 🎲') .setTitle("Blackjack 🎲")
.setDescription(`Félicitations ! Vous avez un blackjack naturel et vous avez gagné ${winnings} ${currencyName}.`) .setDescription(
.setColor('#0099ff'); `Félicitations ! Vous avez un blackjack naturel et vous avez gagné ${winnings} ${currencyName}.`,
)
.setColor("#0099ff");
return message.reply({ embeds: [winEmbed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [winEmbed],
allowedMentions: { repliedUser: false },
});
} }
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Blackjack 🎲') .setTitle("Blackjack 🎲")
.setThumbnail('https://cdn.discordapp.com/attachments/1120446538544595005/1190016467257802843/kumarhane-poker.gif?ex=65a04433&is=658dcf33&hm=3ea3b7c74eb724d17249e3a60968f8c10b7d85452f3684b969a02a17ca79ab3e&') .setThumbnail(
.addFields( "https://cdn.discordapp.com/attachments/1120446538544595005/1190016467257802843/kumarhane-poker.gif?ex=65a04433&is=658dcf33&hm=3ea3b7c74eb724d17249e3a60968f8c10b7d85452f3684b969a02a17ca79ab3e&",
{ name: 'Votre main', value: `Cartes: ${playerCards.map(card => card.symbol + ' ' + card.value).join(' ')}\nTotal: ${playerTotal}`, inline: true },
{ name: 'Main du croupier', value: `Cartes: ${dealerCards[0].symbol + ' ' + dealerCards[0].value} ?\nTotal: ?`, inline: true }
) )
.setColor('#0099ff'); .addFields(
{
name: "Votre main",
value: `Cartes: ${playerCards.map((card) => card.symbol + " " + card.value).join(" ")}\nTotal: ${playerTotal}`,
inline: true,
},
{
name: "Main du croupier",
value: `Cartes: ${dealerCards[0].symbol + " " + dealerCards[0].value} ?\nTotal: ?`,
inline: true,
},
)
.setColor("#0099ff");
const row = new ActionRowBuilder() const row = new ActionRowBuilder().addComponents(
.addComponents(
new ButtonBuilder() new ButtonBuilder()
.setCustomId('blackjack_hit') .setCustomId("blackjack_hit")
.setLabel('Hit') .setLabel("Hit")
.setStyle(ButtonStyle.Primary), .setStyle(ButtonStyle.Primary),
new ButtonBuilder() new ButtonBuilder()
.setCustomId('blackjack_stand') .setCustomId("blackjack_stand")
.setLabel('Stand') .setLabel("Stand")
.setStyle(ButtonStyle.Primary), .setStyle(ButtonStyle.Primary),
new ButtonBuilder() new ButtonBuilder()
.setCustomId('blackjack_cancel') .setCustomId("blackjack_cancel")
.setLabel('Annuler') .setLabel("Annuler")
.setStyle(ButtonStyle.Danger) .setStyle(ButtonStyle.Danger),
); );
const msg = await message.channel.send({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); const msg = await message.channel.send({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
});
const collector = msg.createMessageComponentCollector({ time: 60000 }); const collector = msg.createMessageComponentCollector({ time: 60000 });
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
db.run(`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, [pocketAmount - amount, message.author.id, message.guild.id], (err) => { db.run(
`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`,
[pocketAmount - amount, message.author.id, message.guild.id],
(err) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(); resolve();
} }
}); },
);
}); });
usersWithGameInProgress.set(user.id); usersWithGameInProgress.set(user.id);
collector.on('collect', async i => { collector.on("collect", async (i) => {
if (i.user.id !== user.id) { if (i.user.id !== user.id) {
return i.reply({ content: ":x: Vous n'avez pas la permission d'interagir avec ces boutons", ephemeral: true }); return i.reply({
content:
":x: Vous n'avez pas la permission d'interagir avec ces boutons",
ephemeral: true,
});
} }
await i.deferUpdate(); await i.deferUpdate();
if (i.customId === 'blackjack_hit') { if (i.customId === "blackjack_hit") {
playerCards.push(drawCard()); playerCards.push(drawCard());
let playerTotal = playerCards.reduce((total, card) => total + cardValues[card.value], 0); let playerTotal = playerCards.reduce(
(total, card) => total + cardValues[card.value],
0,
);
if (playerTotal === 21) { if (playerTotal === 21) {
const winnings = amount * 1.5; const winnings = amount * 1.5;
let pocketAmount = await new Promise((resolve, reject) => { 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) => { db.get(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(row.pocket || 0); resolve(row.pocket || 0);
} }
}); },
);
}); });
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
db.run(`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, [pocketAmount + winnings, message.author.id, message.guild.id], (err) => { db.run(
`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`,
[pocketAmount + winnings, message.author.id, message.guild.id],
(err) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(); resolve();
} }
}); },
);
}); });
const winEmbed = new EmbedBuilder() const winEmbed = new EmbedBuilder()
.setTitle('Blackjack 🎲') .setTitle("Blackjack 🎲")
.setDescription(`Félicitations ! Vous avez atteint 21. Vous avez gagné ${winnings} ${currencyName}.`) .setDescription(
.setColor('#0099ff'); `Félicitations ! Vous avez atteint 21. Vous avez gagné ${winnings} ${currencyName}.`,
)
.setColor("#0099ff");
message.reply({ embeds: [winEmbed], allowedMentions: { repliedUser: false } }); message.reply({
embeds: [winEmbed],
allowedMentions: { repliedUser: false },
});
usersWithGameInProgress.delete(user.id); usersWithGameInProgress.delete(user.id);
collector.stop(); collector.stop();
} else if (playerTotal > 21) { } else if (playerTotal > 21) {
const loseEmbed = new EmbedBuilder() const loseEmbed = new EmbedBuilder()
.setTitle('Blackjack 🎲') .setTitle("Blackjack 🎲")
.setDescription(`Vous avez dépassé 21. Vous avez perdu ${amount} ${currencyName}.`) .setDescription(
.setColor('#0099ff'); `Vous avez dépassé 21. Vous avez perdu ${amount} ${currencyName}.`,
)
.setColor("#0099ff");
message.reply({ embeds: [loseEmbed], allowedMentions: { repliedUser: false } }); message.reply({
embeds: [loseEmbed],
allowedMentions: { repliedUser: false },
});
collector.stop(); collector.stop();
} else { } else {
embed.spliceFields(0, 1, { name: 'Votre main', value: `Cartes: ${playerCards.map(card => card.symbol + ' ' + card.value).join(' ')}\nTotal: ${playerTotal}`, inline: true }); embed.spliceFields(0, 1, {
name: "Votre main",
value: `Cartes: ${playerCards.map((card) => card.symbol + " " + card.value).join(" ")}\nTotal: ${playerTotal}`,
inline: true,
});
i.editReply({ embeds: [embed] }); i.editReply({ embeds: [embed] });
} }
usersWithGameInProgress.delete(user.id); usersWithGameInProgress.delete(user.id);
} else if (i.customId === 'blackjack_stand') { } else if (i.customId === "blackjack_stand") {
let dealerTotal = dealerCards.reduce((total, card) => total + cardValues[card.value], 0); let dealerTotal = dealerCards.reduce(
(total, card) => total + cardValues[card.value],
0,
);
while (dealerTotal < 17) { while (dealerTotal < 17) {
dealerCards.push(drawCard()); dealerCards.push(drawCard());
dealerTotal = dealerCards.reduce((total, card) => total + cardValues[card.value], 0); dealerTotal = dealerCards.reduce(
(total, card) => total + cardValues[card.value],
0,
);
} }
const playerTotal = playerCards.reduce((total, card) => total + cardValues[card.value], 0); const playerTotal = playerCards.reduce(
(total, card) => total + cardValues[card.value],
0,
);
let result; let result;
if (dealerTotal > 21) { if (dealerTotal > 21) {
result = `Le croupier a dépassé 21. Vous gagnez ${amount * 1.5} ${currencyName}. !`; result = `Le croupier a dépassé 21. Vous gagnez ${amount * 1.5} ${currencyName}. !`;
let pocketAmount = await new Promise((resolve, reject) => { 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) => { db.get(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(row.pocket || 0); resolve(row.pocket || 0);
} }
}); },
);
}); });
await new Promise((resolve, reject) => { 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) => { db.run(
`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`,
[
pocketAmount + amount * 1.5,
message.author.id,
message.guild.id,
],
(err) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(); resolve();
} }
}); },
);
}); });
const winEmbed = new EmbedBuilder() const winEmbed = new EmbedBuilder()
.setTitle('Blackjack 🎲') .setTitle("Blackjack 🎲")
.setDescription(result) .setDescription(result)
.setColor('#0099ff'); .setColor("#0099ff");
message.reply({ embeds: [winEmbed], allowedMentions: { repliedUser: false } }); message.reply({
embeds: [winEmbed],
allowedMentions: { repliedUser: false },
});
usersWithGameInProgress.delete(user.id); usersWithGameInProgress.delete(user.id);
} else if (dealerTotal > playerTotal) { } else if (dealerTotal > playerTotal) {
result = `Le croupier a ${dealerTotal} et gagne. Vous avez perdu ${amount} ${currencyName}.`; result = `Le croupier a ${dealerTotal} et gagne. Vous avez perdu ${amount} ${currencyName}.`;
const loseEmbed = new EmbedBuilder() const loseEmbed = new EmbedBuilder()
.setTitle('Blackjack 🎲') .setTitle("Blackjack 🎲")
.setDescription(result) .setDescription(result)
.setColor('#0099ff'); .setColor("#0099ff");
message.reply({ embeds: [loseEmbed], allowedMentions: { repliedUser: false } }); message.reply({
embeds: [loseEmbed],
allowedMentions: { repliedUser: false },
});
usersWithGameInProgress.delete(user.id); usersWithGameInProgress.delete(user.id);
} else if (dealerTotal < playerTotal) { } else if (dealerTotal < playerTotal) {
let pocketAmount = await new Promise((resolve, reject) => { 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) => { db.get(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(row.pocket || 0); resolve(row.pocket || 0);
} }
}); },
);
}); });
const winnings = amount * 1.5; const winnings = amount * 1.5;
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
db.run(`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, [pocketAmount + winnings, message.author.id, message.guild.id], (err) => { db.run(
`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`,
[pocketAmount + winnings, message.author.id, message.guild.id],
(err) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(); resolve();
} }
}); },
);
}); });
result = `Vous gagnez ! Vous avez gagné ${winnings} ${currencyName}.`; result = `Vous gagnez ! Vous avez gagné ${winnings} ${currencyName}.`;
const winEmbed = new EmbedBuilder() const winEmbed = new EmbedBuilder()
.setTitle('Blackjack 🎲') .setTitle("Blackjack 🎲")
.setDescription(result) .setDescription(result)
.setColor('#0099ff'); .setColor("#0099ff");
message.reply({ embeds: [winEmbed], allowedMentions: { repliedUser: false } }); message.reply({
embeds: [winEmbed],
allowedMentions: { repliedUser: false },
});
usersWithGameInProgress.delete(user.id); usersWithGameInProgress.delete(user.id);
} else { } else {
result = 'Il y a eu égalité. Vous récupérez votre mise.'; result = "Il y a eu égalité. Vous récupérez votre mise.";
let pocketAmount = await db.get(`${guildId}.pocket.${user.id}`) || 0; let pocketAmount =
(await db.get(`${guildId}.pocket.${user.id}`)) || 0;
await db.set(`${guildId}.pocket.${user.id}`, pocketAmount + amount); await db.set(`${guildId}.pocket.${user.id}`, pocketAmount + amount);
const tieEmbed = new EmbedBuilder() const tieEmbed = new EmbedBuilder()
.setTitle('Blackjack 🎲') .setTitle("Blackjack 🎲")
.setDescription(result) .setDescription(result)
.setColor('#0099ff'); .setColor("#0099ff");
message.reply({ embeds: [tieEmbed], allowedMentions: { repliedUser: false } }); message.reply({
embeds: [tieEmbed],
allowedMentions: { repliedUser: false },
});
} }
usersWithGameInProgress.delete(user.id); usersWithGameInProgress.delete(user.id);
collector.stop(); collector.stop();
} else if (i.customId === 'blackjack_cancel') { } else if (i.customId === "blackjack_cancel") {
let pocketAmount = await new Promise((resolve, reject) => { 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) => { db.get(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(row.pocket || 0); resolve(row.pocket || 0);
} }
}); },
);
}); });
await new Promise((resolve, reject) => { 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) => { db.run(
`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`,
[pocketAmount + amount / 2, message.author.id, message.guild.id],
(err) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(); resolve();
} }
}); },
);
}); });
const cancelEmbed = new EmbedBuilder() const cancelEmbed = new EmbedBuilder()
.setTitle('Blackjack 🎲') .setTitle("Blackjack 🎲")
.setDescription('Partie annulée. Vous récupérez la moitié de votre mise.') .setDescription(
.setColor('#0099ff'); "Partie annulée. Vous récupérez la moitié de votre mise.",
)
.setColor("#0099ff");
message.reply({ embeds: [cancelEmbed], allowedMentions: { repliedUser: false } }); message.reply({
embeds: [cancelEmbed],
allowedMentions: { repliedUser: false },
});
usersWithGameInProgress.delete(user.id); usersWithGameInProgress.delete(user.id);
collector.stop(); collector.stop();
} }
}); });
} }
} },
}; };
+112 -54
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(
`SELECT key FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(row.key); resolve(row.key);
} }
},
);
}); });
}); if (key == 0)
if (key == 0) return message.reply('Tu n\'as pas de clef, tu ne peux pas ouvrir de box') 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]) 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)) .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(),
});
const msg = await message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) const msg = await message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
await new Promise(resolve => setTimeout(resolve, 1000)); await new Promise((resolve) => setTimeout(resolve, 1000));
const result = Math.floor(Math.random() * 30); const result = Math.floor(Math.random() * 30);
let gain = ''; let gain = "";
let emoji = ''; let emoji = "";
let recompense = ''; let recompense = "";
if (result === 0) { if (result === 0) {
gain = '30000'; gain = "30000";
emoji = '💰'; emoji = "💰";
recompense = 'bank'; recompense = "bank";
} else if (result === 1) { } else if (result === 1) {
gain = '5'; gain = "5";
emoji = '🗝️'; emoji = "🗝️";
recompense = 'key'; recompense = "key";
} else if (result === 2) { } else if (result === 2) {
emoji = '👑'; emoji = "👑";
recompense = 'couronne'; recompense = "couronne";
} else if (result % 2 === 0) { } else if (result % 2 === 0) {
gain = '5000'; gain = "5000";
emoji = '🪙'; emoji = "🪙";
recompense = 'pocket'; recompense = "pocket";
} else { } else {
gain = '3'; gain = "3";
emoji = '🔺'; emoji = "🔺";
recompense = 'reputation'; recompense = "reputation";
} }
if (recompense !== 'couronne') { if (recompense !== "couronne") {
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
db.run(`UPDATE users SET ${recompense} = ${recompense} + ? WHERE userId = ? AND guildId = ?`, [gain, message.author.id, message.guild.id], (err) => { db.run(
`UPDATE users SET ${recompense} = ${recompense} + ? WHERE userId = ? AND guildId = ?`,
[gain, message.author.id, message.guild.id],
(err) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(); resolve();
} }
},
);
}); });
}); msg.delete();
msg.delete() message.reply({
message.reply({ embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🗝️ Box') .setTitle("🗝️ Box")
.setDescription(`${emoji, emoji, emoji}\n${emoji, emoji, emoji}\n${emoji, emoji, emoji}\n\nVous avez gagner ${gain}${recompense} !`) .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({
], allowedMentions: { repliedUser: false } }) text: `Demandé par ${message.author.tag} | Il te reste ${key - 1}clef`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} else { } else {
db.run(`UPDATE users SET bank = bank + ? WHERE userId = ? AND guildId = ?`, [15000, message.author.id, message.guild.id]) db.run(
db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [5000, message.author.id, message.guild.id]) `UPDATE users SET bank = bank + ? WHERE userId = ? AND guildId = ?`,
db.run(`UPDATE users SET reputation = reputation + ? WHERE userId = ? AND guildId = ?`, [5, message.author.id, message.guild.id]) [15000, 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(
db.run(`UPDATE users SET lvl = lvl + ? WHERE userId = ? AND guildId = ?`, [2, message.author.id, message.guild.id]) `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() msg.delete();
message.reply({ embeds: [ message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🗝️ Box') .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 !!**`) .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)) .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({
], allowedMentions: { repliedUser: false } }) text: `Demandé par ${message.author.tag} | Il te reste ${key - 1}clef`,
} iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} }
},
}; };
+152 -72
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(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(row.pocket); 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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
} else if (!face.includes(1) && !face.includes(2) && !face.includes(3) && !face.includes(4) && !face.includes(5) && !face.includes(6)) { message.reply({
embedColor(message.author.id, message.guild.id).then(color => { embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} else if (
!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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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}`,
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
await new Promise(resolve => setTimeout(resolve, 7500)); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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(
`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`,
[gain, message.author.id, message.guild.id],
(err) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(); 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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
} message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} }
},
}; };
+283 -124
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,84 +27,133 @@ module.exports = {
member = args[0]; member = args[0];
mise = args[1]; mise = args[1];
} else { } else {
return message.reply({ embeds: [ return message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🔫 Gunfight') .setTitle("🔫 Gunfight")
.setDescription(`Vous devez spécifier un membre et une mise. Exemple : \`&gunfight @membre 100\`.`) .setDescription(
`Vous devez spécifier un membre et une mise. Exemple : \`&gunfight @membre 100\`.`,
)
.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 },
});
} }
if (!member || !mise) { if (!member || !mise) {
return message.reply({ embeds: [ return message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🔫 Gunfight') .setTitle("🔫 Gunfight")
.setDescription(`Vous devez spécifier un membre et une mise. Exemple : \`&gunfight @membre 100\`.`) .setDescription(
`Vous devez spécifier un membre et une mise. Exemple : \`&gunfight @membre 100\`.`,
)
.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 },
});
} }
if (isNaN(mise)) { if (isNaN(mise)) {
return message.reply({ embeds: [ return message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🔫 Gunfight') .setTitle("🔫 Gunfight")
.setDescription(`La mise doit être un nombre.`) .setDescription(`La mise 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({
], allowedMentions: { repliedUser: false } }) 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({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🔫 Gunfight') .setTitle("🔫 Gunfight")
.setDescription(`La mise doit être supérieure ou égale à \`25\`.`) .setDescription(`La mise doit être supérieure ou égale à \`25\`.`)
.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 },
});
} }
if (member === message.author.id) { if (member === message.author.id) {
return message.reply({ embeds: [ return message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🔫 Gunfight') .setTitle("🔫 Gunfight")
.setDescription(`Vous ne pouvez pas jouer contre vous-même.`) .setDescription(`Vous ne pouvez pas jouer contre vous-même.`)
.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 },
});
} }
if (member === client.user.id) { if (member === client.user.id) {
return message.reply({ embeds: [ return message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🔫 Gunfight') .setTitle("🔫 Gunfight")
.setDescription(`Je ne peux pas jouer contre vous désolé.`) .setDescription(`Je ne peux pas jouer contre vous désolé.`)
.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 },
});
} }
if (client.users.cache.get(member)?.bot) { if (client.users.cache.get(member)?.bot) {
return message.reply({ embeds: [ return message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🔫 Gunfight') .setTitle("🔫 Gunfight")
.setDescription('Vous ne pouvez pas jouer contre un bot.') .setDescription("Vous ne pouvez pas jouer contre un bot.")
.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 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(
`SELECT * FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
@@ -109,11 +163,15 @@ module.exports = {
resolve(null); 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(
`SELECT * FROM users WHERE userId = ? AND guildId = ?`,
[member, message.guild.id],
(err, row) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
@@ -123,130 +181,204 @@ module.exports = {
resolve(null); resolve(null);
} }
} }
}); },
);
}); });
if (pocketUser === null) { if (pocketUser === null) {
return message.reply({ embeds: [ return message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🔫 Gunfight') .setTitle("🔫 Gunfight")
.setDescription(`Vous n'êtes pas enregistré dans la base de données.`) .setDescription(
`Vous n'êtes pas enregistré dans la base de donné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({
], allowedMentions: { repliedUser: false } }) 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({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🔫 Gunfight') .setTitle("🔫 Gunfight")
.setDescription(`Le membre spécifié n'existe pas.`) .setDescription(`Le membre spécifié n'existe pas.`)
.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 },
});
} }
if (pocketUser < mise) { if (pocketUser < mise) {
return message.reply({ embeds: [ return message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🔫 Gunfight') .setTitle("🔫 Gunfight")
.setDescription(`Vous n'avez pas assez d'argent sur vous pour miser cette somme.\nVotre solde actuel est de ${pocketUser} coins.`) .setDescription(
`Vous n'avez pas assez d'argent sur vous pour miser cette somme.\nVotre solde actuel est de ${pocketUser} 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({
], allowedMentions: { repliedUser: false } }) 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({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🔫 Gunfight') .setTitle("🔫 Gunfight")
.setDescription(`Ce membre n'a pas assez d'argent sur lui pour miser cette somme.\nSon solde actuel est de ${pocketMember} coins.`) .setDescription(
`Ce membre n'a pas assez d'argent sur lui pour miser cette somme.\nSon solde actuel est de ${pocketMember} 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({
], allowedMentions: { repliedUser: false } }) 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({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🔫 Gunfight') .setTitle("🔫 Gunfight")
.setDescription(`Vous n'avez pas d'argent sur vous pour miser.`) .setDescription(`Vous n'avez pas d'argent sur vous pour miser.`)
.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 },
});
} }
if (pocketMember === 0) { if (pocketMember === 0) {
return message.reply({ embeds: [ return message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🔫 Gunfight') .setTitle("🔫 Gunfight")
.setDescription(`Ce membre n'a pas d'argent sur lui pour miser.`) .setDescription(`Ce membre n'a pas d'argent sur lui pour miser.`)
.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 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({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🔫 Gunfight') .setTitle("🔫 Gunfight")
.setDescription(`Le membre a accepté votre défi de gunfight. Le duel va commencer.\nAppuyez sur le bouton pour tirer quand il devient vert.`) .setDescription(
`Le membre a accepté votre défi de gunfight. Le duel va commencer.\nAppuyez sur le bouton pour tirer quand il devient vert.`,
)
.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({
], components: [actionRow] }); 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({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🔫 Gunfight') .setTitle("🔫 Gunfight")
.setDescription(`Le duel est terminé. <@${winner}> a gagné la somme de ${mise*2} coins car <@${notwinner}> a tiré trop tôt`) .setDescription(
.setColor(await embedColor(message.author.id, message.guild.id)) `Le duel est terminé. <@${winner}> a gagné la somme de ${mise * 2} coins car <@${notwinner}> a tiré trop tôt`,
.setTimestamp() )
] }); .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({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🔫 Gunfight') .setTitle("🔫 Gunfight")
.setDescription(`Le duel est terminé. <@${i.user.id}> a gagné la somme de ${mise*2} coins.`) .setDescription(
.setColor(await embedColor(message.author.id, message.guild.id)) `Le duel est terminé. <@${i.user.id}> a gagné la somme de ${mise * 2} coins.`,
.setTimestamp() )
] }); .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({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🔫 Gunfight') .setTitle("🔫 Gunfight")
.setDescription(`Le membre a refusé votre défi de gunfight.`) .setDescription(`Le membre a refusé votre défi de gunfight.`)
.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({
], components: [] }); text: `Demandé par ${message.author.tag}`,
} iconURL: message.author.displayAvatarURL(),
}),
],
components: [],
}); });
} }
});
},
}; };
+152 -73
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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
async (err, row) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(row.pocket); 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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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}`,
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
await new Promise(resolve => setTimeout(resolve, 7500)); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
let nombre1 = await Math.floor(Math.random() * 10) await new Promise((resolve) => setTimeout(resolve, 7500));
let nombre2 = await Math.floor(Math.random() * (nombre1 + 1))
let nombre3 = await Math.floor(Math.random() * (nombre2 + 2)) let nombre1 = await Math.floor(Math.random() * 10);
let nombre2 = await Math.floor(Math.random() * (nombre1 + 1));
let nombre3 = await Math.floor(Math.random() * (nombre2 + 2));
let gain = 0; 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(
`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`,
[gain, message.author.id, message.guild.id],
(err) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(); 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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
} message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} }
},
}; };
+153 -77
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({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🪨 Pierre Feuille Ciseau') .setTitle("🪨 Pierre Feuille Ciseau")
.setDescription(`Vous devez spécifier une mise et un coup. Exemple : \`&pierre-feuille-ciseau 100 pierre\`.`) .setDescription(
`Vous devez spécifier une mise et un coup. Exemple : \`&pierre-feuille-ciseau 100 pierre\`.`,
)
.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 },
});
} else if (isNaN(args[0])) { } else if (isNaN(args[0])) {
return message.reply({ embeds: [ return message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🪨 Pierre Feuille Ciseau') .setTitle("🪨 Pierre Feuille Ciseau")
.setDescription(`La mise doit être un nombre.`) .setDescription(`La mise 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({
], allowedMentions: { repliedUser: false } }) 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({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🪨 Pierre Feuille Ciseau') .setTitle("🪨 Pierre Feuille Ciseau")
.setDescription(`La mise doit être supérieure ou égale à \`25\`.`) .setDescription(`La mise doit être supérieure ou égale à \`25\`.`)
.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(),
} else if (args[1] !== 'pierre' && args[1] !== 'p' && args[1] !== 'feuille' && args[1] !== 'f' && args[1] !== 'ciseau' && args[1] !== 'c') { }),
return message.reply({ embeds: [ ],
allowedMentions: { repliedUser: false },
});
} else if (
args[1] !== "pierre" &&
args[1] !== "p" &&
args[1] !== "feuille" &&
args[1] !== "f" &&
args[1] !== "ciseau" &&
args[1] !== "c"
) {
return message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🪨 Pierre Feuille Ciseau') .setTitle("🪨 Pierre Feuille Ciseau")
.setDescription(`La coup doit être \`pierre\`, \`feuille\` ou \`ciseau\`.`) .setDescription(
`La coup doit être \`pierre\`, \`feuille\` ou \`ciseau\`.`,
)
.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 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(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
async (err, row) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(row.pocket); resolve(row.pocket);
} }
}); },
);
}); });
if (pocket < args[0]) return message.reply({ if (pocket < args[0])
return 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 n'avez pas assez d'argent sur vous pour miser cette somme.`,
)
.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: [ const sendMessage = await message.reply({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🪨 Pierre Feuille Ciseau') .setTitle("🪨 Pierre Feuille Ciseau")
.setDescription(`Vous avez misé(e) \`${args[0]}\` coins sur \`${args[1]}\`...\nRésultat dans 7.5 secondes...`) .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 },
});
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 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({
embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🪨 Pierre Feuille Ciseau') .setTitle("🪨 Pierre Feuille Ciseau")
.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(),
}),
],
});
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(
`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`,
[gain, message.author.id, message.guild.id],
(err) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(); resolve();
} }
},
);
}); });
}); },
}
}; };
+156 -75
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(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(row.pocket); 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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
} else if (args[1] !== 'pile' && args[1] !== 'face' && args[1] !== 'p' && args[1] !== 'f') { message.reply({
embedColor(message.author.id, message.guild.id).then(color => { embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} else if (
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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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}`,
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
await new Promise(resolve => setTimeout(resolve, 7500)); return message.reply({
embeds: [embed],
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 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(
`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`,
[gain, message.author.id, message.guild.id],
(err) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(); 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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
} message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} }
},
}; };
+114 -57
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(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(row.pocket); 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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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}`,
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
await new Promise(resolve => setTimeout(resolve, 7500)); return message.reply({
embeds: [embed],
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 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(
`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`,
[gain, message.author.id, message.guild.id],
(err) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(); 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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
} message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} }
},
}; };
+166 -78
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,
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.', description: "Lance une roulette.",
emote: '🎲', emote: "🎲",
utilisation: '<mise> <couleur>', utilisation: "<mise> <couleur>",
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(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(row.pocket); resolve(row.pocket);
} }
},
);
}); });
}); if (args[0] == "all") {
if (args[0] == 'all') { mise = pocket;
mise = pocket
} else { } else {
mise = args[0] mise = args[0];
} }
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('🎲 Roulette') .setTitle("🎲 Roulette")
.setDescription(`Vous devez spécifier une mise et une couleur. Exemple : \`&roulette 100 rouge\`.`) .setDescription(
`Vous devez spécifier une mise et une couleur. Exemple : \`&roulette 100 rouge\`.`,
)
.setColor(color) .setColor(color)
.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(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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('🎲 Roulette') .setTitle("🎲 Roulette")
.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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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('🎲 Roulette') .setTitle("🎲 Roulette")
.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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
} else if (args[1] !== 'rouge' && args[1] !== 'noir' && args[1] !== 'vert' && args[1] !== 'red' && args[1] !== 'black' && args[1] !== 'green') { message.reply({
embedColor(message.author.id, message.guild.id).then(color => { embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} else if (
args[1] !== "rouge" &&
args[1] !== "noir" &&
args[1] !== "vert" &&
args[1] !== "red" &&
args[1] !== "black" &&
args[1] !== "green"
) {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🎲 Roulette') .setTitle("🎲 Roulette")
.setDescription(`La couleur doit être \`rouge\`, \`noir\` ou \`vert\`.`) .setDescription(
`La couleur doit être \`rouge\`, \`noir\` ou \`vert\`.`,
)
.setColor(color) .setColor(color)
.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(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} }
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('🎲 Roulette') .setTitle("🎲 Roulette")
.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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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('🎲 Roulette') .setTitle("🎲 Roulette")
.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 bille 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 bille 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}`,
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
await new Promise(resolve => setTimeout(resolve, 7500)); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
await new Promise((resolve) => setTimeout(resolve, 7500));
const result = Math.floor(Math.random() * 37); const result = Math.floor(Math.random() * 37);
let colorR = ''; let colorR = "";
if (result === 0) { if (result === 0) {
colorR = 'vert'; colorR = "vert";
} else if (result % 2 === 0) { } else if (result % 2 === 0) {
colorR = 'rouge'; colorR = "rouge";
} else { } else {
colorR = 'noir'; colorR = "noir";
} }
let gain = 0; let gain = 0;
if (((args[1] === 'rouge' || args[1] === 'red') && colorR === 'rouge') || ((args[1] === 'noir' || args[1] === 'black') && colorR === 'noir')) { if (
((args[1] === "rouge" || args[1] === "red") && colorR === "rouge") ||
((args[1] === "noir" || args[1] === "black") && colorR === "noir")
) {
gain = Math.round(mise * 1.5); gain = Math.round(mise * 1.5);
} else if ((args[1] === 'vert' || args[1] === 'green') && colorR === 'vert') { } else if (
(args[1] === "vert" || args[1] === "green") &&
colorR === "vert"
) {
gain = mise * 36; gain = mise * 36;
} 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(
`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`,
[gain, message.author.id, message.guild.id],
(err) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(); 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('🎲 Roulette') .setTitle("🎲 Roulette")
.setDescription(`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la bille est tombée sur \`${colorR}\`. Vous avez gagné \`${gain}\` !`) .setDescription(
`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la bille 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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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('🎲 Roulette') .setTitle("🎲 Roulette")
.setDescription(`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la bille est tombée sur \`${colorR}\`. Vous avez perdu \`${0 - gain}\` !`) .setDescription(
`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la bille 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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
} message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} }
},
}; };
+145 -63
View File
@@ -1,97 +1,151 @@
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, cible.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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(
`UPDATE users SET reputation = reputation - 5 WHERE guildId =? AND userId =?`,
[message.guild.id, message.author.id],
(err) => {
if (err) { if (err) {
console.log(`${err}`.red) console.log(`${err}`.red);
} }
}); },
db.run(`UPDATE users SET lastBraquage =? WHERE guildId =? AND userId =?`, [Date.now(), message.guild.id, message.author.id], (err) => { );
db.run(
`UPDATE users SET lastBraquage =? WHERE guildId =? AND userId =?`,
[Date.now(), message.guild.id, message.author.id],
(err) => {
if (err) { if (err) {
console.log(`${err}`.red) 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}`,
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
await new Promise(resolve => setTimeout(resolve, 5000));
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
await new Promise((resolve) => setTimeout(resolve, 5000));
/////////////////////////////////// Calcule des resultats /////////////////////////////////////////////////////// /////////////////////////////////// Calcule des resultats ///////////////////////////////////////////////////////
@@ -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(
`UPDATE users SET bank = bank - ? WHERE userId = ? AND guildId = ?`,
[coinsEnBank, message.author.id, message.guild.id],
(err) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(); 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(
`UPDATE users SET bank = bank + ? WHERE userId = ? AND guildId = ?`,
[coinsEnBank, cible.id, message.guild.id],
(err) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(); 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(
`UPDATE users SET bank = bank - 3 WHERE userId = ? AND guildId = ?`,
[cible.id, message.guild.id],
(err) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
resolve(); 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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
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}`,
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }) iconURL: message.author.displayAvatarURL(),
}); });
return
} message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} }
},
}; };
+156 -63
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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(
`SELECT * FROM teams WHERE guildId = ? AND id = ?`,
[message.guild.id, teamID],
async (err, row) => {
if (err) reject(err); if (err) reject(err);
if (!row) { if (!row) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ La team spécifié n\'existe pas.') .setDescription("❌ La team spécifié n'existe pas.")
.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 },
}); });
} }
resolve(parseInt(row.reputation)); 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(
`UPDATE users SET lastHack =? WHERE guildId =? AND userId =?`,
[Date.now(), message.guild.id, message.author.id],
(err) => {
if (err) { if (err) {
console.log(`${err}`.red) console.log(`${err}`.red);
} }
}); },
db.run(`UPDATE users SET reputation = reputation - 4 WHERE guildId =? AND userId =?`, [message.guild.id, message.author.id], (err) => { );
db.run(
`UPDATE users SET reputation = reputation - 4 WHERE guildId =? AND userId =?`,
[message.guild.id, message.author.id],
(err) => {
if (err) { if (err) {
console.log(`${err}`.red) 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(
`UPDATE teams SET padlock = padlock - 1 WHERE guildId =? AND id =?`,
[message.guild.id, teamID],
(err) => {
if (err) { if (err) {
console.log(`${err}`.red) 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(
`UPDATE users SET bank =? WHERE guildId =? AND userId =?`,
[user.bank + team.bank, message.guild.id, message.author.id],
(err) => {
if (err) { if (err) {
console.log(`${err}`.red) console.log(`${err}`.red);
} }
}); },
db.run(`UPDATE teams SET bank = 0 WHERE guildId =? AND userId =?`, [message.guild.id, message.author.id], (err) => { );
db.run(
`UPDATE teams SET bank = 0 WHERE guildId =? AND userId =?`,
[message.guild.id, message.author.id],
(err) => {
if (err) { if (err) {
console.log(`${err}`.red) 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 },
});
} }
}, },
}; };
+182 -71
View File
@@ -1,128 +1,187 @@
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(); 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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, cible.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
}); },
);
}); });
/////////////////////////////// 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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
}); },
);
}); });
const lastJuge = user.lastJuge const lastJuge = user.lastJuge;
if (lastJuge > Date.now() - 3600000) { if (lastJuge > Date.now() - 3600000) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Jugement Impossible') .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.`) .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)) .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 countPr = 0 let countPr = 0;
let countContre = 0 let countContre = 0;
const pour = new ButtonBuilder() const pour = new ButtonBuilder()
.setCustomId('pour') .setCustomId("pour")
.setLabel('✅ Pour la sanction') .setLabel("✅ Pour la sanction")
.setStyle(ButtonStyle.Primary); .setStyle(ButtonStyle.Primary);
const contre = new ButtonBuilder() const contre = new ButtonBuilder()
.setCustomId('contre') .setCustomId("contre")
.setLabel('😡 Contre la sanction') .setLabel("😡 Contre la sanction")
.setStyle(ButtonStyle.Primary); .setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder() const row = new ActionRowBuilder().addComponents(pour);
.addComponents(pour);
const msg = message.channel.send({ const msg = message.channel.send({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle(`Jugement de ${cible.user.username}`) .setTitle(`Jugement de ${cible.user.username}`)
.setDescription(`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``) .setDescription(
`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``,
)
.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(),
}),
], ],
components: [row], components: [row],
allowedMentions: { repliedUser: false } allowedMentions: { repliedUser: false },
}); });
/////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
const filter = i => (i.customId === 'pour' || i.customId === 'contre') && i.user.id === message.author.id; const filter = (i) =>
const collector = msg.createMessageComponentCollector({ filter, time: 60000 }) (i.customId === "pour" || i.customId === "contre") &&
collector.on('collect', async (interaction) => { i.user.id === message.author.id;
if (cooldown.has(message.author.id)) { return message.reply({ content: 'Vous avez deja voté', ephemeral: true }) } 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); cooldown.add(message.author.id);
if (i.customId === 'contre') { if (i.customId === "contre") {
if (i.user.id == message.author.id) { countContre = + 2 } else { countContre = + 1 } if (i.user.id == message.author.id) {
countContre = +2;
} else {
countContre = +1;
}
msg.edit({ msg.edit({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle(`Jugement de ${cible.user.username}`) .setTitle(`Jugement de ${cible.user.username}`)
.setDescription(`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``) .setDescription(
`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``,
)
.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(),
}),
], ],
components: [row], components: [row],
allowedMentions: { repliedUser: false } allowedMentions: { repliedUser: false },
}) });
} else {
if (i.user.id == message.author.id) {
countPr = +2;
} else {
countPr = +1;
} }
else {
if (i.user.id == message.author.id) { countPr = + 2 } else { countPr = + 1 }
msg.edit({ msg.edit({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle(`Jugement de <${cible.id}>`) .setTitle(`Jugement de <${cible.id}>`)
.setDescription(`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``) .setDescription(
`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``,
)
.setColor(await embedColor(message.author.id, message.guild.id)) .setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp() .setTimestamp()
.setImage('https://tenor.com/view/judge-ace-attorney-ace-attorney-aa-gif-2687377729828245947') .setImage(
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) "https://tenor.com/view/judge-ace-attorney-ace-attorney-aa-gif-2687377729828245947",
)
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
], ],
components: [row], components: [row],
allowedMentions: { repliedUser: false } allowedMentions: { repliedUser: false },
}) });
} }
}) });
collector.on('end', () => { collector.on("end", () => {
if (countContre > countPr) { if (countContre > countPr) {
msg.edit({ msg.edit({
embeds: [ embeds: [
@@ -130,48 +189,100 @@ module.exports = {
.setTitle(`Jugement de ${cible.user.username}`) .setTitle(`Jugement de ${cible.user.username}`)
.setDescription(`Les charges sont abandonnée`) .setDescription(`Les charges sont abandonnée`)
.setTimestamp() .setTimestamp()
.setImage('') .setImage("")
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
], components: [], allowedMentions: { repliedUser: false } }); text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
components: [],
allowedMentions: { repliedUser: false },
});
} }
if (countContre == countPr) { if (countContre == countPr) {
msg.edit({ msg.edit({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle(`Jugement de ${cible.user.username}`) .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.`) .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() .setTimestamp()
.setImage('') .setImage("")
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
], components: [], allowedMentions: { repliedUser: false } 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) => { 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) { if (err) {
console.log(`${err}`) console.log(`${err}`);
} }
}) },
);
} }
if (countContre < countPr) { if (countContre < countPr) {
msg.edit({ msg.edit({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle(`Jugement de ${cible.user.username}`) .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**.__`) .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() .setTimestamp()
.setImage('') .setImage("")
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }) .setFooter({
], components: [], allowedMentions: { repliedUser: false } 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) => { 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) { if (err) {
console.log(`${err}`) console.log(`${err}`);
} }
}) },
);
} }
/* CAR TOUJOURS EN TEST ET FLEMME DE ME DROP DES REP ET COINS A CHAQUE FOIS /* 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])
*/ */
}); });
} },
}; };
+99 -39
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, member.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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(`UPDATE users SET reputation = reputation - ? WHERE guildId = ? AND userId = ?`, [amount, message.guild.id, member.id]); db.run(
db.run(`UPDATE users SET reputation = reputation + ?, lastKill = ? WHERE guildId = ? AND userId = ?`, [amount - 3, Date.now(), message.guild.id, message.author.id]); `UPDATE users SET reputation = reputation - ? WHERE guildId = ? AND userId = ?`,
[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(
"Vous n'avez pas reussi à voler de reputation à <@" +
member.id +
">, qui à donc, toujours, `" +
memberRep +
"` reputation.",
)
.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], allowedMentions: { repliedUser: false } });} message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
}, },
}; };
+114 -55
View File
@@ -1,112 +1,159 @@
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(
`SELECT teamId, pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
if (row.teamId !== null) { if (row.teamId !== null) {
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('🛡️ Création de team') .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.`) .setDescription(
`Vous êtes déjà dans une team. Vous devez quitter votre team actuelle pour en créer une nouvelle.`,
)
.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 },
});
}); });
} else if (row.pocket < 3000) { } else if (row.pocket < 3000) {
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('🛡️ Création de team') .setTitle("🛡️ Création de team")
.setDescription(`Vous n'avez pas assez de fonds pour créer une team. Vous avez besoin de 3000.`) .setDescription(
`Vous n'avez pas assez de fonds pour créer une team. Vous avez besoin de 3000.`,
)
.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 },
});
}); });
} else { } else {
db.run(`UPDATE users SET pocket = pocket - 3000 WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id]); db.run(
`UPDATE users SET pocket = pocket - 3000 WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
);
resolve(); 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(
`SELECT * FROM teams WHERE id = ? AND guildId = ?`,
[id, message.guild.id],
(err, row) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
@@ -115,21 +162,33 @@ module.exports = {
increment += 1; increment += 1;
id = idBase + increment; id = idBase + increment;
} else { } else {
db.run(`INSERT INTO teams (guildId, id, name, description) VALUES (?, ?, ?, ?)`, [message.guild.id, id, teamName, teamDescription]); db.run(
db.run(`UPDATE users SET teamId = ?, teamRole = ? WHERE guildId = ? AND userId = ?`, [id, 'owner', message.guild.id, message.author.id]); `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();
@@ -137,5 +196,5 @@ module.exports = {
}); });
} }
}); });
} },
}; };
+120 -48
View File
@@ -1,103 +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: ['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(
`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`,
[message.guild.id, message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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(
`SELECT teamRole FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row.teamRole); 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(
`DELETE FROM teams WHERE guildId = ? AND id = ?`,
[message.guild.id, team.id],
async (err) => {
if (err) { if (err) {
return i.update({ content: 'Une erreur est survenue lors de la suppression de l\'équipe.', components: [] }); 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(
`UPDATE users SET teamRole = NULL, teamId = NULL WHERE guildId = ? AND teamId = ?`,
[message.guild.id, team.id],
async (err) => {
if (err) { if (err) {
return i.update({ content: 'Une erreur est survenue lors de la mise à jour des membres de l\'équipe.', components: [] }); 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.`,
)
.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 i.update({ embeds: [embed], components: [] }); return i.update({ embeds: [embed], components: [] });
}); },
}); );
},
);
} else { } else {
await i.update({ content: 'Suppression de l\'équipe annulée.', components: [] }); 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: [],
});
}); });
}); });
} }
+83 -39
View File
@@ -1,12 +1,17 @@
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) {
@@ -14,13 +19,16 @@ module.exports = {
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 },
}); });
} }
@@ -29,85 +37,121 @@ module.exports = {
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, userToDemote.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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(
`UPDATE users SET teamRole = 'membre' WHERE guildId = ? AND userId = ?`,
[message.guild.id, userToDemote.id],
async (err) => {
if (err) { if (err) {
return message.reply('Une erreur est survenue lors de la rétrogradation de l\'utilisateur.'); 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(
`${userToDemote.tag} a été rétrogradé au rang de 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 },
}); });
}, },
);
},
}; };
+59 -33
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(
`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) => {
if (err) reject(err); if (err) reject(err);
resolve(); 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 },
});
} }
}, },
}; };
+96 -47
View File
@@ -1,12 +1,12 @@
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) {
@@ -14,13 +14,16 @@ module.exports = {
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 },
}); });
} }
@@ -29,116 +32,162 @@ module.exports = {
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(
`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`,
[message.guild.id, message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, userToKick.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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') { if (!user || user.teamRole !== "owner") {
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("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 },
}); });
} }
db.run(`UPDATE users SET teamId = NULL, teamRole = NULL WHERE guildId = ? AND userId = ?`, [message.guild.id, userToKick.id], async (err) => { db.run(
`UPDATE users SET teamId = NULL, teamRole = NULL WHERE guildId = ? AND userId = ?`,
[message.guild.id, userToKick.id],
async (err) => {
if (err) { 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('Une erreur est survenue lors de l\'expulsion de l\'utilisateur.') .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({ 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 },
}); });
} }
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('🛠️ Expulsion de l\'équipe') .setTitle("🛠️ Expulsion de l'équipe")
.setDescription(`${userToKick.tag} a été expulsé de l'équipe.`) .setDescription(`${userToKick.tag} a été expulsé de l'équipe.`)
.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 },
}); });
}); });
}, },
);
},
}; };
+122 -56
View File
@@ -1,12 +1,17 @@
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) {
@@ -14,13 +19,16 @@ module.exports = {
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 },
}); });
} }
@@ -29,119 +37,177 @@ module.exports = {
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, userToPromote.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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],
components: [row],
allowedMentions: { repliedUser: false },
});
const filter = i => i.customId === 'promote_to_admin' && i.user.id === message.author.id; const filter = (i) =>
const collector = sendMessage.createMessageComponentCollector({ filter, time: 120000 }); i.customId === "promote_to_admin" && i.user.id === message.author.id;
const collector = sendMessage.createMessageComponentCollector({
filter,
time: 120000,
});
collector.on('collect', async (interaction) => { collector.on("collect", async (interaction) => {
db.run(`UPDATE users SET teamRole = 'owner' WHERE guildId = ? AND userId = ?`, [message.guild.id, userToPromote.id], async (err) => { db.run(
`UPDATE users SET teamRole = 'owner' WHERE guildId = ? AND userId = ?`,
[message.guild.id, userToPromote.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 promotion de l\'utilisateur.') .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 },
}); });
} }
db.run(`UPDATE users SET teamRole = 'officier' WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], 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 mise à jour de votre rôle.",
)
.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() const embed = new EmbedBuilder()
.setTitle('👑 Transfere de la propriété de la team') .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.`) .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)) .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(),
});
sendMessage.edit({ embeds: [embed], components: [] }); sendMessage.edit({ embeds: [embed], components: [] });
}); },
}); );
},
);
}); });
}, },
}; };
+89 -42
View File
@@ -1,12 +1,17 @@
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) {
@@ -14,13 +19,16 @@ module.exports = {
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 },
}); });
} }
@@ -29,95 +37,134 @@ module.exports = {
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, userToPromote.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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(
`UPDATE users SET teamRole = 'officer' WHERE guildId = ? AND userId = ?`,
[message.guild.id, userToPromote.id],
async (err) => {
if (err) { if (err) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🛡️ Promotion dans l\'équipe') .setTitle("🛡️ Promotion dans l'équipe")
.setDescription('Une erreur est survenue lors de la promotion de l\'utilisateur.') .setDescription(
"Une erreur est survenue lors de la promotion de l'utilisateur.",
)
.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 embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🛡️ Promotion dans l\'équipe') .setTitle("🛡️ Promotion dans l'équipe")
.setDescription(`${userToPromote.tag} a été promu au rang d'officier.`) .setDescription(
`${userToPromote.tag} a été promu au rang d'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(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
}); });
}, },
);
},
}; };
+113 -46
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(
`SELECT teamRole FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row.teamRole); 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}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); 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(
`SELECT teamId FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row.teamId); 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(
`SELECT bank FROM teams WHERE id = ? AND guildId = ?`,
[team, message.guild.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row.bank); 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 },
});
} }
}, },
}; };
+91 -40
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(`SELECT * FROM teams WHERE guildId = ? AND id = ?`, [message.guild.id, teamID], (err, row) => { db.get(
`SELECT * FROM teams WHERE guildId = ? AND id = ?`,
[message.guild.id, teamID],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
}); },
);
}); });
if (!team) { if (!team) {
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 teamRep = team.reputation const teamRep = team.reputation;
if (teamRep < 4) { if (teamRep < 4) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Ajout de cadenas impossible') .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`) .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)) .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(),
}
db.run(`UPDATE teams SET reputation = reputation - 4 WHERE guildId =? AND Id =?`, [message.guild.id, teamID], (err) => {
if (err) {
console.log(`${err}`.red)
}
}); });
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) { if (team.padlock < 5) {
db.run(`UPDATE teams SET padlock = padlock + 1 WHERE guildId =? AND Id =?`, [message.guild.id, teamID], (err) => { db.run(
`UPDATE teams SET padlock = padlock + 1 WHERE guildId =? AND Id =?`,
[message.guild.id, teamID],
(err) => {
if (err) { if (err) {
console.log(`${err}`.red) 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(),
}); });
const embed = new EmbedBuilder() message.reply({
.setTitle('Ajout de cadenas réussi !') embeds: [embed],
.setDescription('Vous avez ajouter un cadenas à team `' + team.name + '`, cette team à maintement `' + team.padlock + 1 + '` cadenas !') 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() });
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else { } else {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('Ajout de cadenas impossible') .setTitle("Ajout de cadenas impossible")
.setDescription('`' + team.name + '` à le maximum de cadenas (`' + team.padlock + 1 + '` cadenas !)') .setDescription(
"`" +
team.name +
"` à le maximum de cadenas (`" +
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() .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], allowedMentions: { repliedUser: false } }); message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} }
}, },
}; };
+98 -39
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}`,
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(
`SELECT pocket FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row.pocket); 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 team = 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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
}); },
);
}); });
if (!team) { if (!team) {
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 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 {
db.run(`UPDATE users SET pocket = pocket - ?, teamDroper = teamDroper + ? WHERE guildId = ? AND userId = ?`, [amout, amout, message.guild.id, message.author.id]); db.run(
db.run(`UPDATE teams SET bank = bank + ? WHERE guildId = ? AND id = ?`, [amout, message.guild.id, team.id]); `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() 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 team.') .setDescription(
"💰 Vous avez déposé **" +
amout +
"** coins dans 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 },
});
} }
}, },
}; };
+77 -42
View File
@@ -1,110 +1,142 @@
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(
`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`,
[message.guild.id, message.guild.id, member.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
}); },
);
}); });
if (!team) { if (!team) {
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🛡️ Informations de team') .setTitle("🛡️ Informations de team")
.setDescription('<@' + member.id + '> n\'est actuellement dans aucune une team.') .setDescription(
"<@" + member.id + "> n'est actuellement dans aucune 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 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 teams WHERE guildId = ? AND id = ?)`, [message.guild.id, message.guild.id, team.id], (err, row) => { 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);
},
);
}); });
}); let Aname;
let Aname
if (alliance) { if (alliance) {
Aname = alliance.name Aname = alliance.name;
} } else {
else { Aname = "aucune alliance";
Aname = 'aucune alliance'
} }
const memberlist = await new Promise((resolve, reject) => { const memberlist = await new Promise((resolve, reject) => {
db.all(`SELECT userId, teamRole FROM users WHERE guildId = ? AND teamId = ?`, [message.guild.id, team.id], (err, rows) => { db.all(
`SELECT userId, teamRole FROM users WHERE guildId = ? AND teamId = ?`,
[message.guild.id, team.id],
(err, rows) => {
if (err) reject(err); if (err) reject(err);
resolve(rows); resolve(rows);
},
);
}); });
}); let CadenaS = "🔓";
let CadenaS = "🔓"
if (team.padlock == 5) { if (team.padlock == 5) {
CadenaS = "🔐🔐🔐🔐🔐" CadenaS = "🔐🔐🔐🔐🔐";
} }
if (team.padlock == 4) { if (team.padlock == 4) {
CadenaS = "🔐🔐🔐🔐" CadenaS = "🔐🔐🔐🔐";
} }
if (team.padlock == 3) { if (team.padlock == 3) {
CadenaS = "🔐🔐🔐" CadenaS = "🔐🔐🔐";
} }
if (team.padlock == 2) { if (team.padlock == 2) {
CadenaS = "🔐🔐" CadenaS = "🔐🔐";
} }
if (team.padlock == 1) { if (team.padlock == 1) {
CadenaS = "🔐" CadenaS = "🔐";
} }
//////////////////////////////////////////////////// TEAM DROPER /////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////// TEAM DROPER ///////////////////////////////////////////////////////////////////
data = await new Promise((resolve, reject) => { data = await new Promise((resolve, reject) => {
db.all(`SELECT userId, teamDroper AS coins FROM users WHERE teamId = ? ORDER BY coins DESC LIMIT 10`, [team.id], (err, rows) => { db.all(
`SELECT userId, teamDroper AS coins FROM users WHERE teamId = ? ORDER BY coins DESC LIMIT 10`,
[team.id],
(err, rows) => {
if (err) reject(err); if (err) reject(err);
resolve(rows); resolve(rows);
},
);
}); });
}); let leaderboard = data
let leaderboard = data.map((row, i) => { .map((row, i) => {
let position; let position;
switch (i) { switch (i) {
case 0: case 0:
position = ':first_place:'; position = ":first_place:";
break; break;
case 1: case 1:
position = ':second_place:'; position = ":second_place:";
break; break;
case 2: case 2:
position = ':third_place:'; position = ":third_place:";
break; break;
default: default:
position = `**${i + 1}.**`; position = `**${i + 1}.**`;
} }
return `${position} <@${row.userId}> - \`${row.coins}\`coins donné(s)`; return `${position} <@${row.userId}> - \`${row.coins}\`coins donné(s)`;
}).join('\n'); })
.join("\n");
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🛡️ Informations de `' + team.name + '`:') .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`) .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)) .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 embedTopDonnateur = new EmbedBuilder() const embedTopDonnateur = new EmbedBuilder()
.setTitle('**Les 10 meilleurs donnateurs de la team sont :**') .setTitle("**Les 10 meilleurs donnateurs de la team sont :**")
.setDescription(`${leaderboard}`) .setDescription(`${leaderboard}`)
.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 (team.icon && urlRegex1.test(team.icon)) { if (team.icon && urlRegex1.test(team.icon)) {
@@ -116,7 +148,10 @@ module.exports = {
embedTopDonnateur.setImage(team.banner); embedTopDonnateur.setImage(team.banner);
} }
return message.reply({ embeds: [embed, embedTopDonnateur], allowedMentions: { repliedUser: false } }); return message.reply({
embeds: [embed, embedTopDonnateur],
allowedMentions: { repliedUser: false },
});
} }
}, },
}; };
+91 -42
View File
@@ -1,12 +1,17 @@
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: ['tinvite'], aliases: ["tinvite"],
description: 'Invite un utilisateur à votre team.', description: "Invite un utilisateur à votre team.",
emote: '🛡️', emote: "🛡️",
utilisation: '<@user>', utilisation: "<@user>",
permission: 0, permission: 0,
async execute(message, args, client) { async execute(message, args, client) {
@@ -14,13 +19,16 @@ module.exports = {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🛡️ Invitation à l\'équipe') .setTitle("🛡️ Invitation à l'équipe")
.setDescription('Veuillez mentionner un utilisateur à inviter.') .setDescription("Veuillez mentionner un utilisateur à inviter.")
.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 },
}); });
} }
@@ -29,80 +37,121 @@ module.exports = {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🛡️ Invitation à l\'équipe') .setTitle("🛡️ Invitation à 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 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, userToInvite.id], (err, row) => { db.get(
`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`,
[message.guild.id, message.guild.id, userToInvite.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
}); },
);
}); });
if (team) { if (team) {
return message.channel.reply('<@' + userToInvite.id + '> a déjà une team') return message.channel.reply(
"<@" + userToInvite.id + "> a déjà une team",
);
} }
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
}); },
);
}); });
if (!user || user.teamRole !== 'owner' || user.teamRole !== 'officer') { if (!user || user.teamRole !== "owner" || user.teamRole !== "officer") {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('🛡️ Invitation à l\'équipe') .setTitle("🛡️ Invitation à 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 },
}); });
} }
embedColor(message.author.id, message.guild.id).then(color => { embedColor(message.author.id, message.guild.id).then((color) => {
const accept = new ButtonBuilder() const accept = new ButtonBuilder()
.setCustomId('accept') .setCustomId("accept")
.setLabel('Rejoindre la team') .setLabel("Rejoindre la team")
.setStyle(ButtonStyle.Success); .setStyle(ButtonStyle.Success);
const row = new ActionRowBuilder() const row = new ActionRowBuilder().addComponents(accept);
.addComponents(accept);
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🛡️ Invitation à l\'équipe') .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.`) .setDescription(
`<@${userToInvite.id}> tu as été invité à rejoindre l'équipe de <@${message.author.id}>. Pour accepter l'invitation, clique sur le bouton.`,
)
.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(),
});
(async () => { (async () => {
const sentMessage = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); const sentMessage = await message.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
});
const filter = i => i.customId === 'accept' && i.user.id === userToInvite.id; const filter = (i) =>
const collector = sentMessage.createMessageComponentCollector({ filter, time: 120000 }); i.customId === "accept" && i.user.id === userToInvite.id;
collector.on('collect', async (interaction) => { const collector = sentMessage.createMessageComponentCollector({
db.run(`UPDATE users SET teamId = ?, teamRole = ? WHERE guildId = ? AND userId = ?`, [user.teamId, 'membre', message.guild.id, userToInvite.id], (err) => { 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) { if (err) {
return message.reply('Une erreur est survenue lors de l\'invitation de l\'utilisateur.'); return message.reply(
"Une erreur est survenue lors de l'invitation de l'utilisateur.",
);
} }
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🛡️ Invitation à l\'équipe') .setTitle("🛡️ Invitation à l'équipe")
.setDescription(`<@${userToInvite.id}> rejoint l\'équipe.`) .setDescription(`<@${userToInvite.id}> rejoint l\'équipe.`)
.setColor(color) .setColor(color)
.setTimestamp() .setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }); .setFooter({
sentMessage.edit({ embeds: [embed], components: [], allowedMentions: { repliedUser: false } }); text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}); });
sentMessage.edit({
embeds: [embed],
components: [],
allowedMentions: { repliedUser: false },
});
},
);
}); });
})(); })();
}); });
+82 -40
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,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
module.exports = { module.exports = {
aliases: ['teamleave'], aliases: ["teamleave"],
description: 'Quitte une team.', description: "Quitte 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 FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { db.get(
`SELECT teamId FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
if (row.teamId === null) { if (row.teamId === null) {
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('🛡️ Quitter une team') .setTitle("🛡️ Quitter une team")
.setDescription(`Vous n'êtes dans aucune team.`) .setDescription(`Vous n'êtes dans aucune team.`)
.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 },
});
}); });
} else { } else {
resolve(); resolve();
} }
} }
}); },
);
}); });
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
db.get(`SELECT teamRole FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => { db.get(
`SELECT teamRole FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) { if (err) {
reject(err); reject(err);
} else { } else {
if (row.teamRole === 'owner') { if (row.teamRole === "owner") {
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('🛡️ Quitter une team') .setTitle("🛡️ Quitter une team")
.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.`) .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) .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 },
});
}); });
} else { } else {
resolve(); resolve();
} }
} }
},
);
}); });
});
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle('🛡️ Quitter une team') .setTitle("🛡️ Quitter une team")
.setDescription(`Êtes-vous sûr de vouloir quitter votre team ?`) .setDescription(`Êtes-vous sûr de vouloir quitter 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(),
});
const confirmeButton = new ButtonBuilder() const confirmeButton = new ButtonBuilder()
.setCustomId('confirme') .setCustomId("confirme")
.setLabel('✅') .setLabel("✅")
.setStyle(ButtonStyle.Primary); .setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder() const row = new ActionRowBuilder().addComponents(confirmeButton);
.addComponents(confirmeButton);
const messageTeam = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }); const messageTeam = await message.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
});
const filter = i => i.user.id === message.author.id; const filter = (i) => i.user.id === message.author.id;
const collector = messageTeam.createMessageComponentCollector({ filter, time: 60000 }); const collector = messageTeam.createMessageComponentCollector({
collector.on('collect', async i => { filter,
if (i.customId === 'confirme') { time: 60000,
db.run(`UPDATE users SET teamId = NULL, teamRole = NULL WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], err => { });
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) { if (err) {
console.error(err); console.error(err);
return i.reply('Une erreur est survenue.'); return i.reply("Une erreur est survenue.");
} }
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('🛡️ Quitter une team') .setTitle("🛡️ Quitter une team")
.setDescription(`Vous avez quitté votre team.`) .setDescription(`Vous avez quitté votre team.`)
.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 i.update({ embeds: [embed], components: [] }); return i.update({ embeds: [embed], components: [] });
}); });
}); },
);
} }
}); });
} },
}; };
+83 -38
View File
@@ -1,83 +1,128 @@
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); 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(
`SELECT * FROM teams WHERE guildId = ? AND id = ?`,
[message.guild.id, teamID],
async (err, row) => {
if (err) reject(err); if (err) reject(err);
if (!row) { if (!row) {
return message.reply({ return message.reply({
embeds: [ embeds: [
new EmbedBuilder() new EmbedBuilder()
.setTitle('Erreur') .setTitle("Erreur")
.setDescription('❌ La team spécifié n\'existe pas.') .setDescription("❌ La team spécifié n'existe pas.")
.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 },
}); });
} }
resolve(parseInt(row.reputation)); 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}`,
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } }); iconURL: message.author.displayAvatarURL(),
}
db.run(`UPDATE users SET lastTrep =? WHERE guildId =? AND userId =?`, [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) => { return message.reply({
if (err) { embeds: [embed],
console.log(`${err}`.red) allowedMentions: { repliedUser: false },
}
}); });
}
db.run(
`UPDATE users SET lastTrep =? WHERE guildId =? AND userId =?`,
[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) => {
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 } });
}, },
+11 -5
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,
]);
}); });
}, },
}; };
+6 -3
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,
]);
}, },
}; };
+41 -15
View File
@@ -1,7 +1,7 @@
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 = {
@@ -9,14 +9,24 @@ module.exports = {
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
},
);
}); });
}); if (user.blacklist == true) {
if (user.blacklist == true) { return } return;
}
const prefix = db.get(`SELECT value FROM config WHERE guildId = ? AND name = ?`, [message.guild.id, 'prefix'])?.value || '&'; const prefix =
db.get(`SELECT value FROM config WHERE guildId = ? AND name = ?`, [
message.guild.id,
"prefix",
])?.value || "&";
if (message.content.startsWith(prefix)) { if (message.content.startsWith(prefix)) {
const args = message.content.slice(prefix.length).trim().split(/ +/); const args = message.content.slice(prefix.length).trim().split(/ +/);
const commandName = args.shift()?.toLowerCase(); const commandName = args.shift()?.toLowerCase();
@@ -24,22 +34,38 @@ module.exports = {
const command = client.commands.get(commandName); const command = client.commands.get(commandName);
if (!command) return; if (!command) return;
const permissionLevel = await getPermissionLevel(message.guild.id, message.member); const permissionLevel = await getPermissionLevel(
if ((permissionLevel < command.permission) && (!client.config.owners.includes(message.author.id))) { message.guild.id,
return message.reply("Vous n'avez pas la permission d'utiliser cette commande."); message.member,
);
if (
permissionLevel < command.permission &&
!client.config.owners.includes(message.author.id)
) {
return message.reply(
"Vous n'avez pas la permission d'utiliser cette commande.",
);
} }
try { try {
command.execute(message, args, client); command.execute(message, args, client);
console.log(`[${prefix}}] ${message.guild.name} | ${message.author.tag} | ${command.name}`.blue) console.log(
loggT(`[${prefix}] ${message.guild.name} | ${message.author.tag} | ${command.name}`) `[${prefix}}] ${message.guild.name} | ${message.author.tag} | ${command.name}`
.blue,
);
loggT(
`[${prefix}] ${message.guild.name} | ${message.author.tag} | ${command.name}`,
);
} catch (error) { } catch (error) {
console.error(error); console.error(error);
loggE(error) loggE(error);
message.reply("Erreur lors de l'exécution de la commande"); message.reply("Erreur lors de l'exécution de la commande");
} }
} else if (message.content === `<@!${client.user.id}>` || message.content === `<@${client.user.id}>`) { } else if (
message.content === `<@!${client.user.id}>` ||
message.content === `<@${client.user.id}>`
) {
message.reply(`Mon prefix est \`${prefix}\``); message.reply(`Mon prefix est \`${prefix}\``);
} }
} },
}; };
+19 -6
View File
@@ -10,12 +10,18 @@ module.exports = {
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
},
);
}); });
}); if (user.blacklist == true) {
if (user.blacklist == true) { return } 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] });
+119 -75
View File
@@ -1,65 +1,108 @@
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,
);
loggT(`\n\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`,
);
console.log('setPresence : ...') console.log("setPresence : ...");
client.user.setPresence({ client.user.setPresence({
activities: [{ activities: [
name: '/azelie', {
name: "/azelie",
type: ActivityType.Streaming, type: ActivityType.Streaming,
url: 'https://twitch.tv/tuturp33' url: "https://twitch.tv/tuturp33",
}], },
status: 'online' ],
status: "online",
}); });
console.log('setPresence : OK') console.log("setPresence : OK");
client.guilds.cache.forEach((guild) => {
client.guilds.cache.forEach(guild => { console.log("BD update : ...");
console.log('BD update : ...') db.run(
db.run(`INSERT OR IGNORE INTO config (guildId, name, value) VALUES (?, ?, ?)`, [guild.id, 'prefix', '&']); `INSERT OR IGNORE INTO config (guildId, name, value) VALUES (?, ?, ?)`,
guild.members.cache.forEach(member => { [guild.id, "prefix", "&"],
db.run(`INSERT OR IGNORE INTO users (guildId, userId) VALUES (?, ?)`, [guild.id, member.id]); );
guild.members.cache.forEach((member) => {
db.run(`INSERT OR IGNORE INTO users (guildId, userId) VALUES (?, ?)`, [
guild.id,
member.id,
]);
}); });
console.log('BD update : OK') console.log("BD update : OK");
}); });
setInterval(
setInterval(async () => { async () => {
console.log('Recompense vocal : ...') console.log("Recompense vocal : ...");
client.guilds.cache.forEach(guild => { client.guilds.cache.forEach((guild) => {
guild.members.cache.filter(member => member.voice.channel).forEach(member => { guild.members.cache
.filter((member) => member.voice.channel)
.forEach((member) => {
if (member.voice.selfMute == true) { if (member.voice.selfMute == true) {
db.run('UPDATE users SET pocket = pocket + 50 WHERE guildId = ? AND userId = ?', [guild.id, member.id]); db.run(
db.run('UPDATE users SET xp = xp + 5 WHERE guildId = ? AND userId = ?', [guild.id, member.id]); "UPDATE users SET pocket = pocket + 50 WHERE guildId = ? AND userId = ?",
[guild.id, member.id],
);
db.run(
"UPDATE users SET xp = xp + 5 WHERE guildId = ? AND userId = ?",
[guild.id, member.id],
);
} else { } else {
db.run('UPDATE users SET pocket = pocket + 100 WHERE guildId = ? AND userId = ?', [guild.id, member.id]); db.run(
db.run('UPDATE users SET xp = xp + 10 WHERE guildId = ? AND userId = ?', [guild.id, member.id]); "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],
);
} }
}); });
guild.members.cache.filter(member => member.voice.channel && member.voice.streaming).forEach(member => { guild.members.cache
db.run('UPDATE users SET pocket = pocket + 200 WHERE guildId = ? AND userId = ?', [guild.id, member.id]); .filter((member) => member.voice.channel && member.voice.streaming)
db.run('UPDATE users SET xp = xp + 20 WHERE guildId = ? AND userId = ?', [guild.id, member.id]); .forEach((member) => {
db.run(
"UPDATE users SET pocket = pocket + 200 WHERE guildId = ? AND userId = ?",
[guild.id, member.id],
);
db.run(
"UPDATE users SET xp = xp + 20 WHERE guildId = ? AND userId = ?",
[guild.id, member.id],
);
});
guild.members.cache
.filter((member) => member.voice.channel && member.voice.selfVideo)
.forEach((member) => {
db.run(
"UPDATE users SET pocket = pocket + 200 WHERE guildId = ? AND userId = ?",
[guild.id, member.id],
);
db.run(
"UPDATE users SET xp = xp + 20 WHERE guildId = ? AND userId = ?",
[guild.id, member.id],
);
});
});
console.log("Recompense vocal : OK");
},
15 * 60 * 1000,
);
}); setInterval(
guild.members.cache.filter(member => member.voice.channel && member.voice.selfVideo).forEach(member => { async () => {
db.run('UPDATE users SET pocket = pocket + 200 WHERE guildId = ? AND userId = ?', [guild.id, member.id]); console.log("Bâtiment : ...");
db.run('UPDATE users SET xp = xp + 20 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
});
});
console.log('Recompense vocal : OK')
}, 15 * 60 * 1000);
setInterval(async () => {
console.log('Bâtiment : ...')
const team = await new Promise((resolve, reject) => { const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM teams`, (err, row) => { db.get(`SELECT * FROM teams`, (err, row) => {
if (err) reject(err); if (err) reject(err);
@@ -67,51 +110,52 @@ module.exports = {
}); });
}); });
if (team.location == 0) return if (team.location == 0) return;
db.run(`UPDATE teams SET bank = bank + ?`, [team.location]); db.run(`UPDATE teams SET bank = bank + ?`, [team.location]);
console.log('Bâtiment : OK') console.log("Bâtiment : OK");
}, 1 * 60 * 1000) },
1 * 60 * 1000,
);
//AntiCrash //AntiCrash
process.on('unhandledRejection', (error) => { process.on("unhandledRejection", (error) => {
if (error.code == "10064") return if (error.code == "10064") return;
if (error.code == "10008") return if (error.code == "10008") return;
console.log(' [antiCrash] :: Unhandled Rejection/Catch'.red); console.log(" [antiCrash] :: Unhandled Rejection/Catch".red);
console.log(`${error}`.grey); console.log(`${error}`.grey);
loggE(error) loggE(error);
}); });
process.on("uncaughtException", (error, origin) => { process.on("uncaughtException", (error, origin) => {
if (error.code == "10064") return if (error.code == "10064") return;
if (error.code == "10008") return if (error.code == "10008") return;
console.log(' [antiCrash] :: Uncaught Exception/Catch'.red); console.log(" [antiCrash] :: Uncaught Exception/Catch".red);
console.log(`${error}`.grey); console.log(`${error}`.grey);
console.log('Information supplémentaire:', origin); console.log("Information supplémentaire:", origin);
loggE(error) loggE(error);
}); });
process.on('uncaughtExceptionMonitor', (error, origin) => { process.on("uncaughtExceptionMonitor", (error, origin) => {
if (error.code == "10064") return if (error.code == "10064") return;
if (error.code == "10008") return if (error.code == "10008") return;
console.log(' [antiCrash] :: Uncaught Exception Monitor/Catch'.red); console.log(" [antiCrash] :: Uncaught Exception Monitor/Catch".red);
console.log(`${error}`.grey); console.log(`${error}`.grey);
console.log('Information supplémentaire:', origin); console.log("Information supplémentaire:", origin);
loggE(error) loggE(error);
}); });
process.on('beforeExit', (code) => { process.on("beforeExit", (code) => {
if (error.code == "10064") return if (error.code == "10064") return;
if (error.code == "10008") return if (error.code == "10008") return;
console.log(' [antiCrash] :: Before Exit'.red); console.log(" [antiCrash] :: Before Exit".red);
console.log('Code de sortie:', code); console.log("Code de sortie:", code);
}); });
process.on('exit', (code) => { process.on("exit", (code) => {
if (error.code == "10064") return if (error.code == "10064") return;
if (error.code == "10008") return if (error.code == "10008") return;
console.log(' [antiCrash] :: Exit'.red); console.log(" [antiCrash] :: Exit".red);
console.log('Code de sortie:', code); console.log("Code de sortie:", code);
}); });
}, },
}; };
+2 -2
View File
@@ -1,6 +1,6 @@
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,
+39 -25
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(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[serverId, memberId],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
}); },
);
}); });
let embedColor = user.embed; let embedColor = user.embed;
if (embedColor === 'random') { if (embedColor === "random") {
const colors = ['red', 'orange', 'yellow', 'green', 'blue', 'purple', 'brown', 'black', 'white']; const colors = [
"red",
"orange",
"yellow",
"green",
"blue",
"purple",
"brown",
"black",
"white",
];
embedColor = colors[Math.floor(Math.random() * colors.length)]; embedColor = colors[Math.floor(Math.random() * colors.length)];
} }
if (!embedColor) { if (!embedColor) {
embedColor = '#FFD700'; embedColor = "#FFD700";
} else if (embedColor === 'red') { } else if (embedColor === "red") {
embedColor = '#FF0000'; embedColor = "#FF0000";
} else if (embedColor === 'orange') { } else if (embedColor === "orange") {
embedColor = '#FFA500'; embedColor = "#FFA500";
} else if (embedColor === 'yellow') { } else if (embedColor === "yellow") {
embedColor = '#FFFF00'; embedColor = "#FFFF00";
} else if (embedColor === 'green') { } else if (embedColor === "green") {
embedColor = '#008000'; embedColor = "#008000";
} else if (embedColor === 'blue') { } else if (embedColor === "blue") {
embedColor = '#0000FF'; embedColor = "#0000FF";
} else if (embedColor === 'purple') { } else if (embedColor === "purple") {
embedColor = '#800080'; embedColor = "#800080";
} else if (embedColor === 'brown') { } else if (embedColor === "brown") {
embedColor = '#A52A2A'; embedColor = "#A52A2A";
} else if (embedColor === 'black') { } else if (embedColor === "black") {
embedColor = '#000000'; embedColor = "#000000";
} else if (embedColor === 'white') { } else if (embedColor === "white") {
embedColor = '#FFFFFF'; embedColor = "#FFFFFF";
} }
return embedColor; return embedColor;
} };
+10 -6
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(
`SELECT * FROM rolePermission WHERE guildId = ? AND roleId IN (${roles.map(() => "?").join(",")})`,
[serverId, ...roles],
(err, rows) => {
if (err) reject(err); if (err) reject(err);
resolve(rows); resolve(rows);
}); },
);
}); });
const highestPermission = Math.max(...perms.map(perm => perm.permission)); const highestPermission = Math.max(...perms.map((perm) => perm.permission));
return highestPermission; return highestPermission;
} };
+9 -5
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(
`SELECT * FROM config WHERE guildId = ? AND name = ?`,
[serverId, "prefix"],
(err, row) => {
if (err) reject(err); if (err) reject(err);
resolve(row); resolve(row);
}); },
);
}); });
return prefix ? prefix.value : '&'; return prefix ? prefix.value : "&";
} };
+6 -6
View File
@@ -1,5 +1,5 @@
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;
@@ -7,15 +7,15 @@ module.exports = function loadCommands(client, dir) {
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);
@@ -32,4 +32,4 @@ module.exports = function loadCommands(client, dir) {
} }
}); });
return count; return count;
} };
+5 -5
View File
@@ -1,5 +1,5 @@
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;
@@ -7,10 +7,10 @@ module.exports = function loadEvents(client, dir) {
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 {
@@ -19,4 +19,4 @@ module.exports = function loadEvents(client, dir) {
} }
}); });
return count; return count;
} };
+17 -17
View File
@@ -1,4 +1,4 @@
const fs = require("fs") const fs = require("fs");
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////// //////////
@@ -8,11 +8,11 @@ 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);
} }
@@ -20,19 +20,19 @@ function saveLOGE(LOG) {
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);
} };
+23 -24
View File
@@ -1,4 +1,4 @@
const fs = require("fs") const fs = require("fs");
////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////// //////////
@@ -8,11 +8,11 @@ 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);
} }
@@ -21,31 +21,30 @@ function saveLOGT(LOG) {
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 = [];
LOG.push(MSG_T);
saveLOGT(LOG);
} else {
const MSG_T = `\n\n`;
const LOG = []; const LOG = [];
LOG.push(MSG_T); LOG.push(MSG_T);
saveLOGT(LOG); saveLOGT(LOG);
} }
else { };
const MSG_T = `\n\n`
const LOG = [];
LOG.push(MSG_T);
saveLOGT(LOG);
}
}
+8 -8
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);