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
un bot de coins pour discord
+137 -62
View File
@@ -1,129 +1,186 @@
const { EmbedBuilder } = require('discord.js');
const embedColor = require('../../fonctions/embedColor.js');
const db = require('../../fonctions/database.js');
const { EmbedBuilder } = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
let allianceName
let allianceDescription
let allianceName;
let allianceDescription;
module.exports = {
aliases: ['acreate', 'alliancecreate'],
description: 'Crée une alliance.',
emote: '✒️',
utilisation: '',
aliases: ["acreate", "alliancecreate"],
description: "Crée une alliance.",
emote: "✒️",
utilisation: "",
permission: 0,
async execute(message, args, client) {
const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [message.guild.id, message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`,
[message.guild.id, message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
});
},
);
});
await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => {
db.get(
`SELECT * FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) {
reject(err);
} else {
if (row.teamRole !== 'owner') {
embedColor(message.author.id, message.guild.id).then(color => {
if (row.teamRole !== "owner") {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle('🛡️ Création de alliance')
.setTitle("🛡️ Création de alliance")
.setDescription(`Vous n'êtes pas proprietaire d'une team.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
.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) {
embedColor(message.author.id, message.guild.id).then(color => {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle('🛡️ Création de alliance')
.setTitle("🛡️ Création de alliance")
.setDescription(`Votre team a deja une alliance.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
.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) {
embedColor(message.author.id, message.guild.id).then(color => {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle('🛡️ Création de alliance')
.setDescription(`Vous n'avez pas assez de fonds pour créer une alliance. Vous avez besoin de 3000coins.`)
.setTitle("🛡️ Création de alliance")
.setDescription(
`Vous n'avez pas assez de fonds pour créer une alliance. Vous avez besoin de 3000coins.`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
.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 {
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();
}
}
});
},
);
});
const embed = new EmbedBuilder()
.setTitle('🛡️ Création d\'alliance')
.setTitle("🛡️ Création d'alliance")
.setDescription(`Ecrivez le nom de votre alliance dans le chat.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 collector = message.channel.createMessageCollector({ filter, time: 60000, max: 1 });
collector.on('collect', async m => {
const filter = (m) => m.author.id === message.author.id;
const collector = message.channel.createMessageCollector({
filter,
time: 60000,
max: 1,
});
collector.on("collect", async (m) => {
if (m.content.length > 25) {
m.reply('Le nom de l\'alliance ne doit pas dépasser 25 caractères.');
m.reply("Le nom de l'alliance ne doit pas dépasser 25 caractères.");
return collector.stop();
} else if (m.content.length < 3) {
m.reply('Le nom de l\'alliance doit contenir au moins 3 caractères.');
m.reply("Le nom de l'alliance doit contenir au moins 3 caractères.");
return collector.stop();
} else {
allianceName = m.content;
const embed = new EmbedBuilder()
.setTitle('🛡️ Création de l\'alliance')
.setDescription(`Ecrivez la description de votre alliance dans le chat.`)
.setTitle("🛡️ Création de l'alliance")
.setDescription(
`Ecrivez la description de votre alliance dans le chat.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
messageTeam.edit({ embeds: [embed] });
m.delete();
const collectorD = message.channel.createMessageCollector({ filter, time: 60000, max: 1 });
collectorD.on('collect', async m => {
const collectorD = message.channel.createMessageCollector({
filter,
time: 60000,
max: 1,
});
collectorD.on("collect", async (m) => {
if (m.content.length > 250) {
m.reply('La description de l\'alliance ne doit pas dépasser 250 caractères.');
m.reply(
"La description de l'alliance ne doit pas dépasser 250 caractères.",
);
return collectorD.stop();
} else if (m.content.length < 5) {
m.reply('La description de l\'alliance doit contenir au moins 5 caractères.');
m.reply(
"La description de l'alliance doit contenir au moins 5 caractères.",
);
return collectorD.stop();
} else {
allianceDescription = m.content;
let idBase = allianceName.toLowerCase().replace(/ /g, '');
idBase = idBase.replace('0', '');
idBase = idBase.replace('1', '');
idBase = idBase.replace('2', '');
idBase = idBase.replace('3', '');
idBase = idBase.replace('4', '');
idBase = idBase.replace('5', '');
idBase = idBase.replace('6', '');
idBase = idBase.replace('7', '');
idBase = idBase.replace('8', '');
idBase = idBase.replace('9', '');
let idBase = allianceName.toLowerCase().replace(/ /g, "");
idBase = idBase.replace("0", "");
idBase = idBase.replace("1", "");
idBase = idBase.replace("2", "");
idBase = idBase.replace("3", "");
idBase = idBase.replace("4", "");
idBase = idBase.replace("5", "");
idBase = idBase.replace("6", "");
idBase = idBase.replace("7", "");
idBase = idBase.replace("8", "");
idBase = idBase.replace("9", "");
let id = idBase;
let increment = 0;
let exists = true;
do {
await new Promise((resolve, reject) => {
db.get(`SELECT * FROM alliances WHERE id = ? AND guildId = ?`, [id, message.guild.id], (err, row) => {
db.get(
`SELECT * FROM alliances WHERE id = ? AND guildId = ?`,
[id, message.guild.id],
(err, row) => {
if (err) {
reject(err);
} else {
@@ -132,21 +189,39 @@ module.exports = {
increment = increment + 1;
id = idBase + increment;
} else {
db.run(`INSERT INTO alliances (guildId, id, name, description, creator) VALUES (?, ?, ?, ?, ?)`, [message.guild.id, id, allianceName, allianceDescription, message.author.id]);
db.run(`UPDATE teams SET alliancesId = ? WHERE guildId = ? AND id = ?`, [id, message.guild.id, team.id]);
db.run(
`INSERT INTO alliances (guildId, id, name, description, creator) VALUES (?, ?, ?, ?, ?)`,
[
message.guild.id,
id,
allianceName,
allianceDescription,
message.author.id,
],
);
db.run(
`UPDATE teams SET alliancesId = ? WHERE guildId = ? AND id = ?`,
[id, message.guild.id, team.id],
);
}
resolve();
}
});
},
);
});
} while (exists);
const embed = new EmbedBuilder()
.setTitle('🛡️ Création de l\'alliance')
.setDescription(`Votre alliance a été créée avec succès !\n\n**ID :** ${id}\n**Nom :** ${allianceName}\n**Description :** ${allianceDescription}\n\nVous pouvez maintenant inviter des owners de team dans votre alliance avec la commande \`&allianceinvite\`.\n\nPour quitter la alliance, utilisez la commande \`&allianceleave\` (vous deverez d'abord donner l\'alliance à quelqu'un d'autre).`)
.setTitle("🛡️ Création de l'alliance")
.setDescription(
`Votre alliance a été créée avec succès !\n\n**ID :** ${id}\n**Nom :** ${allianceName}\n**Description :** ${allianceDescription}\n\nVous pouvez maintenant inviter des owners de team dans votre alliance avec la commande \`&allianceinvite\`.\n\nPour quitter la alliance, utilisez la commande \`&allianceleave\` (vous deverez d'abord donner l\'alliance à quelqu'un d'autre).`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
messageTeam.edit({ embeds: [embed] });
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 db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const {
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
EmbedBuilder,
} = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['alliancedelete', 'adelete', 'aremove', 'allianceremove'],
description: 'Supprime votre alliance.',
emote: '🗑️',
util: '',
aliases: ["alliancedelete", "adelete", "aremove", "allianceremove"],
description: "Supprime votre alliance.",
emote: "🗑️",
util: "",
permission: 0,
async execute(message, args, client) {
const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [message.guild.id, message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`,
[message.guild.id, message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
});
},
);
});
const alliance = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM teams WHERE guildId = ? AND id = ?)`, [message.guild.id, message.guild.id, team.id], (err, row) => {
db.get(
`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM teams WHERE guildId = ? AND id = ?)`,
[message.guild.id, message.guild.id, team.id],
(err, row) => {
if (err) reject(err);
resolve(row);
});
},
);
});
if (!alliance) {
const embed = new EmbedBuilder()
.setTitle('🛡️ Suppression de l\'alliance')
.setDescription('Vous n\'êtes actuellement pas dans une alliance.')
.setTitle("🛡️ Suppression de l'alliance")
.setDescription("Vous n'êtes actuellement pas dans une alliance.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 (alliance.creator !== message.author.id) {
const embed = new EmbedBuilder()
.setTitle('Suppression Impossible')
.setDescription('❌ Vous n\'avez pas la permission de supprimer votre alliance.')
.setTitle("Suppression Impossible")
.setDescription(
"❌ Vous n'avez pas la permission de supprimer votre alliance.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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()
.addComponents(
const row = new ActionRowBuilder().addComponents(
new ButtonBuilder()
.setCustomId('confirm_delete')
.setLabel('Confirmer')
.setCustomId("confirm_delete")
.setLabel("Confirmer")
.setStyle(ButtonStyle.Danger),
new ButtonBuilder()
.setCustomId('cancel_delete')
.setLabel('Annuler')
.setStyle(ButtonStyle.Secondary)
.setCustomId("cancel_delete")
.setLabel("Annuler")
.setStyle(ButtonStyle.Secondary),
);
const embed = new EmbedBuilder()
.setTitle('🛡️ Suppression de l\'alliance')
.setDescription(`Êtes-vous sûr de vouloir supprimer l'alliance ${alliance.name}? Cette action est irréversible.`)
.setTitle("🛡️ Suppression de l'alliance")
.setDescription(
`Êtes-vous sûr de vouloir supprimer l'alliance ${alliance.name}? Cette action est irréversible.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }).then(sentMessage => {
const filter = i => i.customId === 'confirm_delete' || i.customId === 'cancel_delete' && i.user.id === message.author.id;
message
.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
})
.then((sentMessage) => {
const filter = (i) =>
i.customId === "confirm_delete" ||
(i.customId === "cancel_delete" && i.user.id === message.author.id);
const collector = sentMessage.createMessageComponentCollector({ filter, time: 15000 });
const collector = sentMessage.createMessageComponentCollector({
filter,
time: 15000,
});
collector.on('collect', async i => {
if (i.customId === 'confirm_delete') {
db.run(`DELETE FROM alliances WHERE guildId = ? AND id = ? AND creator = ?`, [message.guild.id, alliance.id, message.author.id], async (err) => {
collector.on("collect", async (i) => {
if (i.customId === "confirm_delete") {
db.run(
`DELETE FROM alliances WHERE guildId = ? AND id = ? AND creator = ?`,
[message.guild.id, alliance.id, message.author.id],
async (err) => {
if (err) {
return i.update({ content: 'Une erreur est survenue lors de la suppression de l\'alliance.', components: [] });
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) {
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()
.setTitle('🛡️ Suppression de l\'alliance')
.setDescription(`L'alliance ${alliance.name} a été supprimée avec succès.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTitle("🛡️ Suppression de l'alliance")
.setDescription(
`L'alliance ${alliance.name} a été supprimée avec succès.`,
)
.setColor(
await embedColor(message.author.id, message.guild.id),
)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return i.update({ embeds: [embed], components: [] });
});
});
},
);
},
);
} else {
await i.update({ content: 'Suppression de l\'alliance annulée.', components: [] });
await i.update({
content: "Suppression de l'alliance annulée.",
components: [],
});
}
});
collector.on('end', collected => {
if (collected.size === 0) sentMessage.edit({ content: 'Temps écoulé. Suppression de l\'équipe annulée.', components: [] });
collector.on("end", (collected) => {
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 db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['adep', 'adepot', 'alliancedep', 'alliancedepot'],
description: 'Dépose de l\'argent dans la banque de votre alliance. (tout le monde peux en recupéré ⚠️)',
emote: '💰',
utilisation: '<montant|all>',
aliases: ["adep", "adepot", "alliancedep", "alliancedepot"],
description:
"Dépose de l'argent dans la banque de votre alliance. (tout le monde peux en recupéré ⚠️)",
emote: "💰",
utilisation: "<montant|all>",
permission: 0,
async execute(message, args, client) {
if (args.length == 0) {
const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible')
.setDescription('❌ Vous devez spécifier un montant à déposer.')
.setTitle("Dépôt Impossible")
.setDescription("❌ Vous devez spécifier un montant à déposer.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (args[0] !== 'all' && isNaN(args[0])) {
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (args[0] !== "all" && isNaN(args[0])) {
const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible')
.setDescription('❌ Vous devez spécifier un montant valide à déposer.')
.setTitle("Dépôt Impossible")
.setDescription("❌ Vous devez spécifier un montant valide à déposer.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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) {
const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible')
.setDescription('❌ Vous devez déposer au moins 1 coin.')
.setTitle("Dépôt Impossible")
.setDescription("❌ Vous devez déposer au moins 1 coin.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
const pocket = await new Promise((resolve, reject) => {
db.get(`SELECT pocket FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT pocket FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row.pocket);
});
},
);
});
let amout;
if (args[0] === 'all') {
if (args[0] === "all") {
amout = pocket;
} else if (args[0] > pocket) {
const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible')
.setDescription('❌ Vous n\'avez pas assez d\'argent sur vous pour déposer cette somme.\n\n💰 Vous avez actuellement **' + pocket + 'coins** sur vous.')
.setTitle("Dépôt Impossible")
.setDescription(
"❌ Vous n'avez pas assez d'argent sur vous pour déposer cette somme.\n\n💰 Vous avez actuellement **" +
pocket +
"coins** sur vous.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 {
amout = args[0];
}
const alliance = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM team WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?))`, [message.guild.id, message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM team WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?))`,
[message.guild.id, message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
});
},
);
});
if (!alliance) {
const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible')
.setDescription('❌ Vous n\'êtes pas dans une alliances.')
.setTitle("Dépôt Impossible")
.setDescription("❌ Vous n'êtes pas dans une alliances.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 {
db.run(`UPDATE users SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`, [amout, message.guild.id, message.author.id]);
db.run(`UPDATE alliances SET bank = bank + ? WHERE guildId = ? AND id = ?`, [amout, message.guild.id, alliance.id]);
db.run(
`UPDATE users SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`,
[amout, message.guild.id, message.author.id],
);
db.run(
`UPDATE alliances SET bank = bank + ? WHERE guildId = ? AND id = ?`,
[amout, message.guild.id, alliance.id],
);
const embed = new EmbedBuilder()
.setTitle('Dépôt Effectué')
.setDescription('💰 Vous avez déposé **' + amout + '** coins dans la banque de votre alliances.')
.setTitle("Dépôt Effectué")
.setDescription(
"💰 Vous avez déposé **" +
amout +
"** coins dans la banque de votre alliances.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['arep', 'areputation', 'alliancereputation', 'alliancerep'],
description: 'Ajoute une reputation a une alliance. (tout le monde peux en recupéré ⚠️)',
emote: '💰',
utilisation: '<id>',
aliases: ["arep", "areputation", "alliancereputation", "alliancerep"],
description:
"Ajoute une reputation a une alliance. (tout le monde peux en recupéré ⚠️)",
emote: "💰",
utilisation: "<id>",
permission: 0,
async execute(message, args, client) {
if (args.length == 0) {
const embed = new EmbedBuilder()
.setTitle('Ajout de reputation')
.setDescription('❌ Vous devez spécifier une alliance a rep.')
.setTitle("Ajout de reputation")
.setDescription("❌ Vous devez spécifier une alliance a rep.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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) {
const embed = new EmbedBuilder()
.setTitle('Ajout de reputation')
.setDescription('❌ Vous devez mettre l\'id d\'une alliance.')
.setTitle("Ajout de reputation")
.setDescription("❌ Vous devez mettre l'id d'une alliance.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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) => {
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);
resolve(row);
});
},
);
});
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row.lastRep);
});
},
);
});
if (!alliance) {
const embed = new EmbedBuilder()
.setTitle('Ajout de reputation')
.setDescription('❌ Alliance introuvable.')
.setTitle("Ajout de reputation")
.setDescription("❌ Alliance introuvable.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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) {
const embed = new EmbedBuilder()
.setTitle('Ajout de reputation impossible')
.setDescription(`❌ Vous avez déjà ajouté une reputation récemment. Veuillez attendre \`${Math.floor((user.lastArep + 1800000 - Date.now()) / 60000)}\` minutes avant de pouvoir travailler à nouveau.`)
.setTitle("Ajout de reputation impossible")
.setDescription(
`❌ Vous avez déjà ajouté une reputation récemment. Veuillez attendre \`${Math.floor((user.lastArep + 1800000 - Date.now()) / 60000)}\` minutes avant de pouvoir travailler à nouveau.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 {
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()
.setTitle('Ajout de reputation effectué')
.setDescription('💰 Vous avez ajouter `1` reputation à l\`alliance `' + args[0] + '`.')
.setTitle("Ajout de reputation effectué")
.setDescription(
"💰 Vous avez ajouter `1` reputation à l`alliance `" + args[0] + "`.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['awh', 'awith', 'alliancewh', 'alliancewith', 'awithdraw', 'alliancewithdraw'],
description: 'Récupere de l\'argent/des reputation dans la banque de votre alliance.',
emote: '💰',
utilisation: '<rep|coins> <montant|all>',
aliases: [
"awh",
"awith",
"alliancewh",
"alliancewith",
"awithdraw",
"alliancewithdraw",
],
description:
"Récupere de l'argent/des reputation dans la banque de votre alliance.",
emote: "💰",
utilisation: "<rep|coins> <montant|all>",
permission: 0,
async execute(message, args, client) {
if (args.length == 0) {
const embed = new EmbedBuilder()
.setTitle('Récuperation Impossible')
.setDescription('❌ Vous devez spécifier un type et un montant à récupérer (`awith coins 200`).')
.setTitle("Récuperation Impossible")
.setDescription(
"❌ Vous devez spécifier un type et un montant à récupérer (`awith coins 200`).",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (args[1] !== 'all' && isNaN(args[1])) {
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (args[1] !== "all" && isNaN(args[1])) {
const embed = new EmbedBuilder()
.setTitle('Récuperation Impossible')
.setDescription('❌ Vous devez spécifier un montant valide à récupérer.')
.setTitle("Récuperation Impossible")
.setDescription(
"❌ Vous devez spécifier un montant valide à récupérer.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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) {
const embed = new EmbedBuilder()
.setTitle('Récuperation Impossible')
.setDescription('❌ Vous devez récupérer au moins 1 coin/rep.')
.setTitle("Récuperation Impossible")
.setDescription("❌ Vous devez récupérer au moins 1 coin/rep.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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) => {
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);
resolve(row);
});
},
);
});
if (!alliance) {
const embed = new EmbedBuilder()
.setTitle('Récuperation Impossible')
.setDescription('❌ Vous n\'êtes pas dans une alliances.')
.setTitle("Récuperation Impossible")
.setDescription("❌ Vous n'êtes pas dans une alliances.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (args[0] == 'rep' || args[0] == 'r' || args[0] == 'reputation') {
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (args[0] == "rep" || args[0] == "r" || args[0] == "reputation") {
let amout;
if (args[1] === 'all') {
if (args[1] === "all") {
amout = alliance.bank;
} else if (args[1] > alliance.bank) {
const embed = new EmbedBuilder()
.setTitle('Récuperation Impossible')
.setDescription('❌ Il n\'y a pas suffisament de reputation dans l\'alliance pour en recupéré autant.\n\n💰 Il y a actuellement `' + alliance.reputation + '`rep')
.setTitle("Récuperation Impossible")
.setDescription(
"❌ Il n'y a pas suffisament de reputation dans l'alliance pour en recupéré autant.\n\n💰 Il y a actuellement `" +
alliance.reputation +
"`rep",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 {
amout = args[1];
}
db.run(`UPDATE users SET reputation = reputation + ? WHERE guildId = ? AND userId = ?`, [amout, message.guild.id, message.author.id]);
db.run(`UPDATE alliances SET reputation = reputation - ? WHERE guildId = ? AND id = ?`, [amout, message.guild.id, alliance.id]);
db.run(
`UPDATE users SET reputation = reputation + ? WHERE guildId = ? AND userId = ?`,
[amout, message.guild.id, message.author.id],
);
db.run(
`UPDATE alliances SET reputation = reputation - ? WHERE guildId = ? AND id = ?`,
[amout, message.guild.id, alliance.id],
);
const embed = new EmbedBuilder()
.setTitle('Récuperation Effectué')
.setDescription('💰 Vous avez récupéré **' + amout + '** coins dans la banque de votre alliances.')
.setTitle("Récuperation Effectué")
.setDescription(
"💰 Vous avez récupéré **" +
amout +
"** coins dans la banque de votre alliances.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (args[1] == 'coin' || args[0] == 'c' || args[0] == 'coins') {
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (args[1] == "coin" || args[0] == "c" || args[0] == "coins") {
let amout;
if (args[1] === 'all') {
if (args[1] === "all") {
amout = alliance.bank;
} else if (args[1] > alliance.bank) {
const embed = new EmbedBuilder()
.setTitle('Récuperation Impossible')
.setDescription('❌ Il n\'y a pas suffisament de coins dans l\'alliance pour récupérer cette somme.\n\n💰 il y a actuellement `' + alliance.bank + '`coins')
.setTitle("Récuperation Impossible")
.setDescription(
"❌ Il n'y a pas suffisament de coins dans l'alliance pour récupérer cette somme.\n\n💰 il y a actuellement `" +
alliance.bank +
"`coins",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 {
amout = args[1];
}
db.run(`UPDATE users SET pocket = pocket + ? WHERE guildId = ? AND userId = ?`, [amout, message.guild.id, message.author.id]);
db.run(`UPDATE alliances SET bank = bank - ? WHERE guildId = ? AND id = ?`, [amout, message.guild.id, alliance.id]);
db.run(
`UPDATE users SET pocket = pocket + ? WHERE guildId = ? AND userId = ?`,
[amout, message.guild.id, message.author.id],
);
db.run(
`UPDATE alliances SET bank = bank - ? WHERE guildId = ? AND id = ?`,
[amout, message.guild.id, alliance.id],
);
const embed = new EmbedBuilder()
.setTitle('Récuperation Effectué')
.setDescription('💰 Vous avez récupéré **' + amout + '** coins dans la banque de votre alliances.')
.setTitle("Récuperation Effectué")
.setDescription(
"💰 Vous avez récupéré **" +
amout +
"** coins dans la banque de votre alliances.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 {
const embed = new EmbedBuilder()
.setTitle('Récuperation Impossible')
.setDescription('❌ Veuillez spécifier un type valide (rep|coins) :\n(`awith <rep|coins> <nombre>`)')
.setTitle("Récuperation Impossible")
.setDescription(
"❌ Veuillez spécifier un type valide (rep|coins) :\n(`awith <rep|coins> <nombre>`)",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['a', 'ainfo', 'allianceinfo'],
description: 'Affiche les informations de votre alliance.',
emote: '🛡️',
utilisation: '',
aliases: ["a", "ainfo", "allianceinfo"],
description: "Affiche les informations de votre alliance.",
emote: "🛡️",
utilisation: "",
permission: 0,
async execute(message, args, client) {
const member = message.mentions.members.first() || message.author;
const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [message.guild.id, message.guild.id, member.id], (err, row) => {
db.get(
`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`,
[message.guild.id, message.guild.id, member.id],
(err, row) => {
if (err) reject(err);
resolve(row);
});
},
);
});
const alliance = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM teams WHERE guildId = ? AND id = ?)`, [message.guild.id, message.guild.id, team.id], (err, row) => {
db.get(
`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM teams WHERE guildId = ? AND id = ?)`,
[message.guild.id, message.guild.id, team.id],
(err, row) => {
if (err) reject(err);
resolve(row);
});
},
);
});
if (!alliance) {
const embed = new EmbedBuilder()
.setTitle('🛡️ Informations d\'alliance')
.setDescription('<@' + member.id + '> n\'est actuellement dans aucune alliance.')
.setTitle("🛡️ Informations d'alliance")
.setDescription(
"<@" + member.id + "> n'est actuellement dans aucune alliance.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 {
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);
resolve(rows);
});
},
);
});
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
const embed = new EmbedBuilder()
.setTitle('🛡️ Informations de `' + alliance.name + '`:')
.setDescription(`**Id:** \`${alliance.id}\`\n**Description:** \`${alliance.description}\`\n**Banque:** \`${alliance.bank}\`coins => Tout le monde peux recupéré ces coins.\n**Reputation:** \`${alliance.reputation} => Tout le monde peux recupéré ces reputations\`\n\n**Membres (\`${memberlist.length}\`):**\n${memberlist.map(member => `**${member.allianceRole}:** <@${member.userId}>`).join('\n')}\n`)
.setTitle("🛡️ Informations de `" + alliance.name + "`:")
.setDescription(
`**Id:** \`${alliance.id}\`\n**Description:** \`${alliance.description}\`\n**Banque:** \`${alliance.bank}\`coins => Tout le monde peux recupéré ces coins.\n**Reputation:** \`${alliance.reputation} => Tout le monde peux recupéré ces reputations\`\n\n**Membres (\`${memberlist.length}\`):**\n${memberlist.map((member) => `**${member.allianceRole}:** <@${member.userId}>`).join("\n")}\n`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
const urlRegex1 = /(https?:\/\/[^\s]+)/g;
if (alliance.icon && urlRegex1.test(alliance.icon)) {
@@ -60,7 +85,10 @@ module.exports = {
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 db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const {
EmbedBuilder,
StringSelectMenuBuilder,
ActionRowBuilder,
} = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: [],
description: 'Change la couleur de vos embed.',
emote: '🔵',
utilisation: '',
description: "Change la couleur de vos embed.",
emote: "🔵",
utilisation: "",
permission: 0,
async execute(message, args, client) {
const embed = new EmbedBuilder()
.setTitle('🔵 Embed')
.setTitle("🔵 Embed")
.setDescription(`Sélectionnez une couleur pour vos embeds`)
.setColor(await embedColor(message.author.id, message.guild.id))
.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()
.setCustomId('color')
.setPlaceholder('Sélectionnez une couleur')
.setCustomId("color")
.setPlaceholder("Sélectionnez une couleur")
.addOptions([
{
label: '🔴 Rouge',
description: 'Prix : 3 rep🔺',
value: 'red',
label: "🔴 Rouge",
description: "Prix : 3 rep🔺",
value: "red",
},
{
label: '🟠 Orange',
description: 'Prix : 3 rep🔺',
value: 'orange',
label: "🟠 Orange",
description: "Prix : 3 rep🔺",
value: "orange",
},
{
label: '🟡 Jaune',
description: 'Prix : 3 rep🔺',
value: 'yellow',
label: "🟡 Jaune",
description: "Prix : 3 rep🔺",
value: "yellow",
},
{
label: '🟢 Vert',
description: 'Prix : 3 rep🔺',
value: 'green',
label: "🟢 Vert",
description: "Prix : 3 rep🔺",
value: "green",
},
{
label: '🔵 Bleu',
description: 'Prix : 3 rep🔺',
value: 'blue',
label: "🔵 Bleu",
description: "Prix : 3 rep🔺",
value: "blue",
},
{
label: '🟣 Violet',
description: 'Prix : 3 rep🔺',
value: 'purple',
label: "🟣 Violet",
description: "Prix : 3 rep🔺",
value: "purple",
},
{
label: '🟤 Marron',
description: 'Prix : 3 rep🔺',
value: 'brown',
label: "🟤 Marron",
description: "Prix : 3 rep🔺",
value: "brown",
},
{
label: '⚫ Noir',
description: 'Prix : 3 rep🔺',
value: 'black',
label: "⚫ Noir",
description: "Prix : 3 rep🔺",
value: "black",
},
{
label: '⚪ Blanc',
description: 'Prix : 3 rep🔺',
value: 'white',
label: "⚪ Blanc",
description: "Prix : 3 rep🔺",
value: "white",
},
{
label: 'Aléatoire 🌈',
description: 'Prix : 5 rep🔺',
value: 'random',
label: "Aléatoire 🌈",
description: "Prix : 5 rep🔺",
value: "random",
},
]);
const row = new ActionRowBuilder()
.addComponents(select);
const row = new ActionRowBuilder().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 collector = embedMessage.createMessageComponentCollector({ filter, time: 60000 });
collector.on('collect', async (interaction) => {
const collector = embedMessage.createMessageComponentCollector({
filter,
time: 60000,
});
collector.on("collect", async (interaction) => {
if (interaction.isStringSelectMenu()) {
if (!client.user) return
if (!client.user) return;
const value = interaction.values[0];
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);
resolve(row);
});
},
);
});
const reputation = user.reputation;
if (value === 'random') {
if (value === "random") {
if (reputation < 5) {
const embed = new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Vous n\'avez pas assez de réputations pour acheter cette couleur.')
.setTitle("Erreur")
.setDescription(
"❌ Vous n'avez pas assez de réputations pour acheter cette couleur.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return interaction.reply({ embeds: [embed], ephemeral: true, allowedMentions: { repliedUser: false } });
}
db.run(`UPDATE users SET reputation = reputation - 5, embed = 'random' WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err) => {
if (err) return console.error(err);
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return interaction.reply({
embeds: [embed],
ephemeral: true,
allowedMentions: { repliedUser: false },
});
}
db.run(
`UPDATE users SET reputation = reputation - 5, embed = 'random' WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err) => {
if (err) return console.error(err);
},
);
const embed = new EmbedBuilder()
.setTitle('🔵 Embed')
.setDescription('✅ Vous avez acheté la couleur aléatoire pour vos embeds.')
.setTitle("🔵 Embed")
.setDescription(
"✅ Vous avez acheté la couleur aléatoire pour vos embeds.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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 {
if (reputation < 3) {
const embed = new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Vous n\'avez pas assez de réputations pour acheter cette couleur.')
.setTitle("Erreur")
.setDescription(
"❌ Vous n'avez pas assez de réputations pour acheter cette couleur.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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);
});
},
);
const embed = new EmbedBuilder()
.setTitle('🔵 Embed')
.setDescription(`✅ Vous avez acheté la couleur ${value} pour vos embeds.`)
.setTitle("🔵 Embed")
.setDescription(
`✅ Vous avez acheté la couleur ${value} pour vos embeds.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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: [] });
});
},
+121 -55
View File
@@ -1,124 +1,190 @@
const { EmbedBuilder, ActionRowBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const {
EmbedBuilder,
ActionRowBuilder,
StringSelectMenuBuilder,
StringSelectMenuOptionBuilder,
} = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['shop', 'magasin', 'boutique', 'store'],
description: 'Affiche le shop du bot.',
emote: '🛍️',
utilisation: '',
aliases: ["shop", "magasin", "boutique", "store"],
description: "Affiche le shop du bot.",
emote: "🛍️",
utilisation: "",
permission: 0,
async execute(message, args, client) {
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setTitle("🛍️ Shop")
.setThumbnail(message.guild.iconURL())
.setDescription(`Sélectionnez un item à acheter. Voici les items disponibles :\n\n> 🔒 AntiRob - Protège contre les vols pendant 2 heures - Prix : 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))
.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()
.setCustomId('shop')
.setPlaceholder('Sélectionnez un item')
.setCustomId("shop")
.setPlaceholder("Sélectionnez un item")
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('🔒 AntiRob')
.setValue('antirob')
.setDescription('Protège contre les vols pendant 2 heures')
.setEmoji('🔒')
.setLabel("🔒 AntiRob")
.setValue("antirob")
.setDescription("Protège contre les vols pendant 2 heures")
.setEmoji("🔒")
.setDefault(false),
new StringSelectMenuOptionBuilder()
.setLabel('🗝️ Clef')
.setValue('key')
.setDescription('Permet d\'ouvrir une boite')
.setEmoji('🗝️')
.setLabel("🗝️ Clef")
.setValue("key")
.setDescription("Permet d'ouvrir une boite")
.setEmoji("🗝️")
.setDefault(false),
new StringSelectMenuOptionBuilder()
.setLabel('💰 25000 Coins')
.setValue('coins')
.setDescription('Vous donne 25K de coins contre 1reputation')
.setEmoji('💰')
.setLabel("💰 25000 Coins")
.setValue("coins")
.setDescription("Vous donne 25K de coins contre 1reputation")
.setEmoji("💰")
.setDefault(false),
);
const row = new ActionRowBuilder()
.addComponents(select);
const row = new ActionRowBuilder().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.customId === 'shop') return
if (!interaction.customId === "shop") return;
const selected = interaction.values[0];
if (selected === 'antirob') {
if (selected === "antirob") {
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
});
},
);
});
if (user.pocket < 2000) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'argent pour acheter cet item.', ephemeral: true });
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()
.setTitle('🛍️ Shop')
.setDescription(`Vous avez acheté l'item 🔒 AntiRob pour 2000 coins !`)
.setTitle("🛍️ Shop")
.setDescription(
`Vous avez acheté l'item 🔒 AntiRob pour 2000 coins !`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (selected === 'key') {
interaction.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (selected === "key") {
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
});
},
);
});
if (user.pocket < 2500) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'argent pour acheter cet item.', ephemeral: true });
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()
.setTitle('🛍️ Shop')
.setTitle("🛍️ Shop")
.setDescription(`Vous avez acheté l'item 🗝️ clef pour 2500 coins !`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (selected === 'coins') {
interaction.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (selected === "coins") {
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
});
},
);
});
if (user.reputation < 1) {
return interaction.reply({ content: 'Vous n\'avez pas assez de reputation pour acheter cet item.', ephemeral: true });
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()
.setTitle('🛍️ Shop')
.setDescription(`Vous avez acheté \`25000\`coins contre une reputation !`)
.setTitle("🛍️ Shop")
.setDescription(
`Vous avez acheté \`25000\`coins contre une reputation !`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const {
EmbedBuilder,
ActionRowBuilder,
StringSelectMenuBuilder,
StringSelectMenuOptionBuilder,
} = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['tshop', 'tmagasin', 'tboutique', 'tstore', 'teamshop', 'teammagasin', 'tboutique', 'teamstore'],
description: 'Affiche le shop du bot.',
emote: '🛍️',
utilisation: '',
aliases: [
"tshop",
"tmagasin",
"tboutique",
"tstore",
"teamshop",
"teammagasin",
"tboutique",
"teamstore",
],
description: "Affiche le shop du bot.",
emote: "🛍️",
utilisation: "",
permission: 0,
async execute(message, args, client) {
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
});
},
);
});
const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM teams WHERE guildId = ? AND id = ?`, [message.guild.id, user.teamId], (err, row) => {
db.get(
`SELECT * FROM teams WHERE guildId = ? AND id = ?`,
[message.guild.id, user.teamId],
(err, row) => {
if (err) reject(err);
resolve(row);
});
},
);
});
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setTitle("🛍️ Shop")
.setThumbnail(message.guild.iconURL())
.setDescription(`Sélectionnez un item à acheter POUR VOTRE TEAM, les items sont cummulable, vous gagner déjà ${team.location}coins/min. Voici les items disponibles :\n\n> 🏢 Appartement - Achete un appartement et le met en location, rapporte \`70coins/min\`\nPrix : \`100000\`coins\n\n> 🏠 Maison - Achete une petite maison et la met en location, rapporte \`75coins/min\`\nPrix : \`110000\`coins\n\n> 🏠 Grande maison - Achete une grande maison et la met en location, rapporte \`125coins/min\`\nPrix : \`150000\`coins\n\n> 💎 Villa - Achete une petite maison et la met en location, rapporte \`250coins/min\`\nPrix : \`250000\`coins\n\n> 🏝️ Île - Achete une île et la met en location, rapporte \`2500coins/min\`\nPrix : \`500000\`coins`)
.setDescription(
`Sélectionnez un item à acheter POUR VOTRE TEAM, les items sont cummulable, vous gagner déjà ${team.location}coins/min. Voici les items disponibles :\n\n> 🏢 Appartement - Achete un appartement et le met en location, rapporte \`70coins/min\`\nPrix : \`100000\`coins\n\n> 🏠 Maison - Achete une petite maison et la met en location, rapporte \`75coins/min\`\nPrix : \`110000\`coins\n\n> 🏠 Grande maison - Achete une grande maison et la met en location, rapporte \`125coins/min\`\nPrix : \`150000\`coins\n\n> 💎 Villa - Achete une petite maison et la met en location, rapporte \`250coins/min\`\nPrix : \`250000\`coins\n\n> 🏝️ Île - Achete une île et la met en location, rapporte \`2500coins/min\`\nPrix : \`500000\`coins`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
const select = new StringSelectMenuBuilder()
.setCustomId('shop')
.setPlaceholder('Sélectionnez un item')
.setCustomId("shop")
.setPlaceholder("Sélectionnez un item")
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('🏢 Appartement')
.setValue('appartement')
.setDescription('Achete un appartement et le met en location, rapporte 70coins/min')
.setEmoji('🏢')
.setLabel("🏢 Appartement")
.setValue("appartement")
.setDescription(
"Achete un appartement et le met en location, rapporte 70coins/min",
)
.setEmoji("🏢")
.setDefault(false),
new StringSelectMenuOptionBuilder()
.setLabel('🏠 Maison')
.setValue('maison')
.setDescription('Achete une petite maison et la met en location, rapporte 75coins/min')
.setEmoji('🏠')
.setLabel("🏠 Maison")
.setValue("maison")
.setDescription(
"Achete une petite maison et la met en location, rapporte 75coins/min",
)
.setEmoji("🏠")
.setDefault(false),
new StringSelectMenuOptionBuilder()
.setLabel('🏠 Grande maison')
.setValue('maison2')
.setDescription('Achete une grande maison et la met en location, rapporte 120coins/min')
.setEmoji('🏠')
.setLabel("🏠 Grande maison")
.setValue("maison2")
.setDescription(
"Achete une grande maison et la met en location, rapporte 120coins/min",
)
.setEmoji("🏠")
.setDefault(false),
new StringSelectMenuOptionBuilder()
.setLabel('💎 Villa')
.setValue('villa')
.setDescription('Achete une villa et la met en location, rapporte 250coins/min')
.setEmoji('💎')
.setLabel("💎 Villa")
.setValue("villa")
.setDescription(
"Achete une villa et la met en location, rapporte 250coins/min",
)
.setEmoji("💎")
.setDefault(false),
new StringSelectMenuOptionBuilder()
.setLabel('🏝️ Île')
.setValue('ile')
.setDescription('Achete une île et la met en location, rapporte 2500coins/min')
.setEmoji('🏝️')
.setLabel("🏝️ Île")
.setValue("ile")
.setDescription(
"Achete une île et la met en location, rapporte 2500coins/min",
)
.setEmoji("🏝️")
.setDefault(false),
);
const row = new ActionRowBuilder()
.addComponents(select);
const row = new ActionRowBuilder().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.customId === 'shop') return
if (!interaction.customId === "shop") return;
const selected = interaction.values[0];
let coup = ''
let item = ''
let win = ''
if (selected === 'appartement') {
coup = '100000'
item = 'appartement'
win = '70'
} else if (selected === 'maison') {
coup = '110000'
item = 'maison'
win = '75'
} else if (selected === 'maison2') {
coup = '150000'
item = 'grande maison'
win = '120'
} else if (selected === 'villa') {
coup = '250000'
item = 'villa'
win = '250'
} else if (selected === 'ile') {
coup = '500000'
item = 'île'
win = '2500'
let coup = "";
let item = "";
let win = "";
if (selected === "appartement") {
coup = "100000";
item = "appartement";
win = "70";
} else if (selected === "maison") {
coup = "110000";
item = "maison";
win = "75";
} else if (selected === "maison2") {
coup = "150000";
item = "grande maison";
win = "120";
} else if (selected === "villa") {
coup = "250000";
item = "villa";
win = "250";
} else if (selected === "ile") {
coup = "500000";
item = "île";
win = "2500";
}
if (user.teamRole !== 'officier' || user.teamRole !== 'officer') return interaction.reply({ content: 'Vous n\'avez pas les permissions pour faire cet achat', ephemeral: true });
if (team.bank < coup) return interaction.reply({ content: 'Vous n\'avez pas assez d\'argent pour acheter cet item.', ephemeral: true });
if (user.teamRole !== "officier" || user.teamRole !== "officer")
return interaction.reply({
content: "Vous n'avez pas les permissions pour faire cet achat",
ephemeral: true,
});
if (team.bank < coup)
return interaction.reply({
content: "Vous n'avez pas assez d'argent pour acheter cet item.",
ephemeral: true,
});
db.run(`UPDATE teams SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`, [coup, message.guild.id, message.author.id]);
db.run(`UPDATE teams SET location = location + ? WHERE guildId = ? AND userId = ?`, [win, message.guild.id, message.author.id]);
db.run(
`UPDATE teams SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`,
[coup, message.guild.id, message.author.id],
);
db.run(
`UPDATE teams SET location = location + ? WHERE guildId = ? AND userId = ?`,
[win, message.guild.id, message.author.id],
);
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setDescription(`Vous avez acheté l'item ${item} pour \`${coup}\`coins !`)
.setTitle("🛍️ Shop")
.setDescription(
`Vous avez acheté l'item ${item} pour \`${coup}\`coins !`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
.setFooter({
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 db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['bl', 'addbl'],
description: 'Met un utilisateur comme blacklist (sur ce serveur).',
emote: '🛡️',
utilisation: '<@membre>',
aliases: ["bl", "addbl"],
description: "Met un utilisateur comme blacklist (sur ce serveur).",
emote: "🛡️",
utilisation: "<@membre>",
permission: 10,
async execute(message, args, client) {
const member = message.mentions.users.first();
if (!member) {
const embed = new EmbedBuilder()
.setTitle('Blacklist :')
.setTitle("Blacklist :")
.setDescription(`**Veuillez mentionner un membre valide**`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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()
.setTitle('Blacklist :')
.setTitle("Blacklist :")
.setDescription(`**<@${member.id}> est maintement blacklist !**`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
+25 -14
View File
@@ -1,36 +1,47 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['unbl', 'removebl'],
description: 'Met un utilisateur comme non-blacklist (sur ce serveur).',
emote: '🛡️',
utilisation: '<@membre>',
aliases: ["unbl", "removebl"],
description: "Met un utilisateur comme non-blacklist (sur ce serveur).",
emote: "🛡️",
utilisation: "<@membre>",
permission: 10,
async execute(message, args, client) {
const member = message.mentions.users.first();
if (!member) {
const embed = new EmbedBuilder()
.setTitle('Un-blacklist :')
.setTitle("Un-blacklist :")
.setDescription(`**Veuillez mentionner un membre valide**`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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()
.setTitle('Un-blacklist :')
.setTitle("Un-blacklist :")
.setDescription(`**<@${member.id}> est maintement un-blacklist !**`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
+174 -74
View File
@@ -1,28 +1,39 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const embedColor = require('../../fonctions/embedColor.js');
const getPrefix = require('../../fonctions/getPrefix.js');
const {
EmbedBuilder,
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const getPrefix = require("../../fonctions/getPrefix.js");
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();
casinoCommands.forEach(command => {
uniqueCommands.set(command.name, { description: command.description, emote: command.emote, utilisation: command.utilisation });
casinoCommands.forEach((command) => {
uniqueCommands.set(command.name, {
description: command.description,
emote: command.emote,
utilisation: command.utilisation,
});
});
let commandsList = '';
let commandsList = "";
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;
}
module.exports = {
aliases: ['', 'h', 'aide'],
description: 'Affiche la liste des commandes disponibles',
emote: '📚',
utilisation: '[commande]',
aliases: ["", "h", "aide"],
description: "Affiche la liste des commandes disponibles",
emote: "📚",
utilisation: "[commande]",
permission: 0,
async execute(message, args, client) {
@@ -33,57 +44,81 @@ module.exports = {
const embed = new EmbedBuilder()
.setTitle(`📚・${command.name}`)
.setThumbnail(message.guild.iconURL())
.setDescription(`> **Description :** ${command.description}\n> **Utilisation :** \`${prefix}${command.name}${command.utilisation ? ' ' + command.utilisation : ''}\`\n> **Alias :** ${command.aliases.join(', ') || 'Aucun'}\n> **Permission :** ${command.permission}\n> **Catégorie :** ${command.category}\n> **Emote :** ${command.emote}`)
.setDescription(
`> **Description :** ${command.description}\n> **Utilisation :** \`${prefix}${command.name}${command.utilisation ? " " + command.utilisation : ""}\`\n> **Alias :** ${command.aliases.join(", ") || "Aucun"}\n> **Permission :** ${command.permission}\n> **Catégorie :** ${command.category}\n> **Emote :** ${command.emote}`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 {
if (args[0]) {
const embed = new EmbedBuilder()
.setTitle('❌・Commande inconnue')
.setDescription('La commande que vous avez demandée n\'existe pas. Nous vous invitons à vérifier l\'orthographe dans le help si dessous et à réessayer.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTitle("❌・Commande inconnue")
.setDescription(
"La commande que vous avez demandée n'existe pas. Nous vous invitons à vérifier l'orthographe dans le help si dessous et à réessayer.",
)
.setColor(await embedColor(message.author.id, message.guild.id));
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
}
}
const prefix = await getPrefix(message.guild.id);
const embedPage1 = new EmbedBuilder()
.setTitle('📚 ・Information')
.setTitle("📚 ・Information")
.setThumbnail(message.guild.iconURL())
.setDescription(`Voici le panel d'aide du bot. Pour plus d'informations sur une commande, utilisez ${prefix}help <commande>\n\n> **🎙️ Récompenses vocales :**\n> Vous gagnez \`100\` coins toutes les \`15\`minutes lorsque vous êtes en vocal (**NON MUTE** sinon c'est \`50\`coins).\n \n> **📺 Récompenses de streaming :**\n> Activer un stream vous fera gagner \`200\`.\n \n> **📷 Récompenses de caméra :**\n> Activer votre caméra vous fera gagner \`200\`.\n\n> Le coins est une monnaie fictive.`)
.setDescription(
`Voici le panel d'aide du bot. Pour plus d'informations sur une commande, utilisez ${prefix}help <commande>\n\n> **🎙️ Récompenses vocales :**\n> Vous gagnez \`100\` coins toutes les \`15\`minutes lorsque vous êtes en vocal (**NON MUTE** sinon c'est \`50\`coins).\n \n> **📺 Récompenses de streaming :**\n> Activer un stream vous fera gagner \`200\`.\n \n> **📷 Récompenses de caméra :**\n> Activer votre caméra vous fera gagner \`200\`.\n\n> Le coins est une monnaie fictive.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 1/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Page 1/10 | Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
const leftButton = new ButtonBuilder()
.setCustomId('left')
.setLabel('◀')
.setCustomId("left")
.setLabel("◀")
.setStyle(ButtonStyle.Primary);
const rightButton = new ButtonBuilder()
.setCustomId('right')
.setLabel('▶')
.setCustomId("right")
.setLabel("▶")
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(leftButton, rightButton);
const row = new ActionRowBuilder().addComponents(leftButton, rightButton);
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 collector = message.channel.createMessageComponentCollector({ filter, time: 120000 });
const filter = (i) => i.user.id === message.author.id;
const collector = message.channel.createMessageComponentCollector({
filter,
time: 120000,
});
let page = 1;
collector.on('collect', async i => {
if (i.customId === 'left') {
collector.on("collect", async (i) => {
if (i.customId === "left") {
page--;
if (page < 1) page = 10;
} else if (i.customId === 'right') {
} else if (i.customId === "right") {
page++;
if (page > 10) page = 1;
}
@@ -92,100 +127,165 @@ module.exports = {
i.update({ embeds: [embedPage1], components: [row] });
} else if (page === 2) {
const embedPage2 = new EmbedBuilder()
.setTitle('💰・Casino')
.setTitle("💰・Casino")
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'casino', prefix))
.setDescription(commandsList(client, "casino", prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 2/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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) {
const embedPage3 = new EmbedBuilder()
.setTitle('🎲・Jeux')
.setTitle("🎲・Jeux")
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'jeux', prefix))
.setDescription(commandsList(client, "jeux", prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 3/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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) {
const embedPage4 = new EmbedBuilder()
.setTitle('🛍️・Achats')
.setTitle("🛍️・Achats")
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'achats', prefix))
.setDescription(commandsList(client, "achats", prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 4/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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) {
const embedPage5 = new EmbedBuilder()
.setTitle('🏭・Metier et capacité')
.setTitle("🏭・Metier et capacité")
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'jobs', prefix))
.setDescription(commandsList(client, "jobs", prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 5/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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) {
const embedPage6 = new EmbedBuilder()
.setTitle('💼・Teams')
.setTitle("💼・Teams")
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'teams', prefix))
.setDescription(commandsList(client, "teams", prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 6/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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) {
const embedPage7 = new EmbedBuilder()
.setTitle('🛡️・Teams administration')
.setTitle("🛡️・Teams administration")
.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))
.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) {
const embedPage8 = new EmbedBuilder()
.setTitle('🤝・Alliance')
.setTitle("🤝・Alliance")
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'Alliance', prefix))
.setDescription(commandsList(client, "Alliance", prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 8/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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) {
const embedPage9 = new EmbedBuilder()
.setTitle('👑・Gestion')
.setTitle("👑・Gestion")
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'gestion', prefix))
.setDescription(commandsList(client, "gestion", prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 9/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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) {
const embedPage10 = new EmbedBuilder()
.setTitle('👑・Bot control')
.setTitle("👑・Bot control")
.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))
.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', () => {
messageEmbed.edit({ components: [], allowedMentions: { repliedUser: false } })
collector.on("end", () => {
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 = {
aliases: ['latence'],
description: 'Avoir la latence du bot.',
emote: '⏱️',
utilisation: '',
aliases: ["latence"],
description: "Avoir la latence du bot.",
emote: "⏱️",
utilisation: "",
permission: 0,
async execute(message, args, client) {
const ping = new ButtonBuilder()
.setCustomId('confirm')
.setLabel('🔄')
.setCustomId("confirm")
.setLabel("🔄")
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(ping);
const row = new ActionRowBuilder().addComponents(ping);
const sentMessage = await message.reply({
content: `La latence est de : ${client.ws.ping}`,
components: [row],
allowedMentions: { repliedUser: false },
});
const filter = i => i.customId === 'confirm' && i.user.id === message.author.id;
const collector = sentMessage.createMessageComponentCollector({ filter, time: 15000 })
collector.on('collect', async (interaction) => {
const filter = (i) =>
i.customId === "confirm" && i.user.id === message.author.id;
const collector = sentMessage.createMessageComponentCollector({
filter,
time: 15000,
});
collector.on("collect", async (interaction) => {
sentMessage.edit({
content: `La latence est de : ${client.ws.ping}`,
components: [row],
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', () => {
sentMessage.edit({ components: [], allowedMentions: { repliedUser: false } });
collector.on("end", () => {
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 = {
aliases: ['dire', 'envoyer', 'send'],
description: 'Permet de dire un message sous le noms du bot',
emote: '💬',
utilisation: '<message>',
aliases: ["dire", "envoyer", "send"],
description: "Permet de dire un message sous le noms du bot",
emote: "💬",
utilisation: "<message>",
permission: 0,
async execute(message, args, client) {
message.delete()
let msg = ""
message.delete();
let msg = "";
for (let i = 0; i < args.length; i++) {
msg += args[i] + ' '
}
message.channel.send(msg)
msg += args[i] + " ";
}
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 = {
aliases: ['morse'],
description: 'Permet de dire un message sous le noms du bot',
emote: '💬',
utilisation: '<message>',
aliases: ["morse"],
description: "Permet de dire un message sous le noms du bot",
emote: "💬",
utilisation: "<message>",
permission: 0,
async execute(message, args, client) {
message.delete()
message.delete();
const morseCode = {
"A": ".- ",
"B": "-... ",
"C": "-.-. ",
"D": "-.. ",
"E": ". ",
"F": "..-. ",
"G": "--. ",
"H": ".... ",
"I": ".. ",
"J": ".--- ",
"K": "-.- ",
"L": ".-.. ",
"M": "-- ",
"N": "-. ",
"O": "--- ",
"P": ".--. ",
"Q": "--.- ",
"R": ".-. ",
"S": "... ",
"T": "- ",
"U": "..- ",
"V": "...- ",
"W": ".-- ",
"X": "-..- ",
"Y": "-.-- ",
"Z": "--.. ",
" ": " "
A: ".- ",
B: "-... ",
C: "-.-. ",
D: "-.. ",
E: ". ",
F: "..-. ",
G: "--. ",
H: ".... ",
I: ".. ",
J: ".--- ",
K: "-.- ",
L: ".-.. ",
M: "-- ",
N: "-. ",
O: "--- ",
P: ".--. ",
Q: "--.- ",
R: ".-. ",
S: "... ",
T: "- ",
U: "..- ",
V: "...- ",
W: ".-- ",
X: "-..- ",
Y: "-.-- ",
Z: "--.. ",
" ": " ",
};
const convertToMorse = (str) => {
return str.toUpperCase().split("").map(el => {
return str
.toUpperCase()
.split("")
.map((el) => {
return morseCode[el] ? morseCode[el] : el;
}).join("");
})
.join("");
};
let msg = message.content
msg = msg.replace('&morse ', '')
msg = msg.replace('&saymorse ', '')
message.channel.send(convertToMorse(msg))
}
let msg = message.content;
msg = msg.replace("&morse ", "");
msg = msg.replace("&saymorse ", "");
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 = {
aliases: ['unmorse'],
description: 'Permet de dire un message sous le noms du bot',
emote: '💬',
utilisation: '<message>',
aliases: ["unmorse"],
description: "Permet de dire un message sous le noms du bot",
emote: "💬",
utilisation: "<message>",
permission: 0,
async execute(message, args, client) {
message.delete()
message.delete();
const morseCode = {
".-": "A",
"-...": "B",
@@ -36,18 +36,21 @@ module.exports = {
"-..-": "X",
"-.--": "Y",
"--..": "Z",
" ": " "
" ": " ",
};
const convertFromMorse = (str) => {
return str.split(" ").map(el => {
return str
.split(" ")
.map((el) => {
return morseCode[el] ? morseCode[el] : el;
}).join("");
})
.join("");
};
let msg = message.content
msg = msg.replace('&unmorse ', '')
msg = msg.replace('&sayunmorse ', '')
message.channel.send(convertFromMorse(msg))
}
let msg = message.content;
msg = msg.replace("&unmorse ", "");
msg = msg.replace("&sayunmorse ", "");
message.channel.send(convertFromMorse(msg));
},
};
+39 -20
View File
@@ -1,47 +1,66 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const embedColor = require('../../fonctions/embedColor.js');
const {
EmbedBuilder,
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['srvs'],
description: 'Affiche la liste des serveurs où le bot est présent',
emote: '🌐',
utilisation: '',
aliases: ["srvs"],
description: "Affiche la liste des serveurs où le bot est présent",
emote: "🌐",
utilisation: "",
permission: 10,
async execute(message, args, client) {
const embed = new EmbedBuilder()
.setTitle('Liste des serveurs')
.setDescription(client.guilds.cache.map(guild => `${guild.name} (ID: ${guild.id})`).join('\n'))
.setTitle("Liste des serveurs")
.setDescription(
client.guilds.cache
.map((guild) => `${guild.name} (ID: ${guild.id})`)
.join("\n"),
)
.setColor(await embedColor(message.author.id, message.guild.id));
const ping = new ButtonBuilder()
.setCustomId('confirm')
.setLabel('🔄')
.setCustomId("confirm")
.setLabel("🔄")
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(ping);
const row = new ActionRowBuilder().addComponents(ping);
const sentMessage = await message.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false }
allowedMentions: { repliedUser: false },
});
const filter = i => i.customId === 'confirm' && i.user.id === message.author.id;
const collector = sentMessage.createMessageComponentCollector({ filter, time: 60000 });
const filter = (i) =>
i.customId === "confirm" && i.user.id === message.author.id;
const collector = sentMessage.createMessageComponentCollector({
filter,
time: 60000,
});
collector.on('collect', async (interaction) => {
embed.setDescription(client.guilds.cache.map(guild => `${guild.name} (ID: ${guild.id})`).join('\n'));
collector.on("collect", async (interaction) => {
embed.setDescription(
client.guilds.cache
.map((guild) => `${guild.name} (ID: ${guild.id})`)
.join("\n"),
);
sentMessage.edit({
embeds: [embed],
components: [row],
});
interaction.reply({ content: 'La liste des serveurs a été rafraichie', ephemeral: true });
interaction.reply({
content: "La liste des serveurs a été rafraichie",
ephemeral: true,
});
});
collector.on('end', () => {
collector.on("end", () => {
sentMessage.edit({ components: [] });
});
}
},
};
+21 -11
View File
@@ -1,11 +1,16 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const embedColor = require('../../fonctions/embedColor.js');
const {
EmbedBuilder,
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['upt'],
description: 'Affiche depuis combien de temps le bot est en ligne.',
emote: '⏱️',
utilisation: '',
aliases: ["upt"],
description: "Affiche depuis combien de temps le bot est en ligne.",
emote: "⏱️",
utilisation: "",
permission: 0,
async execute(message, args, client) {
@@ -14,12 +19,17 @@ module.exports = {
const hours = Math.floor((uptime / 3600000) % 24);
const minutes = Math.floor((uptime / 60000) % 60);
const seconds = Math.floor((uptime / 1000) % 60);
const ms = Math.floor(uptime % 1000)
const ms = Math.floor(uptime % 1000);
const embedUptime = new EmbedBuilder()
.setColor(await embedColor(message.author.id, message.guild.id))
.setTitle("Uptime :")
.setDescription(`**Je suis en ligne depuis :**\n**🤖 \`${days}\` jour(s), \`${hours}\` heure(s), \`${minutes}\` minute(s), \`${seconds}\` seconde(s) et \`${ms}\` milisecondes. 🤖**`)
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
message.channel.send({ embeds: [embedUptime] })
}
.setDescription(
`**Je suis en ligne depuis :**\n**🤖 \`${days}\` jour(s), \`${hours}\` heure(s), \`${minutes}\` minute(s), \`${seconds}\` seconde(s) et \`${ms}\` milisecondes. 🤖**`,
)
.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 db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['dy'],
description: 'Récupère une grosse somme de coins chaque jour. ',
emote: '🎁',
utilisation: '',
aliases: ["dy"],
description: "Récupère une grosse somme de coins chaque jour. ",
emote: "🎁",
utilisation: "",
permission: 0,
async execute(message, args, client) {
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
});
const lastDaily = user.lastDaily
const pocket = user.pocket
const lastDaily = user.lastDaily;
const pocket = user.pocket;
if (lastDaily > Date.now() - 86400000) {
const embed = new EmbedBuilder()
.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.`)
.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.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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;
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 = [
`🌅 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.`,
];
const embed = new EmbedBuilder()
.setTitle('Argent Récupéré')
.setTitle("Argent Récupéré")
.setDescription(dailys[Math.floor(Math.random() * dailys.length)])
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
+47 -27
View File
@@ -1,49 +1,66 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['dep', 'depot'],
description: 'Dépose vos coins dans votre compte en banque.',
emote: '💰',
utilisation: '<montant|all>',
aliases: ["dep", "depot"],
description: "Dépose vos coins dans votre compte en banque.",
emote: "💰",
utilisation: "<montant|all>",
permission: 0,
async execute(message, args, client) {
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
});
const pocket = user.pocket
const bank = user.bank
const pocket = user.pocket;
const bank = user.bank;
let title = 'Dépôt Impossible'
let description = ''
let title = "Dépôt Impossible";
let description = "";
if (args.length === 0) {
description = '❌ Vous devez spécifier un montant à déposer.'
} else if (args[0] === 'all') {
description = "❌ Vous devez spécifier un montant à déposer.";
} else if (args[0] === "all") {
if (pocket <= 0) {
description = '❌ Vous n\'avez pas d\'argent à déposer.'
description = "❌ Vous n'avez pas d'argent à déposer.";
} else {
title = 'Dépôt Réussi'
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]);
title = "Dépôt Réussi";
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],
);
}
} 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) {
description = '❌ Vous n\'avez pas d\'argent à déposer.'
description = "❌ Vous n'avez pas d'argent à déposer.";
} 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) {
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 {
title = 'Dépôt Réussi'
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]);
title = "Dépôt Réussi";
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,
],
);
}
const embed = new EmbedBuilder()
@@ -51,7 +68,10 @@ module.exports = {
.setDescription(description)
.setColor(await embedColor(message.author.id, message.guild.id))
.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 } });
},
+45 -20
View File
@@ -1,40 +1,65 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['coin', 'coins', '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]',
aliases: [
"coin",
"coins",
"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,
async execute(message, args, client) {
const member = message.mentions.members.first() || message.member;
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);
resolve(row);
},
);
});
});
const pocket = Math.round(user.pocket)
const bank = Math.round(user.bank)
const reputation = user.reputation
const niveau = user.lvl
const xp = user.xp
const tdrop = Math.round(user.tdroper)
const pocket = Math.round(user.pocket);
const bank = Math.round(user.bank);
const reputation = user.reputation;
const niveau = user.lvl;
const xp = user.xp;
const tdrop = Math.round(user.tdroper);
let anti_rob = ``
let anti_rob = ``;
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()
.setAuthor({ name: `Détails du Compte de ${member.user.tag}`, iconURL: member.user.displayAvatarURL() })
.setDescription(`> :moneybag: **Poche:** \`${pocket}\`\n> :bank: **Banque:** \`${bank}\`\n> :star2: **Réputation:** \`${reputation}\`\n\n> :bar_chart: **Niveau:** \`${niveau}\`\n> :small_orange_diamond: **Xp:** \`${xp}/${niveau*100}\`\n\nCoins donnés à une team: \`${tdrop}\`🎁`)
.setAuthor({
name: `Détails du Compte de ${member.user.tag}`,
iconURL: member.user.displayAvatarURL(),
})
.setDescription(
`> :moneybag: **Poche:** \`${pocket}\`\n> :bank: **Banque:** \`${bank}\`\n> :star2: **Réputation:** \`${reputation}\`\n\n> :bar_chart: **Niveau:** \`${niveau}\`\n> :small_orange_diamond: **Xp:** \`${xp}/${niveau * 100}\`\n\nCoins donnés à une team: \`${tdrop}\`🎁`,
)
.setColor(await embedColor(member.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
+86 -54
View File
@@ -1,105 +1,137 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: [],
description: 'Paye un membre de votre serveur.',
emote: '💳',
utilisation: '<montant> <@membre>',
description: "Paye un membre de votre serveur.",
emote: "💳",
utilisation: "<montant> <@membre>",
permission: 0,
async execute(message, args, client) {
let amount;
const member = message.mentions.members.first();
const color = await embedColor(message.author.id, message.guild.id)
const footer = { text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() }
const color = await embedColor(message.author.id, message.guild.id);
const footer = {
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
};
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);
resolve(row.pocket);
});
},
);
});
if (!member) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez mentionner un membre du serveur.')
.setTitle("Erreur")
.setDescription("❌ Veuillez mentionner un membre du serveur.")
.setColor(color)
.setTimestamp()
.setFooter(footer)
], allowedMentions: { repliedUser: false } });
.setFooter(footer),
],
allowedMentions: { repliedUser: false },
});
}
if (!args[0]) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez spécifier un montant à payer.')
.setTitle("Erreur")
.setDescription("❌ Veuillez spécifier un montant à payer.")
.setColor(color)
.setTimestamp()
.setFooter(footer)
], allowedMentions: { repliedUser: false } });
} else if (args[0] === 'all') {
.setFooter(footer),
],
allowedMentions: { repliedUser: false },
});
} else if (args[0] === "all") {
amount = pocket;
} else if (isNaN(args[0])) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez spécifier un montant valide.')
.setTitle("Erreur")
.setDescription("❌ Veuillez spécifier un montant valide.")
.setColor(color)
.setTimestamp()
.setFooter(footer)
], allowedMentions: { repliedUser: false } });
.setFooter(footer),
],
allowedMentions: { repliedUser: false },
});
} else if (args[0] <= 0) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez spécifier un montant supérieur à \`0\`.')
.setTitle("Erreur")
.setDescription("❌ Veuillez spécifier un montant supérieur à `0`.")
.setColor(color)
.setTimestamp()
.setFooter(footer)
], allowedMentions: { repliedUser: false } });
.setFooter(footer),
],
allowedMentions: { repliedUser: false },
});
} else if (args[0] > pocket) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Vous n\'avez pas assez d\'argent pour effectuer cette transaction.')
.setTitle("Erreur")
.setDescription(
"❌ Vous n'avez pas assez d'argent pour effectuer cette transaction.",
)
.setColor(color)
.setTimestamp()
.setFooter(footer)
], allowedMentions: { repliedUser: false } });
.setFooter(footer),
],
allowedMentions: { repliedUser: false },
});
} else if (!Number.isInteger(Number(args[0]))) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez spécifier un montant entier.')
.setTitle("Erreur")
.setDescription("❌ Veuillez spécifier un montant entier.")
.setColor(color)
.setTimestamp()
.setFooter(footer)
], allowedMentions: { repliedUser: false } });
.setFooter(footer),
],
allowedMentions: { repliedUser: false },
});
} else {
amount = args[0];
}
db.run(`UPDATE users SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`, [amount, message.guild.id, message.author.id]);
db.run(`UPDATE users SET pocket = pocket + ? WHERE guildId = ? AND userId = ?`, [amount, message.guild.id, member.id]);
db.run(
`UPDATE users SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`,
[amount, message.guild.id, message.author.id],
);
db.run(
`UPDATE users SET pocket = pocket + ? WHERE guildId = ? AND userId = ?`,
[amount, message.guild.id, member.id],
);
message.reply({ embeds: [
message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Paiement')
.setDescription(`💰 Vous avez payé \`${amount}\` à ${member.user.tag}.`)
.setTitle("Paiement")
.setDescription(
`💰 Vous avez payé \`${amount}\` à ${member.user.tag}.`,
)
.setColor(color)
.setTimestamp()
.setFooter(footer)
], allowedMentions: { repliedUser: false } });
.setFooter(footer),
],
allowedMentions: { repliedUser: false },
});
},
};
+37 -20
View File
@@ -1,51 +1,68 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['recolt', 'recolte'],
description: 'Recolter des objets que vous pourrez vendre ensuite.',
emote: '💼',
utilisation: '',
aliases: ["recolt", "recolte"],
description: "Recolter des objets que vous pourrez vendre ensuite.",
emote: "💼",
utilisation: "",
permission: 0,
async execute(message, args, client) {
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
});
const lastRecolt = user.lastRecolt
const objet = user.objet
const lastRecolt = user.lastRecolt;
const objet = user.objet;
if (lastRecolt > Date.now() - 2700000) {
const embed = new EmbedBuilder()
.setTitle('Recolte Impossible')
.setDescription(`❌ La météo annonce une tempete... Veuillez attendre \`${Math.floor((lastRecolt + 2700000 - Date.now()) / 60000)}\` minutes avant de pouvoir recolter.`)
.setTitle("Recolte Impossible")
.setDescription(
`❌ La météo annonce une tempete... Veuillez attendre \`${Math.floor((lastRecolt + 2700000 - Date.now()) / 60000)}\` minutes avant de pouvoir recolter.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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;
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 = [
`🍒 Vous avez recolté des cerises sur ${randomAmount} arbre(s) dans votre jardin.`,
`🌽 Vous avez recolté ${randomAmount} parcelle(s) de maïs et vous avez tout mis à l'abri.`,
`🌳 Vous avez trouvé de quoi vous chauffer en vous promenant en foret, vous rentrer chez vous avec ${randomAmount} grosse(s) bûche(s) de bois.`
`🌳 Vous avez trouvé de quoi vous chauffer en vous promenant en foret, vous rentrer chez vous avec ${randomAmount} grosse(s) bûche(s) de bois.`,
];
const embed = new EmbedBuilder()
.setTitle('Objet recolter')
.setTitle("Objet recolter")
.setDescription(recolts[Math.floor(Math.random() * recolts.length)])
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
+105 -47
View File
@@ -1,92 +1,150 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['reputation'],
aliases: ["reputation"],
description: `Ajoute un point de reputation a un membre.`,
emote: '',
utilisation: '<membre-id|@membre>',
emote: "",
utilisation: "<membre-id|@membre>",
permission: 0,
async execute(message, args, client) {
const member = message.mentions.members.first()?.id || args[0];
if (args.length < 1 && !member) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez spécifier un membre du serveur.')
.setTitle("Erreur")
.setDescription("❌ Veuillez spécifier un membre du serveur.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
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);
resolve(row.lastRep);
});
},
);
});
if (lastRep > Date.now() - 7200000) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.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.`)
.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.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
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 (!row) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ L\'utilisateur spécifié n\'existe pas.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTitle("Erreur")
.setDescription("❌ L'utilisateur spécifié n'existe pas.")
.setColor(
await embedColor(message.author.id, message.guild.id),
)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
resolve(parseInt(row.reputation));
});
},
);
});
if (member === message.author.id) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Vous ne pouvez pas vous donner une réputation à vous-même.')
.setTitle("Erreur")
.setDescription(
"❌ Vous ne pouvez pas vous donner une réputation à vous-même.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } });
}
db.run(`UPDATE users SET lastRep = ? WHERE guildId = ? AND userId = ?`, [Date.now(), message.guild.id, message.author.id], (err) => {
if (err) {
console.log(`${err}`.red)
}
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
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()
.setTitle('Reputation ajouté !')
.setDescription('Vous avez ajouter une reputation à <@' + member + '>, qui a maintement `' + (userReputation + 1) + '` reputation !')
.setTitle("Reputation ajouté !")
.setDescription(
"Vous avez ajouter une reputation à <@" +
member +
">, qui a maintement `" +
(userReputation + 1) +
"` reputation !",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } });
.setFooter({
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 db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: [],
description: 'Vole les coins de la main d\'un membre.',
emote: '🦹',
utilisation: '<@membre>',
description: "Vole les coins de la main d'un membre.",
emote: "🦹",
utilisation: "<@membre>",
permission: 0,
async execute(message, args, client) {
const member = message.mentions.users.first();
if (!member) {
const embed = new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Vous devez mentionner un membre.')
.setTitle("Erreur")
.setDescription("❌ Vous devez mentionner un membre.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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) => {
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);
resolve(row);
});
},
);
});
const memberlist = await new Promise((resolve, reject) => {
db.all(`SELECT userId FROM users WHERE guildId = ? AND teamId = ?`, [message.guild.id, user.teamId], (err, rows) => {
db.all(
`SELECT userId FROM users WHERE guildId = ? AND teamId = ?`,
[message.guild.id, user.teamId],
(err, rows) => {
if (err) reject(err);
resolve(rows);
},
);
});
});
if (memberlist.includes(member)) return message.reply({ embeds: [
if (memberlist.includes(member))
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez choisir un membre qui __n\'est pas__ dans votre team.')
.setTitle("Erreur")
.setDescription(
"❌ Veuillez choisir un membre qui __n'est pas__ dans votre team.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter(footer)
], allowedMentions: { repliedUser: false } });
.setFooter(footer),
],
allowedMentions: { repliedUser: false },
});
if (user.lastRob + 7200000 > Date.now()) {
const embed = new EmbedBuilder()
.setTitle('Erreur')
.setDescription(`❌ Vous devez encore attendre ${Math.floor((user.lastRob + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir voler à nouveau.`)
.setTitle("Erreur")
.setDescription(
`❌ Vous devez encore attendre ${Math.floor((user.lastRob + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir voler à nouveau.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.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) => {
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);
resolve(row);
});
},
);
});
if (memberInfo.antiRob + 7200000 > Date.now()) {
const embed = new EmbedBuilder()
.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.`)
.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.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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;
if (memberPocket <= 0) {
const embed = new EmbedBuilder()
.setTitle('Erreur')
.setDescription(`❌ <@${member.id}> n'a pas d'argent sur lui pour que vous puissiez le voler.`)
.setTitle("Erreur")
.setDescription(
`❌ <@${member.id}> n'a pas d'argent sur lui pour que vous puissiez le voler.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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;
db.run(`UPDATE users SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`, [amount, message.guild.id, member.id]);
db.run(`UPDATE users SET pocket = pocket + ?, lastRob = ? WHERE guildId = ? AND userId = ?`, [amount, Date.now(), message.guild.id, message.author.id]);
db.run(
`UPDATE users SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`,
[amount, message.guild.id, member.id],
);
db.run(
`UPDATE users SET pocket = pocket + ?, lastRob = ? WHERE guildId = ? AND userId = ?`,
[amount, Date.now(), message.guild.id, message.author.id],
);
const embed = new EmbedBuilder()
.setTitle('Vol')
.setTitle("Vol")
.setDescription(`💰 Vous avez volé ${amount} à <@${member.id}>.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
+177 -97
View File
@@ -1,181 +1,261 @@
const { EmbedBuilder, ActionRowBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const {
EmbedBuilder,
ActionRowBuilder,
StringSelectMenuBuilder,
StringSelectMenuOptionBuilder,
} = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['vendre'],
description: 'Affiche le menu de vente des objets.',
emote: '🛍️',
utilisation: '',
aliases: ["vendre"],
description: "Affiche le menu de vente des objets.",
emote: "🛍️",
utilisation: "",
permission: 0,
async execute(message, args, client) {
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
});
},
);
});
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setTitle("🛍️ Shop")
.setThumbnail(message.guild.iconURL())
.setDescription(`Sélectionnez un nombre d'objet à vendre.\n\nVous avez \`${user.objet}\`objet.\nAttention, il est possible que de petit pourboire de client soit rajouté.`)
.setDescription(
`Sélectionnez un nombre d'objet à vendre.\n\nVous avez \`${user.objet}\`objet.\nAttention, il est possible que de petit pourboire de client soit rajouté.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
const select = new StringSelectMenuBuilder()
.setCustomId('sell')
.setPlaceholder('Sélectionnez un nombre d\'objet')
.setCustomId("sell")
.setPlaceholder("Sélectionnez un nombre d'objet")
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('👶 Debutant')
.setValue('1')
.setDescription('Vend un objet, pour \`200\`coins.')
.setEmoji('👶')
.setDefault(false)
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('🚸 Enfant')
.setValue('2')
.setDescription('Vend deux objet, pour \`400\`coins.')
.setEmoji('🚸')
.setDefault(false)
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('🔞 Mineur')
.setValue('3')
.setDescription('Vend trois objet, pour \`600\`coins.')
.setEmoji('🔞')
.setDefault(false)
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('🧐 Expert')
.setValue('4')
.setDescription('Vend quatre objet, pour \`800\`coins.')
.setEmoji('🧐')
.setLabel("👶 Debutant")
.setValue("1")
.setDescription("Vend un objet, pour `200`coins.")
.setEmoji("👶")
.setDefault(false),
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('👑 Mythique')
.setValue('5')
.setDescription('Vend cinq objet, pour \`1 000\`coins.')
.setEmoji('👑')
.setLabel("🚸 Enfant")
.setValue("2")
.setDescription("Vend deux objet, pour `400`coins.")
.setEmoji("🚸")
.setDefault(false),
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('👑 Legendaire')
.setValue('10')
.setDescription('Vend dix objet, pour \`10 000\`coins !')
.setEmoji('👑')
.setLabel("🔞 Mineur")
.setValue("3")
.setDescription("Vend trois objet, pour `600`coins.")
.setEmoji("🔞")
.setDefault(false),
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('👑 Ultime')
.setValue('25')
.setDescription('Vend 25 objet, pour \`30 000\`coins !')
.setEmoji('👑')
.setLabel("🧐 Expert")
.setValue("4")
.setDescription("Vend quatre objet, pour `800`coins.")
.setEmoji("🧐")
.setDefault(false),
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel("👑 Mythique")
.setValue("5")
.setDescription("Vend cinq objet, pour `1 000`coins.")
.setEmoji("👑")
.setDefault(false),
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel("👑 Legendaire")
.setValue("10")
.setDescription("Vend dix objet, pour `10 000`coins !")
.setEmoji("👑")
.setDefault(false),
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel("👑 Ultime")
.setValue("25")
.setDescription("Vend 25 objet, pour `30 000`coins !")
.setEmoji("👑")
.setDefault(false),
);
const row = new ActionRowBuilder()
.addComponents(select);
const row = new ActionRowBuilder().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.isSelectMenu()) return;
if (!interaction.customId === 'sell') return
if (!interaction.customId === "sell") return;
const selected = interaction.values[0];
if (selected === '1') {
if (selected === "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) {
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) {
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) {
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) {
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) {
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) {
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) {
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setDescription(`Vous avez vendu \`${select}\`objet pour \`${200 * select}\`coins !`)
.setTitle("🛍️ Shop")
.setDescription(
`Vous avez vendu \`${select}\`objet pour \`${200 * select}\`coins !`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
else if (select === 10){
interaction.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (select === 10) {
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setDescription(`Vous avez vendu \`${select}\`objet pour \`10000\`coins !`)
.setTitle("🛍️ Shop")
.setDescription(
`Vous avez vendu \`${select}\`objet pour \`10000\`coins !`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
else if (select === 25){
interaction.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (select === 25) {
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setDescription(`Vous avez vendu \`${select}\`objet pour \`30000\`coins !`)
.setTitle("🛍️ Shop")
.setDescription(
`Vous avez vendu \`${select}\`objet pour \`30000\`coins !`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 },
});
}
});
},
+220 -114
View File
@@ -1,209 +1,315 @@
const { EmbedBuilder, ActionRowBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const {
EmbedBuilder,
ActionRowBuilder,
StringSelectMenuBuilder,
StringSelectMenuOptionBuilder,
} = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['leaderboard', 'lb', 'ttop'],
description: 'Affiche le top 10 des membres/teams du serveur.',
emote: '🏆',
utilisation: '[global|pocket|bank|reputation|niveau|team|teamreputation|teamdonnateur]',
aliases: ["leaderboard", "lb", "ttop"],
description: "Affiche le top 10 des membres/teams du serveur.",
emote: "🏆",
utilisation:
"[global|pocket|bank|reputation|niveau|team|teamreputation|teamdonnateur]",
permission: 0,
async execute(message, args, client) {
if (args[0] === 'coins' || args[0] === 'coin' || args[0] === 'global' || args[0] === 'money') {
args[0] = 'coins'
} else if (args[0] === 'pocket' || args[0] === 'cash' || args[0] === 'wallet' || args[0] === 'porte-monnaie' || args[0] === 'poche') {
args[0] = 'pocket'
} 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'
if (
args[0] === "coins" ||
args[0] === "coin" ||
args[0] === "global" ||
args[0] === "money"
) {
args[0] = "coins";
} else if (
args[0] === "pocket" ||
args[0] === "cash" ||
args[0] === "wallet" ||
args[0] === "porte-monnaie" ||
args[0] === "poche"
) {
args[0] = "pocket";
} 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]) {
args[0] = 'coins'
args[0] = "coins";
} else {
args[0] = 'coins'
message.reply({ embeds: [
args[0] = "coins";
message.reply({
embeds: [
new EmbedBuilder()
.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.`)
.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.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
async function leaderboard (type) {
async function leaderboard(type) {
let data;
if (type === 'coins') {
if (type === "coins") {
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);
resolve(rows);
},
);
});
});
} else if (type === 'pocket') {
} else if (type === "pocket") {
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);
resolve(rows);
},
);
});
});
} else if (type === 'bank') {
} else if (type === "bank") {
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);
resolve(rows);
},
);
});
});
} else if (type === 'reputation') {
} else if (type === "reputation") {
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);
resolve(rows);
},
);
});
});
} else if (type === 'niveau') {
} else if (type === "niveau") {
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);
resolve(rows);
},
);
});
});
} else if (type === 'team') {
} else if (type === "team") {
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);
resolve(rows);
},
);
});
});
} else if (type === 'teamreputation') {
} else if (type === "teamreputation") {
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);
resolve(rows);
},
);
});
});
} else if (type === 'teamdroper') {
} else if (type === "teamdroper") {
data = await new Promise((resolve, reject) => {
db.all(`SELECT userId, teamdroper AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => {
db.all(
`SELECT userId, teamdroper AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`,
[message.guild.id],
(err, rows) => {
if (err) reject(err);
resolve(rows);
});
},
);
});
}
const emoji = {
coins: '🪙',
pocket: '💰',
bank: '🏦',
reputation: '🔺',
niveau: '📊',
team: '👑',
teamreputation: '🔺',
teamdroper: '🎁'
}
coins: "🪙",
pocket: "💰",
bank: "🏦",
reputation: "🔺",
niveau: "📊",
team: "👑",
teamreputation: "🔺",
teamdroper: "🎁",
};
let leaderboard = data.map((row, i) => {
let leaderboard = data
.map((row, i) => {
let position;
switch (i) {
case 0:
position = ':first_place:';
position = ":first_place:";
break;
case 1:
position = ':second_place:';
position = ":second_place:";
break;
case 2:
position = ':third_place:';
position = ":third_place:";
break;
default:
position = `**${i + 1}.**`;
}
return `${position} <@${row.userId}> - \`${row.coins}\` ${emoji[type]}`;
}).join('\n\n');
})
.join("\n\n");
const embed = new EmbedBuilder()
.setTitle('🏆 Top 10 des membres du serveur')
.setDescription(`Voici le top 10 des membres du serveur trié par ${type}:\n\n${leaderboard}`)
.setTitle("🏆 Top 10 des membres du serveur")
.setDescription(
`Voici le top 10 des membres du serveur trié par ${type}:\n\n${leaderboard}`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return embed
return embed;
}
const embed = await leaderboard(args[0]);
const select = new StringSelectMenuBuilder()
.setCustomId('topLeaderboard')
.setPlaceholder('Choisissez un type de leaderboard')
.setCustomId("topLeaderboard")
.setPlaceholder("Choisissez un type de leaderboard")
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('Global')
.setEmoji('🪙')
.setDescription('Affiche le top en fonction de la somme de l\'argent en poche et en banque')
.setValue('coins'),
.setLabel("Global")
.setEmoji("🪙")
.setDescription(
"Affiche le top en fonction de la somme de l'argent en poche et en banque",
)
.setValue("coins"),
new StringSelectMenuOptionBuilder()
.setLabel('Poche')
.setEmoji('💰')
.setDescription('Affiche le top en fonction de l\'argent en poche')
.setValue('pocket'),
.setLabel("Poche")
.setEmoji("💰")
.setDescription("Affiche le top en fonction de l'argent en poche")
.setValue("pocket"),
new StringSelectMenuOptionBuilder()
.setLabel('Banque')
.setEmoji('🏦')
.setDescription('Affiche le top en fonction de l\'argent en banque')
.setValue('bank'),
.setLabel("Banque")
.setEmoji("🏦")
.setDescription("Affiche le top en fonction de l'argent en banque")
.setValue("bank"),
new StringSelectMenuOptionBuilder()
.setLabel('Réputation')
.setEmoji('🔺')
.setDescription('Affiche le top en fonction de la réputation')
.setValue('reputation'),
.setLabel("Réputation")
.setEmoji("🔺")
.setDescription("Affiche le top en fonction de la réputation")
.setValue("reputation"),
new StringSelectMenuOptionBuilder()
.setLabel('Niveau')
.setEmoji('📊')
.setDescription('Affiche le top en fonction du niveau')
.setValue('niveau'),
.setLabel("Niveau")
.setEmoji("📊")
.setDescription("Affiche le top en fonction du niveau")
.setValue("niveau"),
new StringSelectMenuOptionBuilder()
.setLabel('Teams bank')
.setEmoji('👑')
.setDescription('Affiche le top en fonction de l\'argent des teams')
.setValue('team'),
.setLabel("Teams bank")
.setEmoji("👑")
.setDescription("Affiche le top en fonction de l'argent des teams")
.setValue("team"),
new StringSelectMenuOptionBuilder()
.setLabel('Teams réputation')
.setEmoji('🔺')
.setDescription('Affiche le top en fonction de la réputation des teams')
.setValue('teamreputation'),
.setLabel("Teams réputation")
.setEmoji("🔺")
.setDescription(
"Affiche le top en fonction de la réputation des teams",
)
.setValue("teamreputation"),
new StringSelectMenuOptionBuilder()
.setLabel('TeamDroper')
.setEmoji('🎁')
.setDescription('Affiche le top en fonction du nombre de coins donnés à une team')
.setValue('teamdroper')
.setLabel("TeamDroper")
.setEmoji("🎁")
.setDescription(
"Affiche le top en fonction du nombre de coins donnés à une team",
)
.setValue("teamdroper"),
);
const row = new ActionRowBuilder()
.addComponents(select);
const row = new ActionRowBuilder().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.customId === 'topLeaderboard') {
if (interaction.customId === "topLeaderboard") {
const selected = interaction.values[0];
await interaction.deferUpdate();
const embed = await leaderboard(selected);
replyMessage.edit({ embeds: [embed] });
interaction.followUp({ content: 'Leaderboard mis à jour', ephemeral: true });
interaction.followUp({
content: "Leaderboard mis à jour",
ephemeral: true,
});
}
});
},
}
};
+44 -23
View File
@@ -1,49 +1,67 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['ret', 'retrait', 'with', 'withdraw', 'wd', 'take', 'wh'],
description: 'Retire vos coins de votre compte banquaire.',
emote: '🏦',
utilisation: '<montant|all>',
aliases: ["ret", "retrait", "with", "withdraw", "wd", "take", "wh"],
description: "Retire vos coins de votre compte banquaire.",
emote: "🏦",
utilisation: "<montant|all>",
permission: 0,
async execute(message, args, client) {
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
});
},
);
});
const pocket = user.pocket;
const bank = user.bank;
let title = 'Retrait Impossible';
let description = '';
let title = "Retrait Impossible";
let description = "";
if (args.length === 0) {
description = '❌ Vous devez spécifier un montant à retirer.';
} else if (args[0] === 'all') {
description = "❌ Vous devez spécifier un montant à retirer.";
} else if (args[0] === "all") {
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 {
title = 'Retrait Réussi';
title = "Retrait Réussi";
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])) {
description = '❌ Vous devez spécifier un montant valide à retirer.';
description = "❌ Vous devez spécifier un montant valide à retirer.";
} 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) {
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) {
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 {
title = 'Retrait Réussi';
title = "Retrait Réussi";
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()
@@ -51,7 +69,10 @@ module.exports = {
.setDescription(description)
.setColor(await embedColor(message.author.id, message.guild.id))
.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 } });
},
+36 -19
View File
@@ -1,37 +1,52 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['wk', 'travail'],
description: 'Travaillez pour gagner des coins.',
emote: '💼',
utilisation: '',
aliases: ["wk", "travail"],
description: "Travaillez pour gagner des coins.",
emote: "💼",
utilisation: "",
permission: 0,
async execute(message, args, client) {
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
});
const lastWork = user.lastWork
const pocket = user.pocket
const lastWork = user.lastWork;
const pocket = user.pocket;
if (lastWork > Date.now() - 2700000) {
const embed = new EmbedBuilder()
.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.`)
.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.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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);
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 = [
`💼 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}\`.`,
];
const embed = new EmbedBuilder()
.setTitle('Travail Terminé')
.setTitle("Travail Terminé")
.setDescription(works[Math.floor(Math.random() * works.length)])
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
+35 -19
View File
@@ -1,35 +1,45 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: [],
description: 'Ajoute de l\'argent de votre compte en banque ou de votre poche ou de votre réputation.',
emote: '💰',
utilisation: '<montant> <pocket|bank|reputation> [@membre]',
description:
"Ajoute de l'argent de votre compte en banque ou de votre poche ou de votre réputation.",
emote: "💰",
utilisation: "<montant> <pocket|bank|reputation> [@membre]",
permission: 10,
async execute(message, args, client) {
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
});
},
);
});
let member = message.author;
let title = 'Ajout d\'argent';
let title = "Ajout d'argent";
let description = `💰 Vous avez ajouté ${args[0]} à votre ${args[1]}.`;
if (isNaN(args[0])) {
title = 'Erreur';
description = '❌ Veuillez entrer un montant valide.';
title = "Erreur";
description = "❌ Veuillez entrer un montant valide.";
} else if (args[0] <= 0) {
title = 'Erreur';
description = '❌ Veuillez entrer un montant supérieur à 0.';
} else if (args[1] !== 'pocket' && args[1] !== 'bank' && args[1] !== 'reputation') {
title = 'Erreur';
description = '❌ Veuillez entrer une destination valide (pocket, bank, reputation).';
title = "Erreur";
description = "❌ Veuillez entrer un montant supérieur à 0.";
} else if (
args[1] !== "pocket" &&
args[1] !== "bank" &&
args[1] !== "reputation"
) {
title = "Erreur";
description =
"❌ Veuillez entrer une destination valide (pocket, bank, reputation).";
} else if (message.mentions.users.first()) {
member = message.mentions.users.first();
description = `💰 Vous avez ajouté ${args[0]} à la ${args[1]} de ${member.tag}.`;
@@ -40,10 +50,16 @@ module.exports = {
.setDescription(description)
.setColor(await embedColor(message.author.id, message.guild.id))
.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') {
db.run(`UPDATE users SET ${args[1]} = ${args[1]} + ? WHERE guildId = ? AND userId = ?`, [args[0], message.guild.id, member.id]);
if (title !== "Erreur") {
db.run(
`UPDATE users SET ${args[1]} = ${args[1]} + ? WHERE guildId = ? AND userId = ?`,
[args[0], message.guild.id, member.id],
);
}
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
+89 -47
View File
@@ -1,88 +1,130 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder, PermissionFlagsBits, EmbedBuilder } = require('discord.js');
const embedColor = require('../../fonctions/embedColor.js');
const {
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
PermissionFlagsBits,
EmbedBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['ban'],
description: 'permet de ban un membre',
emote: '⏱️',
utilisation: '<@membre> <raison>',
aliases: ["ban"],
description: "permet de ban un membre",
emote: "⏱️",
utilisation: "<@membre> <raison>",
permission: 0,
async execute(message, args, client) {
const authorPerms = message.channel.permissionsFor(message.author)
if ((!authorPerms || !authorPerms.has(PermissionFlagsBits.banMembers)) && !client.config.owners.includes(message.author.id)) {
const authorPerms = message.channel.permissionsFor(message.author);
if (
(!authorPerms || !authorPerms.has(PermissionFlagsBits.banMembers)) &&
!client.config.owners.includes(message.author.id)
) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Vous n\'avez pas les permissions pour expulser.')
.setTitle("Erreur")
.setDescription("❌ Vous n'avez pas les permissions pour expulser.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
let member = message.mentions.members.first() // || message.guild.members.get(args[0]);
let member = message.mentions.members.first(); // || message.guild.members.get(args[0]);
if (!member) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez spécifier un membre du serveur.')
.setTitle("Erreur")
.setDescription("❌ Veuillez spécifier un membre du serveur.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
.setFooter({
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) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez indiquer un motif.')
.setTitle("Erreur")
.setDescription("❌ Veuillez indiquer un motif.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
let reponse
member.ban({ reason: motif })
.then(async () => {
let reponse;
member.ban({ reason: motif }).then(async () => {
const btn = new ButtonBuilder()
.setCustomId('mp')
.setLabel('Prevenir le membre en MP')
.setCustomId("mp")
.setLabel("Prevenir le membre en MP")
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(btn);
const row = new ActionRowBuilder().addComponents(btn);
const embed = new EmbedBuilder()
.setTitle('Membre banni !')
.setDescription('Vous avez banni: <@' + member + '>\nMotif: `' + motif + '`')
.setTitle("Membre banni !")
.setDescription(
"Vous avez banni: <@" + member + ">\nMotif: `" + motif + "`",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
reponse = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } });
})
const filter = i => i.customId === 'mp' && i.user.id === message.author.id;
const collector = reponse.createMessageComponentCollector({ filter, time: 30000 })
collector.on('collect', async (interaction) => {
const embedBanni = new EmbedBuilder()
.setTitle('Bannissement !')
.setDescription('Vous avez été banni du serveur ' + interaction.guild.name + ', avec comme motif: `' + motif + '`')
.setColor("Red")
.setTimestamp()
member.send({ embeds: [embedBanni] })
interaction.reply({ content: '> **Le membre a été prevenu.**', ephemeral: true, allowedMentions: { repliedUser: false } });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
reponse = await message.reply({
embeds: [embed],
components: [row],
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 } });
});
}
},
};
+34 -20
View File
@@ -1,22 +1,21 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
module.exports = {
aliases: ['give'],
description: 'Donne des coins au premier qui appuie sur un bouton.',
emote: '🪙',
utilisation: '<amount>',
aliases: ["give"],
description: "Donne des coins au premier qui appuie sur un bouton.",
emote: "🪙",
utilisation: "<amount>",
permission: 0,
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()
.setCustomId('confirm')
.setLabel('💰')
.setCustomId("confirm")
.setLabel("💰")
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(btn);
const row = new ActionRowBuilder().addComponents(btn);
/*const sentMessage = message.channel.send('_ _')
let contage = 0
@@ -37,22 +36,37 @@ module.exports = {
content: `Appuis vite sur le bouton pour gagner ${args[0]}coins`,
components: [row],
allowedMentions: { repliedUser: false },
})
});
const filter = i => i.customId === 'confirm' && i.user.id !== message.author.id;
const collector = sentMessage.createMessageComponentCollector({ filter, time: 45000 })
collector.on('collect', async (interaction) => {
const filter = (i) =>
i.customId === "confirm" && i.user.id !== message.author.id;
const collector = sentMessage.createMessageComponentCollector({
filter,
time: 45000,
});
collector.on("collect", async (interaction) => {
sentMessage.edit({
content: `Le drop est gagner par <@${interaction.user.id}>`,
components: [],
allowedMentions: { repliedUser: false },
});
db.run(`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 } });
db.run(
`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', () => {
sentMessage.edit({ components: [], ephemeral: true, allowedMentions: { repliedUser: false } });
collector.on("end", () => {
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 embedColor = require('../../fonctions/embedColor.js');
const {
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
PermissionFlagsBits,
EmbedBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['kick'],
description: 'permet d\'expulser un membre',
emote: '⏱️',
utilisation: '<@membre> <raison>',
aliases: ["kick"],
description: "permet d'expulser un membre",
emote: "⏱️",
utilisation: "<@membre> <raison>",
permission: 0,
async execute(message, args, client) {
const authorPerms = message.channel.permissionsFor(message.author)
if ((!authorPerms || !authorPerms.has(PermissionFlagsBits.kickMembers)) && !client.config.owners.includes(message.author.id)) {
const authorPerms = message.channel.permissionsFor(message.author);
if (
(!authorPerms || !authorPerms.has(PermissionFlagsBits.kickMembers)) &&
!client.config.owners.includes(message.author.id)
) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Vous n\'avez pas les permissions pour expulser.')
.setTitle("Erreur")
.setDescription("❌ Vous n'avez pas les permissions pour expulser.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
let member = message.mentions.members.first() //|| message.guild.members.get(args[0]);
let member = message.mentions.members.first(); //|| message.guild.members.get(args[0]);
if (!member) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez spécifier un membre du serveur.')
.setTitle("Erreur")
.setDescription("❌ Veuillez spécifier un membre du serveur.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
.setFooter({
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) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez indiquer un motif.')
.setTitle("Erreur")
.setDescription("❌ Veuillez indiquer un motif.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
let reponse
member.kick({ reason: motif })
.then(async () => {
let reponse;
member.kick({ reason: motif }).then(async () => {
const btn = new ButtonBuilder()
.setCustomId('mp')
.setLabel('Prevenir le membre en MP')
.setCustomId("mp")
.setLabel("Prevenir le membre en MP")
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(btn);
const row = new ActionRowBuilder().addComponents(btn);
const embed = new EmbedBuilder()
.setTitle('Membre expulser !')
.setDescription('Vous avez expulser: <@' + member + '>\nMotif: `' + motif + '`')
.setTitle("Membre expulser !")
.setDescription(
"Vous avez expulser: <@" + member + ">\nMotif: `" + motif + "`",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
reponse = message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } });
})
const filter = i => i.customId === 'mp' && i.user.id === message.author.id;
const collector = reponse.createMessageComponentCollector({ filter, time: 30000 })
collector.on('collect', async (interaction) => {
const embedkick = new EmbedBuilder()
.setTitle('Expulsion !')
.setDescription('Vous avez été expulser du serveur ' + interaction.guild.name + ', avec comme motif: `' + motif + '`')
.setColor("Red")
.setTimestamp()
member.send({ embeds: [embedkick] })
interaction.reply({ content: '> **Le membre a été prevenu.**', ephemeral: true, allowedMentions: { repliedUser: false } });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
reponse = message.reply({
embeds: [embed],
components: [row],
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 } });
});
}
},
};
+118 -58
View File
@@ -1,25 +1,38 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder, PermissionFlagsBits, EmbedBuilder } = require('discord.js');
const embedColor = require('../../fonctions/embedColor.js');
const {
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
PermissionFlagsBits,
EmbedBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['timeout'],
description: 'permet de mute un membre',
emote: '⏱️',
utilisation: '<@membre> <temps> <raison>',
aliases: ["timeout"],
description: "permet de mute un membre",
emote: "⏱️",
utilisation: "<@membre> <temps> <raison>",
permission: 0,
async execute(message, args, client) {
const authorPerms = message.channel.permissionsFor(message.author)
if ((!authorPerms || !authorPerms.has(PermissionFlagsBits.MuteMembers)) && !client.config.owners.includes(message.author.id)) {
const authorPerms = message.channel.permissionsFor(message.author);
if (
(!authorPerms || !authorPerms.has(PermissionFlagsBits.MuteMembers)) &&
!client.config.owners.includes(message.author.id)
) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Vous n\'avez pas les permissions pour expulser.')
.setTitle("Erreur")
.setDescription("❌ Vous n'avez pas les permissions pour expulser.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
@@ -27,92 +40,139 @@ module.exports = {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez respecter ce format : <@membre|membreId> <min> <raison>.')
.setTitle("Erreur")
.setDescription(
"❌ Veuillez respecter ce format : <@membre|membreId> <min> <raison>.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
let member = message.mentions.members.first() //|| message.guild.members.get(args[0])
let member = message.mentions.members.first(); //|| message.guild.members.get(args[0])
if (!member) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez spécifier un membre du serveur.')
.setTitle("Erreur")
.setDescription("❌ Veuillez spécifier un membre du serveur.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
let time = args[1]
if (time.length <= 3 || !time.includes('min')) {
let time = args[1];
if (time.length <= 3 || !time.includes("min")) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez indiquer une durée valide <`x`min>.')
.setTitle("Erreur")
.setDescription("❌ Veuillez indiquer une durée valide <`x`min>.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
.setFooter({
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) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez indiquer un motif (minimum 3caractère).')
.setTitle("Erreur")
.setDescription(
"❌ Veuillez indiquer un motif (minimum 3caractère).",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
let reponse
member.timeout(time * 60 * 1000, motif)
.then(async () => {
let reponse;
member.timeout(time * 60 * 1000, motif).then(async () => {
const btn = new ButtonBuilder()
.setCustomId('mp')
.setLabel('Prevenir le membre en MP')
.setCustomId("mp")
.setLabel("Prevenir le membre en MP")
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(btn);
const row = new ActionRowBuilder().addComponents(btn);
const embed = new EmbedBuilder()
.setTitle('Membre mute !')
.setDescription('Vous avez mute: <@' + member + '>\nTemps: `' + time + '`min\nMotif: `' + motif + '`')
.setTitle("Membre mute !")
.setDescription(
"Vous avez mute: <@" +
member +
">\nTemps: `" +
time +
"`min\nMotif: `" +
motif +
"`",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
reponse = message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } });
})
const filter = i => i.customId === 'mp' && i.user.id === message.author.id;
const collector = reponse.createMessageComponentCollector({ filter, time: 30000 })
collector.on('collect', async (interaction) => {
const embedkick = new EmbedBuilder()
.setTitle('Expulsion !')
.setDescription('Vous avez été expulser du serveur ' + interaction.guild.name + ', avec comme motif: `' + motif + '`')
.setColor("Red")
.setTimestamp()
member.send({ embeds: [embedkick] })
interaction.reply({ content: '> **Le membre a été prevenu.**', ephemeral: true, allowedMentions: { repliedUser: false } });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
reponse = message.reply({
embeds: [embed],
components: [row],
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 } });
});
}
},
};
+28 -13
View File
@@ -1,29 +1,44 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['perm', 'permission', 'permissions'],
description: 'Affiche les permission des rôles pour utiliser les commandes du bot.',
emote: '⏱️',
utilisation: '',
aliases: ["perm", "permission", "permissions"],
description:
"Affiche les permission des rôles pour utiliser les commandes du bot.",
emote: "⏱️",
utilisation: "",
permission: 10,
async execute(message, args, client) {
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);
resolve(rows);
});
},
);
});
const embed = new EmbedBuilder()
.setTitle('⏱️ Permissions')
.setDescription(perms.map(perm => `**<@&${perm.roleId}>** : ${perm.permission}`).join('\n'))
.setTitle("⏱️ Permissions")
.setDescription(
perms
.map((perm) => `**<@&${perm.roleId}>** : ${perm.permission}`)
.join("\n"),
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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 db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: [],
description: 'Retire de l\'argent de votre compte en banque ou de votre poche ou de votre réputation.',
emote: '💰',
utilisation: '<montant> <pocket|bank|reputation> [@membre]',
description:
"Retire de l'argent de votre compte en banque ou de votre poche ou de votre réputation.",
emote: "💰",
utilisation: "<montant> <pocket|bank|reputation> [@membre]",
permission: 10,
async execute(message, args, client) {
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
});
},
);
});
let member = message.author;
let title = 'Argent retiré';
let title = "Argent retiré";
let description = `💰 Vous avez retiré ${args[0]} à votre ${args[1]}.`;
if (isNaN(args[0])) {
title = 'Erreur';
description = '❌ Veuillez entrer un montant valide.';
title = "Erreur";
description = "❌ Veuillez entrer un montant valide.";
} else if (args[0] <= 0) {
title = 'Erreur';
description = '❌ Veuillez entrer un montant supérieur à 0.';
} else if (args[1] !== 'pocket' && args[1] !== 'bank' && args[1] !== 'reputation') {
title = 'Erreur';
description = '❌ Veuillez entrer une destination valide (pocket, bank, reputation).';
title = "Erreur";
description = "❌ Veuillez entrer un montant supérieur à 0.";
} else if (
args[1] !== "pocket" &&
args[1] !== "bank" &&
args[1] !== "reputation"
) {
title = "Erreur";
description =
"❌ Veuillez entrer une destination valide (pocket, bank, reputation).";
} else if (message.mentions.users.first()) {
member = message.mentions.users.first();
description = `💰 Vous avez retiré ${args[0]} à la ${args[1]} de ${member.tag}.`;
@@ -40,10 +50,16 @@ module.exports = {
.setDescription(description)
.setColor(await embedColor(message.author.id, message.guild.id))
.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') {
db.run(`UPDATE users SET ${args[1]} = ${args[1]} - ? WHERE guildId = ? AND userId = ?`, [args[0], message.guild.id, member.id]);
if (title !== "Erreur") {
db.run(
`UPDATE users SET ${args[1]} = ${args[1]} - ? WHERE guildId = ? AND userId = ?`,
[args[0], message.guild.id, member.id],
);
}
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
+45 -18
View File
@@ -1,41 +1,68 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: [],
description: 'Reinitialise toutes les données d\'un utilisateur (sur ce serveur).',
emote: '💰',
utilisation: '<@membre>',
description:
"Reinitialise toutes les données d'un utilisateur (sur ce serveur).",
emote: "💰",
utilisation: "<@membre>",
permission: 10,
async execute(message, args, client) {
const member = message.mentions.users.first();
if (!member) {
const embed = new EmbedBuilder()
.setTitle('Reset :')
.setTitle("Reset :")
.setDescription(`**Veuillez mentionner un membre valide**`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 bank = 0 WHERE guildId = ? AND userId = ?`, [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]);
db.run(`UPDATE users SET pocket = 0 WHERE guildId = ? AND userId = ?`, [
message.guild.id,
member.id,
]);
db.run(`UPDATE users SET bank = 0 WHERE guildId = ? AND userId = ?`, [
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()
.setTitle('Reset :')
.setTitle("Reset :")
.setDescription(`**<@${member.id}> reinitialiser avec succès !**`)
.setColor(await embedColor(message.author.id, message.guild.id))
.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 } });
},
+35 -19
View File
@@ -1,35 +1,45 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: [],
description: 'Defini la solde d\'un membre (a utiliser pour remplacer un `NaN` dans le `&me`).',
emote: '💰',
utilisation: '<montant> <pocket|bank|reputation> [@membre]',
description:
"Defini la solde d'un membre (a utiliser pour remplacer un `NaN` dans le `&me`).",
emote: "💰",
utilisation: "<montant> <pocket|bank|reputation> [@membre]",
permission: 10,
async execute(message, args, client) {
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
});
},
);
});
let member = message.author;
let title = 'Definition de solde';
let title = "Definition de solde";
let description = `💰 Vous avez mis à ${args[0]} votre ${args[1]}.`;
if (isNaN(args[0])) {
title = 'Erreur';
description = '❌ Veuillez entrer un montant valide.';
title = "Erreur";
description = "❌ Veuillez entrer un montant valide.";
} else if (args[0] < 0) {
title = 'Erreur'
description = '❌ Veuillez entrer un montant supérieur à 0.';
} else if (args[1] !== 'pocket' && args[1] !== 'bank' && args[1] !== 'reputation') {
title = 'Erreur';
description = '❌ Veuillez entrer une destination valide (pocket, bank, reputation).';
title = "Erreur";
description = "❌ Veuillez entrer un montant supérieur à 0.";
} else if (
args[1] !== "pocket" &&
args[1] !== "bank" &&
args[1] !== "reputation"
) {
title = "Erreur";
description =
"❌ Veuillez entrer une destination valide (pocket, bank, reputation).";
} else if (message.mentions.users.first()) {
member = message.mentions.users.first();
description = `💰 Vous avez mis à ${args[0]} la ${args[1]} de ${member.tag}.`;
@@ -40,10 +50,16 @@ module.exports = {
.setDescription(description)
.setColor(await embedColor(message.author.id, message.guild.id))
.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') {
db.run(`UPDATE users SET ${args[1]} = ? WHERE guildId = ? AND userId = ?`, [args[0], message.guild.id, member.id]);
if (title !== "Erreur") {
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 } });
+77 -32
View File
@@ -1,77 +1,122 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['setperm'],
description: 'Ajoute les permissions d\'un rôle pour utiliser les commandes du bot.',
emote: '⏱️',
utilisation: '<@role|None> <1|2|3|4|5>',
aliases: ["setperm"],
description:
"Ajoute les permissions d'un rôle pour utiliser les commandes du bot.",
emote: "⏱️",
utilisation: "<@role|None> <1|2|3|4|5>",
permission: 10,
async execute(message, args, client) {
if (!args[0] || !args[1]) {
const embed = new EmbedBuilder()
.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>\``)
.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>\``,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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;
if (args[0] === 'None') {
role = 'None';
if (args[0] === "None") {
role = "None";
} else {
role = message.mentions.roles.first().id;
}
if (isNaN(parseInt(args[1]))) {
const embed = new EmbedBuilder()
.setTitle('⏱️ Ajout de permissions')
.setDescription('Le deuxième argument doit être un nombre.')
.setTitle("⏱️ Ajout de permissions")
.setDescription("Le deuxième argument doit être un nombre.")
.setColor(await embedColor(message.author.id, message.guild.id))
.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) {
const embed = new EmbedBuilder()
.setTitle('⏱️ Ajout de permissions')
.setDescription('Le niveau de permission doit être compris entre 1 et 5.')
.setTitle("⏱️ Ajout de permissions")
.setDescription(
"Le niveau de permission doit être compris entre 1 et 5.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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') {
db.run(`DELETE FROM rolePermission WHERE guildId = ? AND permission = ?`, [message.guild.id, args[1]]);
if (role === "None") {
db.run(
`DELETE FROM rolePermission WHERE guildId = ? AND permission = ?`,
[message.guild.id, args[1]],
);
const embed = new EmbedBuilder()
.setTitle('⏱️ Ajout de permissions')
.setDescription(`Les permissions de niveau ${args[1]} ont été retirées.`)
.setTitle("⏱️ Ajout de permissions")
.setDescription(
`Les permissions de niveau ${args[1]} ont été retirées.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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()
.setTitle('⏱️ Ajout de permissions')
.setDescription(`Le rôle <@&${role}> a maintenant la permission de niveau ${args[1]}.`)
.setTitle("⏱️ Ajout de permissions")
.setDescription(
`Le rôle <@&${role}> a maintenant la permission de niveau ${args[1]}.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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 },
});
},
};
+287 -118
View File
@@ -1,13 +1,29 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const embedColor = require('../../fonctions/embedColor.js');
const db = require('../../fonctions/database.js');
const {
EmbedBuilder,
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
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();
setInterval(() => {
usersWithGameInProgress.clear();
@@ -15,352 +31,505 @@ setInterval(() => {
function drawCard() {
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 };
}
module.exports = {
aliases: ['bj'],
description: 'Joue au blackjack.',
emote: '🃏',
utilisation: '<mise>',
aliases: ["bj"],
description: "Joue au blackjack.",
emote: "🃏",
utilisation: "<mise>",
permission: 0,
async execute(message, args, client) {
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()
.setTitle('🃏 Blackjack')
.setDescription(`Vous devez spécifier une mise. Exemple : \`&blackjack 100\`.`)
.setTitle("🃏 Blackjack")
.setDescription(
`Vous devez spécifier une mise. Exemple : \`&blackjack 100\`.`,
)
.setColor(color)
.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])) {
embedColor(message.author.id, message.guild.id).then(color => {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle('🃏 Blackjack')
.setTitle("🃏 Blackjack")
.setDescription(`La mise doit être un nombre.`)
.setColor(color)
.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) {
embedColor(message.author.id, message.guild.id).then(color => {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle('🃏 Blackjack')
.setTitle("🃏 Blackjack")
.setDescription(`La mise doit être supérieure ou égale à \`25\`.`)
.setColor(color)
.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) => {
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) {
reject(err);
} else {
resolve(row.pocket);
}
});
},
);
});
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()
.setTitle('🃏 Blackjack')
.setDescription(`Vous n'avez pas assez d'argent pour miser cette somme.`)
.setTitle("🃏 Blackjack")
.setDescription(
`Vous n'avez pas assez d'argent pour miser cette somme.`,
)
.setColor(color)
.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 {
const user = message.author;
const guildId = message.guild.id;
const currencyName = 'coins'
const currencyName = "coins";
let amount = args[0];
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) {
reject(err);
} else {
resolve(row.pocket || 0);
}
},
);
});
});
const playerCards = [drawCard(), 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) {
const blackjackPayoutMultiplier = 1.25;
const winnings = Math.floor(amount * blackjackPayoutMultiplier);
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) {
reject(err);
} else {
resolve(row.pocket || 0);
}
});
},
);
});
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) {
reject(err);
} else {
resolve();
}
});
},
);
});
const winEmbed = new EmbedBuilder()
.setTitle('Blackjack 🎲')
.setDescription(`Félicitations ! Vous avez un blackjack naturel et vous avez gagné ${winnings} ${currencyName}.`)
.setColor('#0099ff');
.setTitle("Blackjack 🎲")
.setDescription(
`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()
.setTitle('Blackjack 🎲')
.setThumbnail('https://cdn.discordapp.com/attachments/1120446538544595005/1190016467257802843/kumarhane-poker.gif?ex=65a04433&is=658dcf33&hm=3ea3b7c74eb724d17249e3a60968f8c10b7d85452f3684b969a02a17ca79ab3e&')
.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 }
.setTitle("Blackjack 🎲")
.setThumbnail(
"https://cdn.discordapp.com/attachments/1120446538544595005/1190016467257802843/kumarhane-poker.gif?ex=65a04433&is=658dcf33&hm=3ea3b7c74eb724d17249e3a60968f8c10b7d85452f3684b969a02a17ca79ab3e&",
)
.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()
.addComponents(
const row = new ActionRowBuilder().addComponents(
new ButtonBuilder()
.setCustomId('blackjack_hit')
.setLabel('Hit')
.setCustomId("blackjack_hit")
.setLabel("Hit")
.setStyle(ButtonStyle.Primary),
new ButtonBuilder()
.setCustomId('blackjack_stand')
.setLabel('Stand')
.setCustomId("blackjack_stand")
.setLabel("Stand")
.setStyle(ButtonStyle.Primary),
new ButtonBuilder()
.setCustomId('blackjack_cancel')
.setLabel('Annuler')
.setStyle(ButtonStyle.Danger)
.setCustomId("blackjack_cancel")
.setLabel("Annuler")
.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) => {
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) {
reject(err);
} else {
resolve();
}
});
},
);
});
usersWithGameInProgress.set(user.id);
collector.on('collect', async i => {
collector.on("collect", async (i) => {
if (i.user.id !== user.id) {
return i.reply({ content: ":x: Vous n'avez pas la permission d'interagir avec ces boutons", ephemeral: true });
return i.reply({
content:
":x: Vous n'avez pas la permission d'interagir avec ces boutons",
ephemeral: true,
});
}
await i.deferUpdate();
if (i.customId === 'blackjack_hit') {
if (i.customId === "blackjack_hit") {
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) {
const winnings = amount * 1.5;
let pocketAmount = await new Promise((resolve, reject) => {
db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => {
db.get(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) {
reject(err);
} else {
resolve(row.pocket || 0);
}
});
},
);
});
await new Promise((resolve, reject) => {
db.run(`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, [pocketAmount + 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) {
reject(err);
} else {
resolve();
}
});
},
);
});
const winEmbed = new EmbedBuilder()
.setTitle('Blackjack 🎲')
.setDescription(`Félicitations ! Vous avez atteint 21. Vous avez gagné ${winnings} ${currencyName}.`)
.setColor('#0099ff');
.setTitle("Blackjack 🎲")
.setDescription(
`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);
collector.stop();
} else if (playerTotal > 21) {
const loseEmbed = new EmbedBuilder()
.setTitle('Blackjack 🎲')
.setDescription(`Vous avez dépassé 21. Vous avez perdu ${amount} ${currencyName}.`)
.setColor('#0099ff');
.setTitle("Blackjack 🎲")
.setDescription(
`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();
} 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] });
}
usersWithGameInProgress.delete(user.id);
} else if (i.customId === 'blackjack_stand') {
let dealerTotal = dealerCards.reduce((total, card) => total + cardValues[card.value], 0);
} else if (i.customId === "blackjack_stand") {
let dealerTotal = dealerCards.reduce(
(total, card) => total + cardValues[card.value],
0,
);
while (dealerTotal < 17) {
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;
if (dealerTotal > 21) {
result = `Le croupier a dépassé 21. Vous gagnez ${amount * 1.5} ${currencyName}. !`;
let pocketAmount = await new Promise((resolve, reject) => {
db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => {
db.get(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) {
reject(err);
} else {
resolve(row.pocket || 0);
}
});
},
);
});
await new Promise((resolve, reject) => {
db.run(`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, [pocketAmount + amount * 1.5, message.author.id, message.guild.id], (err) => {
db.run(
`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`,
[
pocketAmount + amount * 1.5,
message.author.id,
message.guild.id,
],
(err) => {
if (err) {
reject(err);
} else {
resolve();
}
});
},
);
});
const winEmbed = new EmbedBuilder()
.setTitle('Blackjack 🎲')
.setTitle("Blackjack 🎲")
.setDescription(result)
.setColor('#0099ff');
.setColor("#0099ff");
message.reply({ embeds: [winEmbed], allowedMentions: { repliedUser: false } });
message.reply({
embeds: [winEmbed],
allowedMentions: { repliedUser: false },
});
usersWithGameInProgress.delete(user.id);
} else if (dealerTotal > playerTotal) {
result = `Le croupier a ${dealerTotal} et gagne. Vous avez perdu ${amount} ${currencyName}.`;
const loseEmbed = new EmbedBuilder()
.setTitle('Blackjack 🎲')
.setTitle("Blackjack 🎲")
.setDescription(result)
.setColor('#0099ff');
.setColor("#0099ff");
message.reply({ embeds: [loseEmbed], allowedMentions: { repliedUser: false } });
message.reply({
embeds: [loseEmbed],
allowedMentions: { repliedUser: false },
});
usersWithGameInProgress.delete(user.id);
} else if (dealerTotal < playerTotal) {
let pocketAmount = await new Promise((resolve, reject) => {
db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => {
db.get(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) {
reject(err);
} else {
resolve(row.pocket || 0);
}
});
},
);
});
const winnings = amount * 1.5;
await new Promise((resolve, reject) => {
db.run(`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, [pocketAmount + winnings, message.author.id, message.guild.id], (err) => {
db.run(
`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`,
[pocketAmount + winnings, message.author.id, message.guild.id],
(err) => {
if (err) {
reject(err);
} else {
resolve();
}
});
},
);
});
result = `Vous gagnez ! Vous avez gagné ${winnings} ${currencyName}.`;
const winEmbed = new EmbedBuilder()
.setTitle('Blackjack 🎲')
.setTitle("Blackjack 🎲")
.setDescription(result)
.setColor('#0099ff');
.setColor("#0099ff");
message.reply({ embeds: [winEmbed], allowedMentions: { repliedUser: false } });
message.reply({
embeds: [winEmbed],
allowedMentions: { repliedUser: false },
});
usersWithGameInProgress.delete(user.id);
} else {
result = 'Il y a eu égalité. Vous récupérez votre mise.';
let pocketAmount = await db.get(`${guildId}.pocket.${user.id}`) || 0;
result = "Il y a eu égalité. Vous récupérez votre mise.";
let pocketAmount =
(await db.get(`${guildId}.pocket.${user.id}`)) || 0;
await db.set(`${guildId}.pocket.${user.id}`, pocketAmount + amount);
const tieEmbed = new EmbedBuilder()
.setTitle('Blackjack 🎲')
.setTitle("Blackjack 🎲")
.setDescription(result)
.setColor('#0099ff');
.setColor("#0099ff");
message.reply({ embeds: [tieEmbed], allowedMentions: { repliedUser: false } });
message.reply({
embeds: [tieEmbed],
allowedMentions: { repliedUser: false },
});
}
usersWithGameInProgress.delete(user.id);
collector.stop();
} else if (i.customId === 'blackjack_cancel') {
} else if (i.customId === "blackjack_cancel") {
let pocketAmount = await new Promise((resolve, reject) => {
db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => {
db.get(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) {
reject(err);
} else {
resolve(row.pocket || 0);
}
});
},
);
});
await new Promise((resolve, reject) => {
db.run(`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, [pocketAmount + amount / 2, message.author.id, message.guild.id], (err) => {
db.run(
`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`,
[pocketAmount + amount / 2, message.author.id, message.guild.id],
(err) => {
if (err) {
reject(err);
} else {
resolve();
}
});
},
);
});
const cancelEmbed = new EmbedBuilder()
.setTitle('Blackjack 🎲')
.setDescription('Partie annulée. Vous récupérez la moitié de votre mise.')
.setColor('#0099ff');
.setTitle("Blackjack 🎲")
.setDescription(
"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);
collector.stop();
}
});
}
}
},
};
+112 -54
View File
@@ -1,99 +1,157 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const embedColor = require('../../fonctions/embedColor.js');
const db = require('../../fonctions/database.js');
const {
EmbedBuilder,
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
module.exports = {
aliases: ['roulette'],
description: 'Lance une roulette 100% gagante. (coûte une clef)',
emote: '🎲',
utilisation: '',
aliases: ["roulette"],
description: "Lance une roulette 100% gagante. (coûte une clef)",
emote: "🎲",
utilisation: "",
permission: 0,
async execute(message, args, client) {
const key = await new Promise((resolve, reject) => {
db.get(`SELECT key FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => {
db.get(
`SELECT key FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) {
reject(err);
} else {
resolve(row.key);
}
},
);
});
});
if (key == 0) return message.reply('Tu n\'as pas de clef, tu ne peux pas ouvrir de box')
db.run(`UPDATE users SET key = key - 1 WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id])
if (key == 0)
return message.reply("Tu n'as pas de clef, tu ne peux pas ouvrir de box");
db.run(`UPDATE users SET key = key - 1 WHERE userId = ? AND guildId = ?`, [
message.author.id,
message.guild.id,
]);
const embed = new EmbedBuilder()
.setTitle('🗝️ Box')
.setTitle("🗝️ Box")
.setDescription(`🪙👑🗝️\n💰🔺🪙\n🪙🪙🗝️`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag} | Il te reste ${key - 1}clef`, iconURL: message.author.displayAvatarURL() })
.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);
let gain = '';
let emoji = '';
let recompense = '';
let gain = "";
let emoji = "";
let recompense = "";
if (result === 0) {
gain = '30000';
emoji = '💰';
recompense = 'bank';
gain = "30000";
emoji = "💰";
recompense = "bank";
} else if (result === 1) {
gain = '5';
emoji = '🗝️';
recompense = 'key';
gain = "5";
emoji = "🗝️";
recompense = "key";
} else if (result === 2) {
emoji = '👑';
recompense = 'couronne';
emoji = "👑";
recompense = "couronne";
} else if (result % 2 === 0) {
gain = '5000';
emoji = '🪙';
recompense = 'pocket';
gain = "5000";
emoji = "🪙";
recompense = "pocket";
} else {
gain = '3';
emoji = '🔺';
recompense = 'reputation';
gain = "3";
emoji = "🔺";
recompense = "reputation";
}
if (recompense !== 'couronne') {
if (recompense !== "couronne") {
await new Promise((resolve, reject) => {
db.run(`UPDATE users SET ${recompense} = ${recompense} + ? WHERE userId = ? AND guildId = ?`, [gain, message.author.id, message.guild.id], (err) => {
db.run(
`UPDATE users SET ${recompense} = ${recompense} + ? WHERE userId = ? AND guildId = ?`,
[gain, message.author.id, message.guild.id],
(err) => {
if (err) {
reject(err);
} else {
resolve();
}
},
);
});
});
msg.delete()
message.reply({ embeds: [
msg.delete();
message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🗝️ Box')
.setDescription(`${emoji, emoji, emoji}\n${emoji, emoji, emoji}\n${emoji, emoji, emoji}\n\nVous avez gagner ${gain}${recompense} !`)
.setTitle("🗝️ Box")
.setDescription(
`${(emoji, emoji, emoji)}\n${(emoji, emoji, emoji)}\n${(emoji, emoji, emoji)}\n\nVous avez gagner ${gain}${recompense} !`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag} | Il te reste ${key - 1}clef`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag} | Il te reste ${key - 1}clef`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} else {
db.run(`UPDATE users SET bank = bank + ? WHERE userId = ? AND guildId = ?`, [15000, message.author.id, message.guild.id])
db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [5000, message.author.id, message.guild.id])
db.run(`UPDATE users SET reputation = reputation + ? WHERE userId = ? AND guildId = ?`, [5, message.author.id, message.guild.id])
db.run(`UPDATE users SET key = key + ? WHERE userId = ? AND guildId = ?`, [5, message.author.id, message.guild.id])
db.run(`UPDATE users SET xp = xp + ? WHERE userId = ? AND guildId = ?`, [50, message.author.id, message.guild.id])
db.run(`UPDATE users SET lvl = lvl + ? WHERE userId = ? AND guildId = ?`, [2, message.author.id, message.guild.id])
db.run(
`UPDATE users SET bank = bank + ? WHERE userId = ? AND guildId = ?`,
[15000, message.author.id, message.guild.id],
);
db.run(
`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`,
[5000, message.author.id, message.guild.id],
);
db.run(
`UPDATE users SET reputation = reputation + ? WHERE userId = ? AND guildId = ?`,
[5, message.author.id, message.guild.id],
);
db.run(
`UPDATE users SET key = key + ? WHERE userId = ? AND guildId = ?`,
[5, message.author.id, message.guild.id],
);
db.run(`UPDATE users SET xp = xp + ? WHERE userId = ? AND guildId = ?`, [
50,
message.author.id,
message.guild.id,
]);
db.run(
`UPDATE users SET lvl = lvl + ? WHERE userId = ? AND guildId = ?`,
[2, message.author.id, message.guild.id],
);
msg.delete()
message.reply({ embeds: [
msg.delete();
message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🗝️ Box')
.setDescription(`${emoji, emoji, emoji}\n${emoji, emoji, emoji}\n${emoji, emoji, emoji}\n\n## **Vous avez gagner \`15000\`coins en bank, \`5000\`coins en poche, \`5\`reputation, \`5\`clef, \`50\`xp et \`5\`niveau !!**`)
.setTitle("🗝️ Box")
.setDescription(
`${(emoji, emoji, emoji)}\n${(emoji, emoji, emoji)}\n${(emoji, emoji, emoji)}\n\n## **Vous avez gagner \`15000\`coins en bank, \`5000\`coins en poche, \`5\`reputation, \`5\`clef, \`50\`xp et \`5\`niveau !!**`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag} | Il te reste ${key - 1}clef`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
}
.setFooter({
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 embedColor = require('../../fonctions/embedColor.js');
const db = require('../../fonctions/database.js');
const {
EmbedBuilder,
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
module.exports = {
aliases: ['dice', 'dé'],
description: 'Lance un dé.',
emote: '🎲',
utilisation: '<mise> <face1> <face2>',
aliases: ["dice", "dé"],
description: "Lance un dé.",
emote: "🎲",
utilisation: "<mise> <face1> <face2>",
permission: 0,
async execute(message, args, client) {
let mise = 0
let face = `${args[1]}\` et \`${args[2]}`
let mise = 0;
let face = `${args[1]}\` et \`${args[2]}`;
const pocket = await new Promise((resolve, reject) => {
db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => {
db.get(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) {
reject(err);
} else {
resolve(row.pocket);
}
},
);
});
});
if (args[0] == 'all') {
mise = pocket
if (args[0] == "all") {
mise = pocket;
} else {
mise = args[0]
mise = args[0];
}
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()
.setTitle('🎲 Lancer de dé')
.setDescription(`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`)
.setTitle("🎲 Lancer de dé")
.setDescription(
`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
}
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()
.setTitle('🎲 Lancer de dé')
.setDescription(`Vous devez spécifier une mise et deux face. Exemple : \`&dice 100 1 2\`.`)
.setTitle("🎲 Lancer de dé")
.setDescription(
`Vous devez spécifier une mise et deux face. Exemple : \`&dice 100 1 2\`.`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
}
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()
.setTitle('🎲 Lancer de dé')
.setTitle("🎲 Lancer de dé")
.setDescription(`La mise doit être un nombre.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} 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()
.setTitle('🎲 Lancer de dé')
.setTitle("🎲 Lancer de dé")
.setDescription(`La mise doit être supérieure ou égale à \`25\`.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
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)) {
embedColor(message.author.id, message.guild.id).then(color => {
message.reply({
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()
.setTitle('🎲 Lancer de dé')
.setTitle("🎲 Lancer de dé")
.setDescription(`La face doit être 1, 2, 3, 4, 5 ou 6.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
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()
.setTitle('🎲 Lancer de dé')
.setImage('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...`)
.setTitle("🎲 Lancer de dé")
.setImage(
"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)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
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;
let gain = 0;
@@ -114,39 +174,59 @@ module.exports = {
}
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) {
reject(err);
} else {
resolve();
}
});
},
);
});
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()
.setTitle('🎲 Lancer de dé')
.setDescription(`Vous avez misé \`${mise}\` sur \`${face}\` et le dé est tombée sur \`${result}\`. Vous avez gagné \`${gain}\` !`)
.setTitle("🎲 Lancer de dé")
.setDescription(
`Vous avez misé \`${mise}\` sur \`${face}\` et le dé est tombée sur \`${result}\`. Vous avez gagné \`${gain}\` !`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} else {
embedColor(message.author.id, message.guild.id).then(color => {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle('🎲 Lancer de dé')
.setDescription(`Vous avez misé \`${mise}\` sur \`${face}\` et le dé est tombée sur \`${result}\`. Vous avez perdu \`${0 - gain}\` !`)
.setTitle("🎲 Lancer de dé")
.setDescription(
`Vous avez misé \`${mise}\` sur \`${face}\` et le dé est tombée sur \`${result}\`. Vous avez perdu \`${0 - gain}\` !`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
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 embedColor = require('../../fonctions/embedColor.js');
const db = require('../../fonctions/database.js');
const {
EmbedBuilder,
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
module.exports = {
aliases: [],
description: 'Joue au gunfight.',
emote: '🔫',
utilisation: '<@membre> <mise>',
description: "Joue au gunfight.",
emote: "🔫",
utilisation: "<@membre> <mise>",
permission: 0,
async execute(message, args, client) {
@@ -22,84 +27,133 @@ module.exports = {
member = args[0];
mise = args[1];
} else {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🔫 Gunfight')
.setDescription(`Vous devez spécifier un membre et une mise. Exemple : \`&gunfight @membre 100\`.`)
.setTitle("🔫 Gunfight")
.setDescription(
`Vous devez spécifier un membre et une mise. Exemple : \`&gunfight @membre 100\`.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
if (!member || !mise) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🔫 Gunfight')
.setDescription(`Vous devez spécifier un membre et une mise. Exemple : \`&gunfight @membre 100\`.`)
.setTitle("🔫 Gunfight")
.setDescription(
`Vous devez spécifier un membre et une mise. Exemple : \`&gunfight @membre 100\`.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
if (isNaN(mise)) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🔫 Gunfight')
.setTitle("🔫 Gunfight")
.setDescription(`La mise doit être un nombre.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
if (mise < 25) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🔫 Gunfight')
.setTitle("🔫 Gunfight")
.setDescription(`La mise doit être supérieure ou égale à \`25\`.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
if (member === message.author.id) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🔫 Gunfight')
.setTitle("🔫 Gunfight")
.setDescription(`Vous ne pouvez pas jouer contre vous-même.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
if (member === client.user.id) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🔫 Gunfight')
.setTitle("🔫 Gunfight")
.setDescription(`Je ne peux pas jouer contre vous désolé.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
if (client.users.cache.get(member)?.bot) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🔫 Gunfight')
.setDescription('Vous ne pouvez pas jouer contre un bot.')
.setTitle("🔫 Gunfight")
.setDescription("Vous ne pouvez pas jouer contre un bot.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
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) {
reject(err);
} else {
@@ -109,11 +163,15 @@ module.exports = {
resolve(null);
}
}
});
},
);
});
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) {
reject(err);
} else {
@@ -123,130 +181,204 @@ module.exports = {
resolve(null);
}
}
});
},
);
});
if (pocketUser === null) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🔫 Gunfight')
.setDescription(`Vous n'êtes pas enregistré dans la base de données.`)
.setTitle("🔫 Gunfight")
.setDescription(
`Vous n'êtes pas enregistré dans la base de données.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
if (pocketMember === null) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🔫 Gunfight')
.setTitle("🔫 Gunfight")
.setDescription(`Le membre spécifié n'existe pas.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
if (pocketUser < mise) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🔫 Gunfight')
.setDescription(`Vous n'avez pas assez d'argent sur vous pour miser cette somme.\nVotre solde actuel est de ${pocketUser} coins.`)
.setTitle("🔫 Gunfight")
.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))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
if (pocketMember < mise) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🔫 Gunfight')
.setDescription(`Ce membre n'a pas assez d'argent sur lui pour miser cette somme.\nSon solde actuel est de ${pocketMember} coins.`)
.setTitle("🔫 Gunfight")
.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))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
if (pocketUser === 0) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🔫 Gunfight')
.setTitle("🔫 Gunfight")
.setDescription(`Vous n'avez pas d'argent sur vous pour miser.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
if (pocketMember === 0) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🔫 Gunfight')
.setTitle("🔫 Gunfight")
.setDescription(`Ce membre n'a pas d'argent sur lui pour miser.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
const embed = new EmbedBuilder()
.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.`)
.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.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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()
.setCustomId('gunfight-accept')
.setLabel('Accepter')
.setCustomId("gunfight-accept")
.setLabel("Accepter")
.setStyle(ButtonStyle.Success);
const buttonRefuse = new ButtonBuilder()
.setCustomId('gunfight-refuse')
.setLabel('Refuser')
.setCustomId("gunfight-refuse")
.setLabel("Refuser")
.setStyle(ButtonStyle.Danger);
const actionRow = new ActionRowBuilder()
.addComponents(buttonAccept, buttonRefuse);
const actionRow = new ActionRowBuilder().addComponents(
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 collector = sendMessage.createMessageComponentCollector({ filter, time: 60000 });
collector.on('collect', async i => {
if (i.customId === 'gunfight-accept') {
const filter = (i) => i.user.id === member;
const collector = sendMessage.createMessageComponentCollector({
filter,
time: 60000,
});
collector.on("collect", async (i) => {
if (i.customId === "gunfight-accept") {
collector.stop();
i.deferUpdate();
db.run(`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]);
db.run(
`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()
.setCustomId('gunfight-tirer')
.setLabel('Tirer')
.setCustomId("gunfight-tirer")
.setLabel("Tirer")
.setStyle(ButtonStyle.Danger);
const actionRow = new ActionRowBuilder()
.addComponents(tirerBtn);
const actionRow = new ActionRowBuilder().addComponents(tirerBtn);
sendMessage.edit({ embeds: [
sendMessage.edit({
embeds: [
new EmbedBuilder()
.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.`)
.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.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], components: [actionRow] });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
components: [actionRow],
});
const timer = Math.floor(Math.random() * 10000) + 5000
const timer = Math.floor(Math.random() * 10000) + 5000;
let fincollector = false;
const filter = i => i.user.id === member || i.user.id === message.member.id;
const tirerCollector = sendMessage.createMessageComponentCollector({ filter, time: timer });
tirerCollector.on('collect', async i => {
if (i.customId === 'gunfight-tirer') {
const filter = (i) =>
i.user.id === member || i.user.id === message.member.id;
const tirerCollector = sendMessage.createMessageComponentCollector({
filter,
time: timer,
});
tirerCollector.on("collect", async (i) => {
if (i.customId === "gunfight-tirer") {
fincollector = true;
tirerCollector.stop();
sendMessage.edit({ components: [] });
@@ -261,55 +393,82 @@ module.exports = {
notwinner = member;
}
i.reply({ embeds: [
i.reply({
embeds: [
new EmbedBuilder()
.setTitle('🔫 Gunfight')
.setDescription(`Le duel est terminé. <@${winner}> a gagné la somme de ${mise*2} coins car <@${notwinner}> a tiré trop tôt`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
] });
.setTitle("🔫 Gunfight")
.setDescription(
`Le duel est terminé. <@${winner}> a gagné la somme de ${mise * 2} coins car <@${notwinner}> a tiré trop tôt`,
)
.setColor(
await embedColor(message.author.id, message.guild.id),
)
.setTimestamp(),
],
});
db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [mise*2, winner, message.guild.id]);
db.run(
`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`,
[mise * 2, winner, message.guild.id],
);
}
});
tirerCollector.on('end', async () => {
tirerCollector.on("end", async () => {
if (fincollector) return;
tirerBtn.setStyle(ButtonStyle.Success);
sendMessage.edit({ components: [actionRow] });
const filter = i => i.user.id === member || i.user.id === message.member.id;
const tirerCollector = sendMessage.createMessageComponentCollector({ filter, time: 60000 });
tirerCollector.on('collect', async i => {
if (i.customId === 'gunfight-tirer') {
const filter = (i) =>
i.user.id === member || i.user.id === message.member.id;
const tirerCollector = sendMessage.createMessageComponentCollector({
filter,
time: 60000,
});
tirerCollector.on("collect", async (i) => {
if (i.customId === "gunfight-tirer") {
tirerCollector.stop();
sendMessage.edit({ components: [] });
i.reply({ embeds: [
i.reply({
embeds: [
new EmbedBuilder()
.setTitle('🔫 Gunfight')
.setDescription(`Le duel est terminé. <@${i.user.id}> a gagné la somme de ${mise*2} coins.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
] });
.setTitle("🔫 Gunfight")
.setDescription(
`Le duel est terminé. <@${i.user.id}> a gagné la somme de ${mise * 2} coins.`,
)
.setColor(
await embedColor(message.author.id, message.guild.id),
)
.setTimestamp(),
],
});
db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [mise*2, i.user.id, message.guild.id]);
db.run(
`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`,
[mise * 2, i.user.id, message.guild.id],
);
return;
}
});
});
} else if (i.customId === 'gunfight-refuse') {
} else if (i.customId === "gunfight-refuse") {
collector.stop();
sendMessage.edit({ embeds: [
sendMessage.edit({
embeds: [
new EmbedBuilder()
.setTitle('🔫 Gunfight')
.setTitle("🔫 Gunfight")
.setDescription(`Le membre a refusé votre défi de gunfight.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], components: [] });
}
.setFooter({
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 embedColor = require('../../fonctions/embedColor.js');
const db = require('../../fonctions/database.js');
const {
EmbedBuilder,
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
module.exports = {
aliases: ['slot'],
description: 'Lance la machine à sous (si 3caractère identique, tu remporte 3fois ta mise).',
emote: '🪙',
utilisation: '<mise>',
aliases: ["slot"],
description:
"Lance la machine à sous (si 3caractère identique, tu remporte 3fois ta mise).",
emote: "🪙",
utilisation: "<mise>",
permission: 0,
async execute(message, args, client) {
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()
.setTitle('🪙 Machine à sous')
.setDescription(`Vous devez spécifier une mise. Exemple : \`&machine-a-sous 100\`.`)
.setTitle("🪙 Machine à sous")
.setDescription(
`Vous devez spécifier une mise. Exemple : \`&machine-a-sous 100\`.`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} 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()
.setTitle('🪙 Machine à sous')
.setTitle("🪙 Machine à sous")
.setDescription(`La mise doit être un nombre.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} 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()
.setTitle('🪙 Machine à sous')
.setTitle("🪙 Machine à sous")
.setDescription(`La mise doit être supérieure ou égale à \`25\`.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
}
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) {
reject(err);
} else {
resolve(row.pocket);
}
},
);
});
});
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()
.setTitle('🪙 Machine à sous')
.setDescription(`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`)
.setTitle("🪙 Machine à sous")
.setDescription(
`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
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()
.setTitle('🪙 Machine à sous')
.setImage('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...`)
.setTitle("🪙 Machine à sous")
.setImage(
"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)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
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)
let nombre2 = await Math.floor(Math.random() * (nombre1 + 1))
let nombre3 = await Math.floor(Math.random() * (nombre2 + 2))
await new Promise((resolve) => setTimeout(resolve, 7500));
let nombre1 = await Math.floor(Math.random() * 10);
let nombre2 = await Math.floor(Math.random() * (nombre1 + 1));
let nombre3 = await Math.floor(Math.random() * (nombre2 + 2));
let gain = 0;
if (nombre1 === nombre2 === nombre3) {
if ((nombre1 === nombre2) === nombre3) {
gain = args[0] * 10;
} else if ((nombre1 === nombre2) || (nombre1 === nombre3) || (nombre2 == nombre3)) {
} else if (
nombre1 === nombre2 ||
nombre1 === nombre3 ||
nombre2 == nombre3
) {
gain = args[0] * 2;
} else {
gain = 0 - args[0];
}
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) {
reject(err);
} else {
resolve();
}
});
},
);
});
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()
.setTitle('🪙 Machine à sous')
.setDescription(`Vous avez misé \`${args[0]}\` et les nombres sont : ${nombre1}, ${nombre2}, ${nombre3}. Vous avez gagné \`${gain}\` !`)
.setTitle("🪙 Machine à sous")
.setDescription(
`Vous avez misé \`${args[0]}\` et les nombres sont : ${nombre1}, ${nombre2}, ${nombre3}. Vous avez gagné \`${gain}\` !`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} 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()
.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: !`)
.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: !`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} else {
embedColor(message.author.id, message.guild.id).then(color => {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle('🪙 Machine à sous')
.setDescription(`Vous avez misé \`${args[0]}\` et les nombres sont : ${nombre1}, ${nombre2}, ${nombre3}. Vous avez perdu \`${0 - gain}\` !\n\nLa probabilité de ne pas perdre à ce jeu est inferieur à 5%. La mise en cas de gain est donc mutiplier par 10`)
.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`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
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 embedColor = require('../../fonctions/embedColor.js');
const db = require('../../fonctions/database.js');
const {
EmbedBuilder,
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
module.exports = {
aliases: ['pfc'],
description: 'Joue au pierre feuille ciseau.',
emote: '🎲',
utilisation: '<mise> <pierre|feuille|ciseau>',
aliases: ["pfc"],
description: "Joue au pierre feuille ciseau.",
emote: "🎲",
utilisation: "<mise> <pierre|feuille|ciseau>",
permission: 0,
async execute(message, args, client) {
if (args.length !== 2) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🪨 Pierre Feuille Ciseau')
.setDescription(`Vous devez spécifier une mise et un coup. Exemple : \`&pierre-feuille-ciseau 100 pierre\`.`)
.setTitle("🪨 Pierre Feuille Ciseau")
.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))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} else if (isNaN(args[0])) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🪨 Pierre Feuille Ciseau')
.setTitle("🪨 Pierre Feuille Ciseau")
.setDescription(`La mise doit être un nombre.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} else if (args[0] < 25) {
return message.reply({ embeds: [
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🪨 Pierre Feuille Ciseau')
.setTitle("🪨 Pierre Feuille Ciseau")
.setDescription(`La mise doit être supérieure ou égale à \`25\`.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
} else if (args[1] !== 'pierre' && args[1] !== 'p' && args[1] !== 'feuille' && args[1] !== 'f' && args[1] !== 'ciseau' && args[1] !== 'c') {
return message.reply({ embeds: [
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
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()
.setTitle('🪨 Pierre Feuille Ciseau')
.setDescription(`La coup doit être \`pierre\`, \`feuille\` ou \`ciseau\`.`)
.setTitle("🪨 Pierre Feuille Ciseau")
.setDescription(
`La coup doit être \`pierre\`, \`feuille\` ou \`ciseau\`.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
const pocket = await new Promise((resolve, reject) => {
db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], async (err, row) => {
db.get(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
async (err, row) => {
if (err) {
reject(err);
} else {
resolve(row.pocket);
}
});
},
);
});
if (pocket < args[0]) return message.reply({
if (pocket < args[0])
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🪨 Pierre Feuille Ciseau')
.setDescription(`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`)
.setTitle("🪨 Pierre Feuille Ciseau")
.setDescription(
`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
.setFooter({
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()
.setTitle('🪨 Pierre Feuille Ciseau')
.setDescription(`Vous avez misé(e) \`${args[0]}\` coins sur \`${args[1]}\`...\nRésultat dans 7.5 secondes...`)
.setTitle("🪨 Pierre Feuille Ciseau")
.setDescription(
`Vous avez misé(e) \`${args[0]}\` coins sur \`${args[1]}\`...\nRésultat dans 7.5 secondes...`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
.setFooter({
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);
let coupBot = ''
let coupBotA = ''
let coupBot = "";
let coupBotA = "";
if (result === 0) {
coupBot = 'feuille';
coupBotA = 'f'
coupBot = "feuille";
coupBotA = "f";
} else if (result === 1) {
coupBot = 'ciseau';
coupBotA = 'c'
coupBot = "ciseau";
coupBotA = "c";
} else {
coupBot = 'pierre';
coupBotA = 'p'
coupBot = "pierre";
coupBotA = "p";
}
let gain = args[0];
let description = ''
let coupUser = ''
let win = false
if (args[1] == 'p' || args[1] == 'pierre') {
coupUser = 'p'
let description = "";
let coupUser = "";
let win = false;
if (args[1] == "p" || args[1] == "pierre") {
coupUser = "p";
}
if (args[1] == 'f' || args[1] == 'feuille') {
coupUser = 'f'
if (args[1] == "f" || args[1] == "feuille") {
coupUser = "f";
}
if (args[1] == 'c' || args[1] == 'ciseau') {
coupUser = 'c'
if (args[1] == "c" || args[1] == "ciseau") {
coupUser = "c";
}
if (args[1] === coupBot || args[1] === coupBotA) {
gain = 0
description = 'A refaire, le bot a jouer `' + coupBot + '`, comme toi...';
} else if (coupUser == 'p' && coupBotA == 'c') {
win = true
} else if (coupUser == 'f' && coupBotA == 'p') {
win = true
} else if (coupUser == 'c' && coupBotA == 'f') {
win = true
gain = 0;
description = "A refaire, le bot a jouer `" + coupBot + "`, comme toi...";
} else if (coupUser == "p" && coupBotA == "c") {
win = true;
} else if (coupUser == "f" && coupBotA == "p") {
win = true;
} else if (coupUser == "c" && coupBotA == "f") {
win = true;
} else {
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) {
gain = gain * 2
description = 'Bravo, tu as gagné(e) `' + gain + '` coins car le bot a jouer `' + coupBot + '` !'
gain = gain * 2;
description =
"Bravo, tu as gagné(e) `" +
gain +
"` coins car le bot a jouer `" +
coupBot +
"` !";
}
sendMessage.edit({ embeds: [
sendMessage.edit({
embeds: [
new EmbedBuilder()
.setTitle('🪨 Pierre Feuille Ciseau')
.setTitle("🪨 Pierre Feuille Ciseau")
.setDescription(description)
.setColor(await embedColor(message.author.id, message.guild.id))
.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) => {
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) {
reject(err);
} else {
resolve();
}
},
);
});
});
}
},
};
+156 -75
View File
@@ -1,157 +1,238 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const embedColor = require('../../fonctions/embedColor.js');
const db = require('../../fonctions/database.js');
const {
EmbedBuilder,
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
module.exports = {
aliases: ['pf'],
description: 'Lance une piece.',
emote: '🎲',
utilisation: '<mise> <cote>',
aliases: ["pf"],
description: "Lance une piece.",
emote: "🎲",
utilisation: "<mise> <cote>",
permission: 0,
async execute(message, args, client) {
let mise = 0
let mise = 0;
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) {
reject(err);
} else {
resolve(row.pocket);
}
},
);
});
});
if (args[0] == 'all') {
mise = pocket
if (args[0] == "all") {
mise = pocket;
} else {
mise = args[0]
mise = args[0];
}
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()
.setTitle('🪙 Pile ou face')
.setDescription(`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`)
.setTitle("🪙 Pile ou face")
.setDescription(
`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
}
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()
.setTitle('🪙 Pile ou face')
.setDescription(`Vous devez spécifier une mise et un côté. Exemple : \`&pile-face 100 pile\`.`)
.setTitle("🪙 Pile ou face")
.setDescription(
`Vous devez spécifier une mise et un côté. Exemple : \`&pile-face 100 pile\`.`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} 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()
.setTitle('🪙 Pile ou face')
.setTitle("🪙 Pile ou face")
.setDescription(`La mise doit être un nombre.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} 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()
.setTitle('🪙 Pile ou face')
.setTitle("🪙 Pile ou face")
.setDescription(`La mise doit être supérieure ou égale à \`25\`.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return
} else if (args[1] !== 'pile' && args[1] !== 'face' && args[1] !== 'p' && args[1] !== 'f') {
embedColor(message.author.id, message.guild.id).then(color => {
message.reply({
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()
.setTitle('🪙 Pile ou face')
.setTitle("🪙 Pile ou face")
.setDescription(`Le côté doit être \`pile\` ou \`face\`.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
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()
.setTitle('🪙 Pile ou face')
.setImage('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...`)
.setTitle("🪙 Pile ou face")
.setImage(
"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)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
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);
let colorR = '';
let colorR = "";
if (result === 0) {
colorR = 'pile';
colorR = "pile";
} else {
colorR = 'face';
colorR = "face";
}
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);
} else {
gain = 0 - mise;
}
await new Promise((resolve, reject) => {
db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [gain, message.author.id, message.guild.id], (err) => {
db.run(
`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`,
[gain, message.author.id, message.guild.id],
(err) => {
if (err) {
reject(err);
} else {
resolve();
}
});
},
);
});
if (gain >= 0) {
embedColor(message.author.id, message.guild.id).then(color => {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.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}\` !`)
.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}\` !`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} else {
embedColor(message.author.id, message.guild.id).then(color => {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.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}\` !`)
.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}\` !`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
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 embedColor = require('../../fonctions/embedColor.js');
const db = require('../../fonctions/database.js');
const {
EmbedBuilder,
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
module.exports = {
aliases: ['pouletfight', 'pfight', 'poulet'],
description: 'Fait un combat de poulet.',
emote: '🐔',
utilisation: '<mise>',
aliases: ["pouletfight", "pfight", "poulet"],
description: "Fait un combat de poulet.",
emote: "🐔",
utilisation: "<mise>",
permission: 0,
async execute(message, args, client) {
let mise = 0
let mise = 0;
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) {
reject(err);
} else {
resolve(row.pocket);
}
},
);
});
});
if (args[0] == 'all') {
mise = pocket
if (args[0] == "all") {
mise = pocket;
} else {
mise = args[0]
mise = args[0];
}
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()
.setTitle('🐔 Poulet')
.setDescription(`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`)
.setTitle("🐔 Poulet")
.setDescription(
`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
}
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()
.setTitle('🐔 Poulet')
.setTitle("🐔 Poulet")
.setDescription(`La mise doit être un nombre.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} 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()
.setTitle('🐔 Poulet')
.setTitle("🐔 Poulet")
.setDescription(`La mise doit être supérieure ou égale à \`25\`.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
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()
.setTitle('🐔 Poulet')
.setTitle("🐔 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)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
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);
let win = '';
let win = "";
if (result === 0) {
win = true;
} else {
@@ -96,39 +133,59 @@ module.exports = {
}
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) {
reject(err);
} else {
resolve();
}
});
},
);
});
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()
.setTitle('🐔 Poulet')
.setDescription(`Vous avez misé \`${mise}\` sur votre poulet et votre poulet a gagné ! Vous avez gagné \`${gain}\`coins !`)
.setTitle("🐔 Poulet")
.setDescription(
`Vous avez misé \`${mise}\` sur votre poulet et votre poulet a gagné ! Vous avez gagné \`${gain}\`coins !`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} else {
embedColor(message.author.id, message.guild.id).then(color => {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle('🐔 Poulet')
.setDescription(`Vous avez misé \`${mise}\` sur votre poulet et votre poulet a perdu. Vous avez perdu \`${0 - gain}\`coins !`)
.setTitle("🐔 Poulet")
.setDescription(
`Vous avez misé \`${mise}\` sur votre poulet et votre poulet a perdu. Vous avez perdu \`${0 - gain}\`coins !`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
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 embedColor = require('../../fonctions/embedColor.js');
const db = require('../../fonctions/database.js');
const {
EmbedBuilder,
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
module.exports = {
aliases: ['roulette'],
description: 'Lance une roulette.',
emote: '🎲',
utilisation: '<mise> <couleur>',
aliases: ["roulette"],
description: "Lance une roulette.",
emote: "🎲",
utilisation: "<mise> <couleur>",
permission: 0,
async execute(message, args, client) {
let mise = 0
let mise = 0;
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) {
reject(err);
} else {
resolve(row.pocket);
}
},
);
});
});
if (args[0] == 'all') {
mise = pocket
if (args[0] == "all") {
mise = pocket;
} else {
mise = args[0]
mise = args[0];
}
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()
.setTitle('🎲 Roulette')
.setDescription(`Vous devez spécifier une mise et une couleur. Exemple : \`&roulette 100 rouge\`.`)
.setTitle("🎲 Roulette")
.setDescription(
`Vous devez spécifier une mise et une couleur. Exemple : \`&roulette 100 rouge\`.`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} 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()
.setTitle('🎲 Roulette')
.setTitle("🎲 Roulette")
.setDescription(`La mise doit être un nombre.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} 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()
.setTitle('🎲 Roulette')
.setTitle("🎲 Roulette")
.setDescription(`La mise doit être supérieure ou égale à \`25\`.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
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') {
embedColor(message.author.id, message.guild.id).then(color => {
message.reply({
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()
.setTitle('🎲 Roulette')
.setDescription(`La couleur doit être \`rouge\`, \`noir\` ou \`vert\`.`)
.setTitle("🎲 Roulette")
.setDescription(
`La couleur doit être \`rouge\`, \`noir\` ou \`vert\`.`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
}
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()
.setTitle('🎲 Roulette')
.setDescription(`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`)
.setTitle("🎲 Roulette")
.setDescription(
`Vous n'avez pas assez d'argent sur vous pour miser cette somme.`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
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()
.setTitle('🎲 Roulette')
.setImage('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...`)
.setTitle("🎲 Roulette")
.setImage(
"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)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
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);
let colorR = '';
let colorR = "";
if (result === 0) {
colorR = 'vert';
colorR = "vert";
} else if (result % 2 === 0) {
colorR = 'rouge';
colorR = "rouge";
} else {
colorR = 'noir';
colorR = "noir";
}
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);
} else if ((args[1] === 'vert' || args[1] === 'green') && colorR === 'vert') {
} else if (
(args[1] === "vert" || args[1] === "green") &&
colorR === "vert"
) {
gain = mise * 36;
} else {
gain = 0 - mise;
}
await new Promise((resolve, reject) => {
db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [gain, message.author.id, message.guild.id], (err) => {
db.run(
`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`,
[gain, message.author.id, message.guild.id],
(err) => {
if (err) {
reject(err);
} else {
resolve();
}
});
},
);
});
if (gain >= 0) {
embedColor(message.author.id, message.guild.id).then(color => {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle('🎲 Roulette')
.setDescription(`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la bille est tombée sur \`${colorR}\`. Vous avez gagné \`${gain}\` !`)
.setTitle("🎲 Roulette")
.setDescription(
`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la bille est tombée sur \`${colorR}\`. Vous avez gagné \`${gain}\` !`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} else {
embedColor(message.author.id, message.guild.id).then(color => {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle('🎲 Roulette')
.setDescription(`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la bille est tombée sur \`${colorR}\`. Vous avez perdu \`${0 - gain}\` !`)
.setTitle("🎲 Roulette")
.setDescription(
`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la bille est tombée sur \`${colorR}\`. Vous avez perdu \`${0 - gain}\` !`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
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 embedColor = require('../../fonctions/embedColor.js');
const db = require('../../fonctions/database.js');
const {
EmbedBuilder,
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
module.exports = {
aliases: ['braquage'],
description: 'Tente un braquage. (cout : 5rep)',
emote: '🏦',
utilisation: '<@membre>',
aliases: ["braquage"],
description: "Tente un braquage. (cout : 5rep)",
emote: "🏦",
utilisation: "<@membre>",
permission: 0,
async execute(message, args, client) {
/////////////////////////////// Calcule des données de la cible ////////////////////////////////////////////////
const cible = message.mentions.users.first();
if (!cible) {
const embed = new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Vous devez mentionner un membre.')
.setTitle("Erreur")
.setDescription("❌ Vous devez mentionner un membre.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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) => {
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);
resolve(row);
});
},
);
});
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 /////////////////////////////////////////
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);
resolve(row);
},
);
});
});
const usercoinsEnBank = user.bank
const usercoinsEnBank = user.bank;
if (usercoinsEnBank < 8) {
const embed = new EmbedBuilder()
.setTitle('Braquage Impossible')
.setDescription(`❌ Vous n'avez pas assez de reputation. Il faut \`8\` reputation mais vous n'avez que \`${usercoinsEnBank}\`reputation`)
.setTitle("Braquage Impossible")
.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))
.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) {
const embed = new EmbedBuilder()
.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.`)
.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.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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 /////////////////////////////////////////////////////
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) {
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) {
console.log(`${err}`.red)
console.log(`${err}`.red);
}
});
},
);
/////////////////////////////////// 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()
.setTitle('🔐 Braquage')
.setImage('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...`)
.setTitle("🔐 Braquage")
.setImage(
"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)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
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 ///////////////////////////////////////////////////////
@@ -103,63 +157,91 @@ module.exports = {
coinsEnBank = Math.floor(Math.random() * (cibleBD.bank / 2));
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) {
reject(err);
} else {
resolve();
}
});
},
);
});
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) {
reject(err);
} else {
resolve();
}
});
},
);
});
} else {
gain = 0;
coinsEnBank = 0
coinsEnBank = 0;
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) {
reject(err);
} else {
resolve();
}
});
},
);
});
}
//////////////////////////////////// Affichage de la reponse ///////////////////////////////////////////////////
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()
.setTitle('🔐 Braquage')
.setDescription(`Vous avez braquer <@${cible.id}> et vous n'etes pas tomber sur un agent de securité. Vous avez gagné \`${coinsEnBank}\`coins !`)
.setTitle("🔐 Braquage")
.setDescription(
`Vous avez braquer <@${cible.id}> et vous n'etes pas tomber sur un agent de securité. Vous avez gagné \`${coinsEnBank}\`coins !`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} else {
embedColor(message.author.id, message.guild.id).then(color => {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.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`)
.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`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
.setFooter({
text: `Demandé par ${message.author.tag}`,
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 db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['hack'],
description: 'Supprime un cadenas à une team. (coût : 4reputation)',
emote: '🔓',
utilisation: '<team-id>',
aliases: ["hack"],
description: "Supprime un cadenas à une team. (coût : 4reputation)",
emote: "🔓",
utilisation: "<team-id>",
permission: 0,
async execute(message, args, client) {
if (args.length >= 2) {
const embed = new EmbedBuilder()
.setTitle('Hack Impossible')
.setTitle("Hack Impossible")
.setDescription(`❌ Veuillez indiquer l'id une team.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.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 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);
resolve(row);
},
);
});
});
const userRep = user.reputation
const userRep = user.reputation;
if (userRep < 4) {
const embed = new EmbedBuilder()
.setTitle('Hack Impossible')
.setDescription(`❌ Vous n'avez pas assez de reputation. Il faut \`4\` reputation mais vous n'avez que \`${userRep}\` reputation`)
.setTitle("Hack Impossible")
.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))
.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) => {
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 (!row) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ La team spécifié n\'existe pas.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTitle("Erreur")
.setDescription("❌ La team spécifié n'existe pas.")
.setColor(
await embedColor(message.author.id, message.guild.id),
)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
resolve(parseInt(row.reputation));
});
},
);
});
if (lastHack > Date.now() - 7200000) {
const embed = new EmbedBuilder()
.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.`)
.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.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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) {
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) {
console.log(`${err}`.red)
console.log(`${err}`.red);
}
});
},
);
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) {
console.log(`${err}`.red)
console.log(`${err}`.red);
}
});
},
);
const embed = new EmbedBuilder()
.setTitle('Hack réussi !')
.setDescription('Vous avez cassé(e) un cadenas de la team `' + team.name + '`, cette team à maintement `' + team.padlock - 1 + '` cadenas !')
.setTitle("Hack réussi !")
.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))
.setTimestamp()
.setImage('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() });
.setImage(
"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) {
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) {
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) {
console.log(`${err}`.red)
console.log(`${err}`.red);
}
});
},
);
const embed2 = new EmbedBuilder()
.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) !')
.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) !",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setImage('')
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setImage("")
.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 {
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
}
else {
} else {
const embed = new EmbedBuilder()
.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.')
.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.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setImage('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() });
.setImage(
"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 embedColor = require('../../fonctions/embedColor.js');
const db = require('../../fonctions/database.js');
const {
EmbedBuilder,
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
const cooldown = new Set();
module.exports = {
aliases: ['jugement', 'procès', 'proces'],
description: 'Juge un membre. (cout : 1reputation + 500coins)',
emote: '🏦',
utilisation: '<@membre>',
aliases: ["jugement", "procès", "proces"],
description: "Juge un membre. (cout : 1reputation + 500coins)",
emote: "🏦",
utilisation: "<@membre>",
permission: 0,
async execute(message, args, client) {
/////////////////////////////// Calcule des données de la cible ////////////////////////////////////////////////
const cible = message.mentions.users.first();
if (!cible) {
const embed = new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Vous devez mentionner un membre.')
.setTitle("Erreur")
.setDescription("❌ Vous devez mentionner un membre.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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) => {
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);
resolve(row);
});
},
);
});
/////////////////////////////// Calcule des données du message.author /////////////////////////////////////////
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
});
},
);
});
const lastJuge = user.lastJuge
const lastJuge = user.lastJuge;
if (lastJuge > Date.now() - 3600000) {
const embed = new EmbedBuilder()
.setTitle('Jugement Impossible')
.setDescription(`❌ Vous avez déjà juger récemment. Veuillez attendre ${Math.floor((lastBraquage + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir braquer à nouveau.`)
.setTitle("Jugement Impossible")
.setDescription(
`❌ Vous avez déjà juger récemment. Veuillez attendre ${Math.floor((lastBraquage + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir braquer à nouveau.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 countContre = 0
let countPr = 0;
let countContre = 0;
const pour = new ButtonBuilder()
.setCustomId('pour')
.setLabel('✅ Pour la sanction')
.setCustomId("pour")
.setLabel("✅ Pour la sanction")
.setStyle(ButtonStyle.Primary);
const contre = new ButtonBuilder()
.setCustomId('contre')
.setLabel('😡 Contre la sanction')
.setCustomId("contre")
.setLabel("😡 Contre la sanction")
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(pour);
const row = new ActionRowBuilder().addComponents(pour);
const msg = message.channel.send({
embeds: [
new EmbedBuilder()
.setTitle(`Jugement de ${cible.user.username}`)
.setDescription(`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``)
.setDescription(
`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setImage('')
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
.setImage("")
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
components: [row],
allowedMentions: { repliedUser: false }
allowedMentions: { repliedUser: false },
});
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
const filter = i => (i.customId === 'pour' || i.customId === 'contre') && i.user.id === message.author.id;
const collector = msg.createMessageComponentCollector({ filter, time: 60000 })
collector.on('collect', async (interaction) => {
if (cooldown.has(message.author.id)) { return message.reply({ content: 'Vous avez deja voté', ephemeral: true }) }
const filter = (i) =>
(i.customId === "pour" || i.customId === "contre") &&
i.user.id === message.author.id;
const collector = msg.createMessageComponentCollector({
filter,
time: 60000,
});
collector.on("collect", async (interaction) => {
if (cooldown.has(message.author.id)) {
return message.reply({
content: "Vous avez deja voté",
ephemeral: true,
});
}
cooldown.add(message.author.id);
if (i.customId === 'contre') {
if (i.user.id == message.author.id) { countContre = + 2 } else { countContre = + 1 }
if (i.customId === "contre") {
if (i.user.id == message.author.id) {
countContre = +2;
} else {
countContre = +1;
}
msg.edit({
embeds: [
new EmbedBuilder()
.setTitle(`Jugement de ${cible.user.username}`)
.setDescription(`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``)
.setDescription(
`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setImage('')
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
.setImage("")
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
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({
embeds: [
new EmbedBuilder()
.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))
.setTimestamp()
.setImage('https://tenor.com/view/judge-ace-attorney-ace-attorney-aa-gif-2687377729828245947')
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
.setImage(
"https://tenor.com/view/judge-ace-attorney-ace-attorney-aa-gif-2687377729828245947",
)
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
components: [row],
allowedMentions: { repliedUser: false }
})
allowedMentions: { repliedUser: false },
});
}
})
});
collector.on('end', () => {
collector.on("end", () => {
if (countContre > countPr) {
msg.edit({
embeds: [
@@ -130,48 +189,100 @@ module.exports = {
.setTitle(`Jugement de ${cible.user.username}`)
.setDescription(`Les charges sont abandonnée`)
.setTimestamp()
.setImage('')
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], components: [], allowedMentions: { repliedUser: false } });
.setImage("")
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
components: [],
allowedMentions: { repliedUser: false },
});
}
if (countContre == countPr) {
msg.edit({
embeds: [
new EmbedBuilder()
.setTitle(`Jugement de ${cible.user.username}`)
.setDescription(`Le jury n'arrive pas à ce mettre d'accord ||(${countPr}pour VS ${countContre}contre)|| Les charges sont donc appliquer mais à moitié, ${cible.user.username} ne pourras plus faire la commande \`work\`, \`daily\`, \`rob\`, \`hack\`, \`kill\`, \`braquage\`, \`rep\`, \`trep\` et \`recolt\` pour la prochaine heures plus le cooldown de chaque commande qui recommancera a la fin de ce delai.`)
.setDescription(
`Le jury n'arrive pas à ce mettre d'accord ||(${countPr}pour VS ${countContre}contre)|| Les charges sont donc appliquer mais à moitié, ${cible.user.username} ne pourras plus faire la commande \`work\`, \`daily\`, \`rob\`, \`hack\`, \`kill\`, \`braquage\`, \`rep\`, \`trep\` et \`recolt\` pour la prochaine heures plus le cooldown de chaque commande qui recommancera a la fin de ce delai.`,
)
.setTimestamp()
.setImage('')
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], components: [], allowedMentions: { repliedUser: false }
.setImage("")
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
components: [],
allowedMentions: { repliedUser: false },
});
db.run(`UPDATE users SET lastRob =? AND lastRecolt =? AND lastWork =? AND lastDaily =? AND lastRep =? AND lastTrep =? AND lastHack =? AND lastKill =? AND lastBraquage =? WHERE guildId =? AND userId =?`, [Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, message.guild.id, cible.id], (err) => {
db.run(
`UPDATE users SET lastRob =? AND lastRecolt =? AND lastWork =? AND lastDaily =? AND lastRep =? AND lastTrep =? AND lastHack =? AND lastKill =? AND lastBraquage =? WHERE guildId =? AND userId =?`,
[
Date.now() + 3600000,
Date.now() + 3600000,
Date.now() + 3600000,
Date.now() + 3600000,
Date.now() + 3600000,
Date.now() + 3600000,
Date.now() + 3600000,
Date.now() + 3600000,
Date.now() + 3600000,
message.guild.id,
cible.id,
],
(err) => {
if (err) {
console.log(`${err}`)
console.log(`${err}`);
}
})
},
);
}
if (countContre < countPr) {
msg.edit({
embeds: [
new EmbedBuilder()
.setTitle(`Jugement de ${cible.user.username}`)
.setDescription(`Le jury c'est mis d'accord, ${cible.user.username} ne pourras plus faire les commandes \`work\`, \`daily\`, \`rob\`, \`hack\`, \`kill\`, \`braquage\`, \`rep\`, \`trep\` et \`recolt\` pour __les deux__ prochaines heure __**plus le cooldown de chaque commande** qui recommancera a la **fin de ce delai**.__`)
.setDescription(
`Le jury c'est mis d'accord, ${cible.user.username} ne pourras plus faire les commandes \`work\`, \`daily\`, \`rob\`, \`hack\`, \`kill\`, \`braquage\`, \`rep\`, \`trep\` et \`recolt\` pour __les deux__ prochaines heure __**plus le cooldown de chaque commande** qui recommancera a la **fin de ce delai**.__`,
)
.setTimestamp()
.setImage('')
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], components: [], allowedMentions: { repliedUser: false }
.setImage("")
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
components: [],
allowedMentions: { repliedUser: false },
});
db.run(`UPDATE users SET lastRob =? AND lastRecolt =? AND lastWork =? AND lastDaily =? AND lastRep =? AND lastTrep =? AND lastHack =? AND lastKill =? AND lastBraquage =? WHERE guildId =? AND userId =?`, [Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, message.guild.id, cible.id], (err) => {
db.run(
`UPDATE users SET lastRob =? AND lastRecolt =? AND lastWork =? AND lastDaily =? AND lastRep =? AND lastTrep =? AND lastHack =? AND lastKill =? AND lastBraquage =? WHERE guildId =? AND userId =?`,
[
Date.now() + 7200000,
Date.now() + 7200000,
Date.now() + 7200000,
Date.now() + 7200000,
Date.now() + 7200000,
Date.now() + 7200000,
Date.now() + 7200000,
Date.now() + 7200000,
Date.now() + 7200000,
message.guild.id,
cible.id,
],
(err) => {
if (err) {
console.log(`${err}`)
console.log(`${err}`);
}
})
},
);
}
/* CAR TOUJOURS EN TEST ET FLEMME DE ME DROP DES REP ET COINS A CHAQUE FOIS
db.run(`UPDATE users SET reputation = reputation - 1 WHERE guildId =? AND userId =?`, [message.guild.id, message.author.id])
db.run(`UPDATE users SET pocket = pocket - 500 WHERE guildId =? AND userId =?`, [message.guild.id, message.author.id])
*/
});
}
},
};
+99 -39
View File
@@ -1,105 +1,165 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: [],
description: 'Vole des reputations à un membre. (coût 3rep)',
emote: '🦹',
utilisation: '<@membre>',
description: "Vole des reputations à un membre. (coût 3rep)",
emote: "🦹",
utilisation: "<@membre>",
permission: 0,
async execute(message, args, client) {
const member = message.mentions.users.first();
if (!member) {
const embed = new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Vous devez mentionner un membre.')
.setTitle("Erreur")
.setDescription("❌ Vous devez mentionner un membre.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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) => {
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);
resolve(row);
});
},
);
});
if (user.lastKill + 7200000 > Date.now()) {
const embed = new EmbedBuilder()
.setTitle('Erreur')
.setDescription(`❌ Vous devez encore attendre ${Math.floor((user.lastKill + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir voler à nouveau.`)
.setTitle("Erreur")
.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))
.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) => {
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);
resolve(row);
});
},
);
});
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);
resolve(row);
},
);
});
});
const memberRep = memberInfo.reputation;
if (killer < 3) {
const embed = new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Vous devez avoir `3`reputation.')
.setTitle("Erreur")
.setDescription("❌ Vous devez avoir `3`reputation.")
.setColor(await embedColor(message.author.id, message.guild.id))
.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) {
const embed = new EmbedBuilder()
.setTitle('Erreur')
.setTitle("Erreur")
.setDescription(`❌ <@${member.id}> n'a pas de reputation.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.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) {
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(`UPDATE users SET reputation = reputation + ?, lastKill = ? WHERE guildId = ? AND userId = ?`, [amount - 3, Date.now(), message.guild.id, message.author.id]);
db.run(
`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()
.setTitle('Vol')
.setTitle("Vol")
.setDescription(`💰 Vous avez volé **${amount}rep** à <@${member.id}>.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else {
const embed = new EmbedBuilder()
.setTitle('Erreur lors du kill !')
.setDescription('Vous n\'avez pas reussi à voler de reputation à <@' + member.id + '>, qui à donc, toujours, `' + memberRep + '` reputation.')
.setTitle("Erreur lors du kill !")
.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))
.setTimestamp()
.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 },
});
}
},
};
+115 -56
View File
@@ -1,112 +1,159 @@
const { EmbedBuilder } = require('discord.js');
const embedColor = require('../../fonctions/embedColor.js');
const db = require('../../fonctions/database.js');
const { EmbedBuilder } = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
let teamName
let teamDescription
let teamName;
let teamDescription;
module.exports = {
aliases: ['teamcreate'],
description: 'Crée une team.',
emote: '✒️',
utilisation: '',
aliases: ["teamcreate"],
description: "Crée une team.",
emote: "✒️",
utilisation: "",
permission: 0,
async execute(message, args, client) {
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) {
reject(err);
} else {
if (row.teamId !== null ) {
embedColor(message.author.id, message.guild.id).then(color => {
if (row.teamId !== null) {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle('🛡️ Création de team')
.setDescription(`Vous êtes déjà dans une team. Vous devez quitter votre team actuelle pour en créer une nouvelle.`)
.setTitle("🛡️ Création de team")
.setDescription(
`Vous êtes déjà dans une team. Vous devez quitter votre team actuelle pour en créer une nouvelle.`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
.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) {
embedColor(message.author.id, message.guild.id).then(color => {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle('🛡️ Création de team')
.setDescription(`Vous n'avez pas assez de fonds pour créer une team. Vous avez besoin de 3000.`)
.setTitle("🛡️ Création de team")
.setDescription(
`Vous n'avez pas assez de fonds pour créer une team. Vous avez besoin de 3000.`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
.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 {
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();
}
}
});
},
);
});
const embed = new EmbedBuilder()
.setTitle('🛡️ Création de team')
.setTitle("🛡️ Création de team")
.setDescription(`Ecrivez le nom de votre team dans le chat.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.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 collector = message.channel.createMessageCollector({ filter, time: 60000, max: 1 });
collector.on('collect', async m => {
const filter = (m) => m.author.id === message.author.id;
const collector = message.channel.createMessageCollector({
filter,
time: 60000,
max: 1,
});
collector.on("collect", async (m) => {
if (m.content.length > 25) {
m.reply('Le nom de 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();
} 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();
} else {
teamName = m.content;
const embed = new EmbedBuilder()
.setTitle('🛡️ Création de team')
.setTitle("🛡️ Création de team")
.setDescription(`Ecrivez la description de votre team dans le chat.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.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] });
m.delete();
const collectorD = message.channel.createMessageCollector({ filter, time: 60000, max: 1 });
collectorD.on('collect', async m => {
const collectorD = message.channel.createMessageCollector({
filter,
time: 60000,
max: 1,
});
collectorD.on("collect", async (m) => {
if (m.content.length > 250) {
m.reply('La description de 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();
} 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();
} else {
teamDescription = m.content;
let idBase = teamName.toLowerCase().replace(/ /g, '');
idBase = idBase.replace('0', '');
idBase = idBase.replace('1', '');
idBase = idBase.replace('2', '');
idBase = idBase.replace('3', '');
idBase = idBase.replace('4', '');
idBase = idBase.replace('5', '');
idBase = idBase.replace('6', '');
idBase = idBase.replace('7', '');
idBase = idBase.replace('8', '');
idBase = idBase.replace('9', '');
let idBase = teamName.toLowerCase().replace(/ /g, "");
idBase = idBase.replace("0", "");
idBase = idBase.replace("1", "");
idBase = idBase.replace("2", "");
idBase = idBase.replace("3", "");
idBase = idBase.replace("4", "");
idBase = idBase.replace("5", "");
idBase = idBase.replace("6", "");
idBase = idBase.replace("7", "");
idBase = idBase.replace("8", "");
idBase = idBase.replace("9", "");
let id = idBase;
let increment = 0;
let exists = true;
do {
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) {
reject(err);
} else {
@@ -115,21 +162,33 @@ module.exports = {
increment += 1;
id = idBase + increment;
} else {
db.run(`INSERT INTO teams (guildId, id, name, description) VALUES (?, ?, ?, ?)`, [message.guild.id, id, teamName, teamDescription]);
db.run(`UPDATE users SET teamId = ?, teamRole = ? WHERE guildId = ? AND userId = ?`, [id, 'owner', message.guild.id, message.author.id]);
db.run(
`INSERT INTO teams (guildId, id, name, description) VALUES (?, ?, ?, ?)`,
[message.guild.id, id, teamName, teamDescription],
);
db.run(
`UPDATE users SET teamId = ?, teamRole = ? WHERE guildId = ? AND userId = ?`,
[id, "owner", message.guild.id, message.author.id],
);
}
resolve();
}
});
},
);
});
} while (exists);
const embed = new EmbedBuilder()
.setTitle('🛡️ Création de team')
.setDescription(`Votre team a été créée avec succès !\n\n**ID :** ${id}\n**Nom :** ${teamName}\n**Description :** ${teamDescription}\n\nVous pouvez maintenant inviter des membres dans votre team avec la commande \`&teaminvite\`.\n\nPour quitter la team, utilisez la commande \`&teamleave\` (vous deverez d'abord donner la team a quelqu'un d'autre).`)
.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).`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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] });
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 db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const {
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
EmbedBuilder,
} = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['teamdelete'],
description: 'Supprime votre équipe.',
emote: '🗑️',
util: '',
aliases: ["teamdelete"],
description: "Supprime votre équipe.",
emote: "🗑️",
util: "",
permission: 0,
async execute(message, args, client) {
const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [message.guild.id, message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`,
[message.guild.id, message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
});
},
);
});
if (!team) {
const embed = new EmbedBuilder()
.setTitle('🛡️ Suppression de l\'équipe')
.setDescription('Vous n\'êtes actuellement pas dans une équipe.')
.setTitle("🛡️ Suppression de l'équipe")
.setDescription("Vous n'êtes actuellement pas dans une équipe.")
.setColor(await embedColor(message.author.id, message.guild.id))
.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 {
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);
resolve(row.teamRole);
});
},
);
});
if (teamRole !== 'owner') {
if (teamRole !== "owner") {
const embed = new EmbedBuilder()
.setTitle('Suppression Impossible')
.setDescription('❌ Vous n\'avez pas la permission de supprimer cette équipe.')
.setTitle("Suppression Impossible")
.setDescription(
"❌ Vous n'avez pas la permission de supprimer cette équipe.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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()
.addComponents(
const row = new ActionRowBuilder().addComponents(
new ButtonBuilder()
.setCustomId('confirm_delete')
.setLabel('Confirmer')
.setCustomId("confirm_delete")
.setLabel("Confirmer")
.setStyle(ButtonStyle.Danger),
new ButtonBuilder()
.setCustomId('cancel_delete')
.setLabel('Annuler')
.setStyle(ButtonStyle.Secondary)
.setCustomId("cancel_delete")
.setLabel("Annuler")
.setStyle(ButtonStyle.Secondary),
);
const embed = new EmbedBuilder()
.setTitle('🛡️ Suppression de l\'équipe')
.setDescription(`Êtes-vous sûr de vouloir supprimer l'équipe ${team.name}? Cette action est irréversible.`)
.setTitle("🛡️ Suppression de l'équipe")
.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))
.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 => {
const filter = i => i.customId === 'confirm_delete' || i.customId === 'cancel_delete' && i.user.id === message.author.id;
message
.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
})
.then((sentMessage) => {
const filter = (i) =>
i.customId === "confirm_delete" ||
(i.customId === "cancel_delete" && i.user.id === message.author.id);
const collector = sentMessage.createMessageComponentCollector({ filter, time: 15000 });
const collector = sentMessage.createMessageComponentCollector({
filter,
time: 15000,
});
collector.on('collect', async i => {
if (i.customId === 'confirm_delete') {
db.run(`DELETE FROM teams WHERE guildId = ? AND id = ?`, [message.guild.id, team.id], async (err) => {
collector.on("collect", async (i) => {
if (i.customId === "confirm_delete") {
db.run(
`DELETE FROM teams WHERE guildId = ? AND id = ?`,
[message.guild.id, team.id],
async (err) => {
if (err) {
return i.update({ content: 'Une erreur est survenue lors de la suppression de l\'équipe.', components: [] });
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) {
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()
.setTitle('🛡️ Suppression de l\'équipe')
.setDescription(`L'équipe ${team.name} a été supprimée avec succès.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTitle("🛡️ Suppression de l'équipe")
.setDescription(
`L'équipe ${team.name} a été supprimée avec succès.`,
)
.setColor(
await embedColor(message.author.id, message.guild.id),
)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return i.update({ embeds: [embed], components: [] });
});
});
},
);
},
);
} else {
await i.update({ content: 'Suppression de l\'équipe annulée.', components: [] });
await i.update({
content: "Suppression de l'équipe annulée.",
components: [],
});
}
});
collector.on('end', collected => {
if (collected.size === 0) sentMessage.edit({ content: 'Temps écoulé. Suppression de l\'équipe annulée.', components: [] });
collector.on("end", (collected) => {
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 db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const {
EmbedBuilder,
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['teamdemote', 'tderank'],
description: 'Rétrograder un officier à membre dans votre équipe.',
emote: '🛡️',
utilisation: '<@user>',
aliases: ["teamdemote", "tderank"],
description: "Rétrograder un officier à membre dans votre équipe.",
emote: "🛡️",
utilisation: "<@user>",
permission: 0,
async execute(message, args, client) {
@@ -14,13 +19,16 @@ module.exports = {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🛡️ Rétrograder un officier')
.setDescription('Veuillez mentionner un utilisateur à rétrograder.')
.setTitle("🛡️ Rétrograder un officier")
.setDescription("Veuillez mentionner un utilisateur à rétrograder.")
.setColor(await embedColor(message.author.id, message.guild.id))
.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({
embeds: [
new EmbedBuilder()
.setTitle('🛡️ Rétrograder un officier')
.setDescription('Utilisateur non trouvé.')
.setTitle("🛡️ Rétrograder un officier")
.setDescription("Utilisateur non trouvé.")
.setColor(await embedColor(message.author.id, message.guild.id))
.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) => {
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);
resolve(row);
});
},
);
});
if (!user || user.teamRole !== 'owner') {
if (!user || user.teamRole !== "owner") {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🛡️ Rétrograder un officier')
.setDescription('Vous n\'êtes pas administrateur de cette équipe.')
.setTitle("🛡️ Rétrograder un officier")
.setDescription("Vous n'êtes pas administrateur de cette équipe.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false }
allowedMentions: { repliedUser: false },
});
}
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);
resolve(row);
});
},
);
});
if (!userToDemoteInfo || userToDemoteInfo.teamId !== user.teamId) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🛡️ Rétrograder un officier')
.setDescription('L\'utilisateur mentionné n\'est pas dans votre équipe.')
.setTitle("🛡️ Rétrograder un officier")
.setDescription(
"L'utilisateur mentionné n'est pas dans votre équipe.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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({
embeds: [
new EmbedBuilder()
.setTitle('🛡️ Rétrograder un officier')
.setDescription('L\'utilisateur mentionné n\'est pas un officier.')
.setTitle("🛡️ Rétrograder un officier")
.setDescription("L'utilisateur mentionné n'est pas un officier.")
.setColor(await embedColor(message.author.id, message.guild.id))
.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) {
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()
.setTitle('🛡️ Rétrogradation dans l\'équipe')
.setDescription(`${userToDemote.tag} a été rétrogradé au rang de membre.`)
.setTitle("🛡️ Rétrogradation dans l'équipe")
.setDescription(
`${userToDemote.tag} a été rétrogradé au rang de membre.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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 db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['tedit'],
description: 'Modifie les informations de votre team.',
emote: '🖋️',
utilisation: '<nom|bannière|photo|description> <nouvelle valeur>',
aliases: ["tedit"],
description: "Modifie les informations de votre team.",
emote: "🖋️",
utilisation: "<nom|bannière|photo|description> <nouvelle valeur>",
permission: 0,
async execute(message, args, client) {
if (args.length > 0) {
let subCommand = args[0].toLowerCase();
subCommand = subCommand.replice('n', 'name')
subCommand = subCommand.replice('nom', 'name')
subCommand = subCommand.replice('noms', 'name')
subCommand = subCommand.replice('banniere', 'banner')
subCommand = subCommand.replice('bannière', 'banner')
subCommand = subCommand.replice('b', 'banner')
subCommand = subCommand.replice('i', 'icon')
subCommand = subCommand.replice('p', 'icon')
subCommand = subCommand.replice('photo', 'icon')
subCommand = subCommand.replice('icone', 'icon')
subCommand = subCommand.replice('d', 'description')
subCommand = subCommand.replice("n", "name");
subCommand = subCommand.replice("nom", "name");
subCommand = subCommand.replice("noms", "name");
subCommand = subCommand.replice("banniere", "banner");
subCommand = subCommand.replice("bannière", "banner");
subCommand = subCommand.replice("b", "banner");
subCommand = subCommand.replice("i", "icon");
subCommand = subCommand.replice("p", "icon");
subCommand = subCommand.replice("photo", "icon");
subCommand = subCommand.replice("icone", "icon");
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) => {
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);
resolve();
});
},
);
});
const embed = new EmbedBuilder()
.setTitle('🖋️ Modification de team')
.setTitle("🖋️ Modification de team")
.setDescription(`La ${subCommand} de votre team a été mise à jour.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.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 {
const embed = new EmbedBuilder()
.setTitle('🖋️ Modification de team')
.setDescription('❌ Vous devez spécifier ce que vous voulez modifier (name, banner, icon ou description).')
.setTitle("🖋️ Modification de team")
.setDescription(
"❌ Vous devez spécifier ce que vous voulez modifier (name, banner, icon ou description).",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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 {
const embed = new EmbedBuilder()
.setTitle('🖋️ Modification de team')
.setDescription('Veuillez spécifier ce que vous voulez modifier et la nouvelle valeur.')
.setTitle("🖋️ Modification de team")
.setDescription(
"Veuillez spécifier ce que vous voulez modifier et la nouvelle valeur.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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 db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['teamkick'],
description: 'Expulse un utilisateur de votre team.',
emote: '🛠️',
utilisation: '<@user>',
aliases: ["teamkick"],
description: "Expulse un utilisateur de votre team.",
emote: "🛠️",
utilisation: "<@user>",
permission: 0,
async execute(message, args, client) {
@@ -14,13 +14,16 @@ module.exports = {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🛠️ Expulsion de l\'équipe')
.setDescription('Veuillez mentionner un utilisateur à expulser.')
.setTitle("🛠️ Expulsion de l'équipe")
.setDescription("Veuillez mentionner un utilisateur à expulser.")
.setColor(await embedColor(message.author.id, message.guild.id))
.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({
embeds: [
new EmbedBuilder()
.setTitle('🛠️ Expulsion de l\'équipe')
.setDescription('Utilisateur non trouvé.')
.setTitle("🛠️ Expulsion de l'équipe")
.setDescription("Utilisateur non trouvé.")
.setColor(await embedColor(message.author.id, message.guild.id))
.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) {
return message.reply({
embeds: [
new EmbedBuilder()
.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`.')
.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`.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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) => {
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);
resolve(row);
});
},
);
});
if (!team) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🛠️ Expulsion de l\'équipe')
.setDescription('Vous n\'êtes pas dans une équipe.')
.setTitle("🛠️ Expulsion de l'équipe")
.setDescription("Vous n'êtes pas dans une équipe.")
.setColor(await embedColor(message.author.id, message.guild.id))
.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) => {
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);
resolve(row);
});
},
);
});
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);
resolve(row);
});
},
);
});
if (!userToKickInfo || userToKickInfo.teamId !== user.teamId) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🛠️ Expulsion de l\'équipe')
.setDescription('L\'utilisateur mentionné n\'est pas dans votre équipe.')
.setTitle("🛠️ Expulsion de l'équipe")
.setDescription(
"L'utilisateur mentionné n'est pas dans votre équipe.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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({
embeds: [
new EmbedBuilder()
.setTitle('🛠️ Expulsion de l\'équipe')
.setDescription('Vous n\'êtes pas administrateur de cette équipe.')
.setTitle("🛠️ Expulsion de l'équipe")
.setDescription("Vous n'êtes pas administrateur de cette équipe.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
.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) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🛠️ Expulsion de l\'équipe')
.setDescription('Une erreur est survenue lors de l\'expulsion de l\'utilisateur.')
.setTitle("🛠️ Expulsion de l'équipe")
.setDescription(
"Une erreur est survenue lors de l'expulsion de l'utilisateur.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
.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()
.setTitle('🛠️ Expulsion de l\'équipe')
.setTitle("🛠️ Expulsion de l'équipe")
.setDescription(`${userToKick.tag} a été expulsé de l'équipe.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
.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 db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const {
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
EmbedBuilder,
} = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['teamowner', 'towner', 'teamadmin'],
description: 'Transfère votre team à un utilisteur de votre équipe.',
emote: '👑',
utilisation: '<@user>',
aliases: ["teamowner", "towner", "teamadmin"],
description: "Transfère votre team à un utilisteur de votre équipe.",
emote: "👑",
utilisation: "<@user>",
permission: 0,
async execute(message, args, client) {
@@ -14,13 +19,16 @@ module.exports = {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('👑 Transfere de la propriété de la team')
.setDescription('Veuillez mentionner un utilisateur à promouvoir.')
.setTitle("👑 Transfere de la propriété de la team")
.setDescription("Veuillez mentionner un utilisateur à promouvoir.")
.setColor(await embedColor(message.author.id, message.guild.id))
.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({
embeds: [
new EmbedBuilder()
.setTitle('👑 Transfere de la propriété de la team')
.setDescription('Utilisateur non trouvé.')
.setTitle("👑 Transfere de la propriété de la team")
.setDescription("Utilisateur non trouvé.")
.setColor(await embedColor(message.author.id, message.guild.id))
.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) => {
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);
resolve(row);
});
},
);
});
if (!user || user.teamRole !== 'owner') {
if (!user || user.teamRole !== "owner") {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('👑 Transfere de la propriété de la team')
.setDescription('Vous n\'êtes pas administrateur de cette équipe.')
.setTitle("👑 Transfere de la propriété de la team")
.setDescription("Vous n'êtes pas administrateur de cette équipe.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false }
allowedMentions: { repliedUser: false },
});
}
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);
resolve(row);
});
},
);
});
if (!userToPromoteInfo || userToPromoteInfo.teamId !== user.teamId) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('👑 Transfere de la propriété de la team')
.setDescription('L\'utilisateur mentionné n\'est pas dans votre équipe.')
.setTitle("👑 Transfere de la propriété de la team")
.setDescription(
"L'utilisateur mentionné n'est pas dans votre équipe.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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()
.setCustomId('promote_to_admin')
.setLabel('Confirmer')
.setCustomId("promote_to_admin")
.setLabel("Confirmer")
.setStyle(ButtonStyle.Success);
const row = new ActionRowBuilder()
.addComponents(bouton);
const row = new ActionRowBuilder().addComponents(bouton);
const embed = new EmbedBuilder()
.setTitle('👑 Transfere de la propriété de la team')
.setDescription(`Êtes-vous sûr de vouloir promouvoir ${userToPromote.tag} au rang d'administrateur ?`)
.setTitle("👑 Transfere de la propriété de la team")
.setDescription(
`Êtes-vous sûr de vouloir promouvoir ${userToPromote.tag} au rang d'administrateur ?`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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 collector = sendMessage.createMessageComponentCollector({ filter, time: 120000 });
const filter = (i) =>
i.customId === "promote_to_admin" && i.user.id === message.author.id;
const collector = sendMessage.createMessageComponentCollector({
filter,
time: 120000,
});
collector.on('collect', async (interaction) => {
db.run(`UPDATE users SET teamRole = 'owner' WHERE guildId = ? AND userId = ?`, [message.guild.id, userToPromote.id], async (err) => {
collector.on("collect", async (interaction) => {
db.run(
`UPDATE users SET teamRole = 'owner' WHERE guildId = ? AND userId = ?`,
[message.guild.id, userToPromote.id],
async (err) => {
if (err) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('👑 Transfere de la propriété de la team')
.setDescription('Une erreur est survenue lors de la promotion de l\'utilisateur.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTitle("👑 Transfere de la propriété de la team")
.setDescription(
"Une erreur est survenue lors de la promotion de l'utilisateur.",
)
.setColor(
await embedColor(message.author.id, message.guild.id),
)
.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) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('👑 Transfere de la propriété de la team')
.setDescription('Une erreur est survenue lors de la mise à jour de votre rôle.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTitle("👑 Transfere de la propriété de la team")
.setDescription(
"Une erreur est survenue lors de la mise à jour de votre rôle.",
)
.setColor(
await embedColor(message.author.id, message.guild.id),
)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false }
allowedMentions: { repliedUser: false },
});
}
const embed = new EmbedBuilder()
.setTitle('👑 Transfere de la propriété de la team')
.setDescription(`${userToPromote.tag} a été promu au rang d'administrateur. Vous avez été rétrogradé au rang d'officier.`)
.setTitle("👑 Transfere de la propriété de la team")
.setDescription(
`${userToPromote.tag} a été promu au rang d'administrateur. Vous avez été rétrogradé au rang d'officier.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
sendMessage.edit({ embeds: [embed], components: [] });
});
});
},
);
},
);
});
},
};
+89 -42
View File
@@ -1,12 +1,17 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const {
EmbedBuilder,
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['teampromote', 'trankup'],
description: 'Promouvoir un utilisateur à officier dans votre équipe.',
emote: '🛡️',
utilisation: '<@user>',
aliases: ["teampromote", "trankup"],
description: "Promouvoir un utilisateur à officier dans votre équipe.",
emote: "🛡️",
utilisation: "<@user>",
permission: 0,
async execute(message, args, client) {
@@ -14,13 +19,16 @@ module.exports = {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🛡️ Promotion dans l\'équipe')
.setDescription('Veuillez mentionner un utilisateur à promouvoir.')
.setTitle("🛡️ Promotion dans l'équipe")
.setDescription("Veuillez mentionner un utilisateur à promouvoir.")
.setColor(await embedColor(message.author.id, message.guild.id))
.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({
embeds: [
new EmbedBuilder()
.setTitle('🛡️ Promotion dans l\'équipe')
.setDescription('Utilisateur non trouvé.')
.setTitle("🛡️ Promotion dans l'équipe")
.setDescription("Utilisateur non trouvé.")
.setColor(await embedColor(message.author.id, message.guild.id))
.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) => {
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);
resolve(row);
});
},
);
});
if (!user || user.teamRole !== 'owner') {
if (!user || user.teamRole !== "owner") {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🛡️ Promotion dans l\'équipe')
.setDescription('Vous n\'êtes pas administrateur de cette équipe.')
.setTitle("🛡️ Promotion dans l'équipe")
.setDescription("Vous n'êtes pas administrateur de cette équipe.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false }
allowedMentions: { repliedUser: false },
});
}
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);
resolve(row);
});
},
);
});
if (!userToPromoteInfo || userToPromoteInfo.teamId !== user.teamId) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🛡️ Promotion dans l\'équipe')
.setDescription('L\'utilisateur mentionné n\'est pas dans votre équipe.')
.setTitle("🛡️ Promotion dans l'équipe")
.setDescription(
"L'utilisateur mentionné n'est pas dans votre équipe.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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({
embeds: [
new EmbedBuilder()
.setTitle('🛡️ Promotion dans l\'équipe')
.setDescription('L\'utilisateur mentionné est déjà un officier.')
.setTitle("🛡️ Promotion dans l'équipe")
.setDescription("L'utilisateur mentionné est déjà un officier.")
.setColor(await embedColor(message.author.id, message.guild.id))
.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) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🛡️ Promotion dans l\'équipe')
.setDescription('Une erreur est survenue lors de la promotion de l\'utilisateur.')
.setTitle("🛡️ Promotion dans l'équipe")
.setDescription(
"Une erreur est survenue lors de la promotion de l'utilisateur.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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()
.setTitle('🛡️ Promotion dans l\'équipe')
.setDescription(`${userToPromote.tag} a été promu au rang d'officier.`)
.setTitle("🛡️ Promotion dans l'équipe")
.setDescription(
`${userToPromote.tag} a été promu au rang d'officier.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['tretirer', 'teamwithdraw', 'teamretirer', 'teamwh', 'twh'],
description: 'Retire de l\'argent de la banque de votre team.',
emote: '💰',
utilisation: '<montant|all>',
aliases: ["tretirer", "teamwithdraw", "teamretirer", "teamwh", "twh"],
description: "Retire de l'argent de la banque de votre team.",
emote: "💰",
utilisation: "<montant|all>",
permission: 0,
async execute(message, args, client) {
if (args.length !== 1) {
const embed = new EmbedBuilder()
.setTitle('Retrait Impossible')
.setDescription('❌ Vous devez spécifier un montant à retirer.')
.setTitle("Retrait Impossible")
.setDescription("❌ Vous devez spécifier un montant à retirer.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (args[0] !== 'all' && isNaN(args[0])) {
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (args[0] !== "all" && isNaN(args[0])) {
const embed = new EmbedBuilder()
.setTitle('Retrait Impossible')
.setDescription('❌ Vous devez spécifier un montant valide à retirer.')
.setTitle("Retrait Impossible")
.setDescription("❌ Vous devez spécifier un montant valide à retirer.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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) {
const embed = new EmbedBuilder()
.setTitle('Retrait Impossible')
.setDescription('❌ Vous devez retirer au moins 1 coin.')
.setTitle("Retrait Impossible")
.setDescription("❌ Vous devez retirer au moins 1 coin.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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) => {
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);
resolve(row.teamRole);
});
},
);
});
if (!teamRole || (teamRole !== 'officier' && teamRole !== 'owner')) {
if (!teamRole || (teamRole !== "officier" && teamRole !== "owner")) {
const embed = new EmbedBuilder()
.setTitle('Retrait Impossible')
.setDescription('❌ Vous n\'avez pas la permission de retirer de l\'argent de la banque de l\'équipe.')
.setTitle("Retrait Impossible")
.setDescription(
"❌ Vous n'avez pas la permission de retirer de l'argent de la banque de l'équipe.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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) => {
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);
resolve(row.teamId);
});
},
);
});
if (!team) {
const embed = new EmbedBuilder()
.setTitle('Retrait Impossible')
.setDescription('❌ Vous n\'êtes pas dans une team.')
.setTitle("Retrait Impossible")
.setDescription("❌ Vous n'êtes pas dans une team.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 {
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);
resolve(row.bank);
});
},
);
});
let amount;
if (args[0] === 'all') {
if (args[0] === "all") {
amount = bank;
} else if (args[0] > bank) {
const embed = new EmbedBuilder()
.setTitle('Retrait Impossible')
.setDescription(`❌ Votre team n'a pas assez d'argent dans la banque pour retirer cette somme.\n\n💰 Votre team a actuellement **${bank} coins** dans la banque.`)
.setTitle("Retrait Impossible")
.setDescription(
`❌ Votre team n'a pas assez d'argent dans la banque pour retirer cette somme.\n\n💰 Votre team a actuellement **${bank} coins** dans la banque.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 {
amount = args[0];
}
db.run(`UPDATE users SET pocket = pocket + ?, teamDroper = teamDroper - ? WHERE guildId = ? AND userId = ?`, [amount, amount, message.guild.id, message.author.id]);
db.run(`UPDATE teams SET bank = bank - ? WHERE id = ? AND guildId = ?`, [amount, team, message.guild.id]);
db.run(
`UPDATE users SET pocket = pocket + ?, teamDroper = teamDroper - ? WHERE guildId = ? AND userId = ?`,
[amount, amount, message.guild.id, message.author.id],
);
db.run(`UPDATE teams SET bank = bank - ? WHERE id = ? AND guildId = ?`, [
amount,
team,
message.guild.id,
]);
const embed = new EmbedBuilder()
.setTitle('Retrait Effectué')
.setDescription(`💰 Vous avez retiré **${amount}** coins de la banque de votre team.`)
.setTitle("Retrait Effectué")
.setDescription(
`💰 Vous avez retiré **${amount}** coins de la banque de votre team.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['tcadena'],
description: 'Ajoute un cadenas à une team. (max : 5, coût : 3reputation)',
emote: '🔒',
utilisation: '<team-id>',
aliases: ["tcadena"],
description: "Ajoute un cadenas à une team. (max : 5, coût : 3reputation)",
emote: "🔒",
utilisation: "<team-id>",
permission: 0,
async execute(message, args, client) {
const teamID = args[0].toLowerCase();
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);
resolve(row);
});
},
);
});
if (!team) {
const embed = new EmbedBuilder()
.setTitle('Ajout Impossible')
.setTitle("Ajout Impossible")
.setDescription(`❌ Veuillez indiquer l'id une team.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.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) {
const embed = new EmbedBuilder()
.setTitle('Ajout de cadenas impossible')
.setDescription(`❌ Vous n'avez pas assez de reputation. Il faut \`4\` reputation mais la team n'a que \`${teamRep}\` reputation`)
.setTitle("Ajout de cadenas impossible")
.setDescription(
`❌ Vous n'avez pas assez de reputation. Il faut \`4\` reputation mais la team n'a que \`${teamRep}\` reputation`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
db.run(`UPDATE teams SET reputation = reputation - 4 WHERE guildId =? AND Id =?`, [message.guild.id, teamID], (err) => {
if (err) {
console.log(`${err}`.red)
}
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
db.run(
`UPDATE teams SET reputation = reputation - 4 WHERE guildId =? AND Id =?`,
[message.guild.id, teamID],
(err) => {
if (err) {
console.log(`${err}`.red);
}
},
);
if (team.padlock < 5) {
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) {
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()
.setTitle('Ajout de cadenas réussi !')
.setDescription('Vous avez ajouter un cadenas à team `' + team.name + '`, cette team à maintement `' + team.padlock + 1 + '` cadenas !')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setImage()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else {
const embed = new EmbedBuilder()
.setTitle('Ajout de cadenas impossible')
.setDescription('`' + team.name + '` à le maximum de cadenas (`' + team.padlock + 1 + '` cadenas !)')
.setTitle("Ajout de cadenas impossible")
.setDescription(
"`" +
team.name +
"` à le maximum de cadenas (`" +
team.padlock +
1 +
"` cadenas !)",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setImage()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['tdep', 'tdepot', 'teamdep', 'teamdepot'],
description: 'Dépose de l\'argent dans la banque de votre team.',
emote: '💰',
utilisation: '<montant|all>',
aliases: ["tdep", "tdepot", "teamdep", "teamdepot"],
description: "Dépose de l'argent dans la banque de votre team.",
emote: "💰",
utilisation: "<montant|all>",
permission: 0,
async execute(message, args, client) {
if (args.length == 0) {
const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible')
.setDescription('❌ Vous devez spécifier un montant à déposer.')
.setTitle("Dépôt Impossible")
.setDescription("❌ Vous devez spécifier un montant à déposer.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (args[0] !== 'all' && isNaN(args[0])) {
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (args[0] !== "all" && isNaN(args[0])) {
const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible')
.setDescription('❌ Vous devez spécifier un montant valide à déposer.')
.setTitle("Dépôt Impossible")
.setDescription("❌ Vous devez spécifier un montant valide à déposer.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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) {
const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible')
.setDescription('❌ Vous devez déposer au moins 1 coin.')
.setTitle("Dépôt Impossible")
.setDescription("❌ Vous devez déposer au moins 1 coin.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
const pocket = await new Promise((resolve, reject) => {
db.get(`SELECT pocket FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT pocket FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row.pocket);
});
},
);
});
let amout;
if (args[0] === 'all') {
if (args[0] === "all") {
amout = pocket;
} else if (args[0] > pocket) {
const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible')
.setDescription('❌ Vous n\'avez pas assez d\'argent sur vous pour déposer cette somme.\n\n💰 Vous avez actuellement **' + pocket + 'coins** sur vous.')
.setTitle("Dépôt Impossible")
.setDescription(
"❌ Vous n'avez pas assez d'argent sur vous pour déposer cette somme.\n\n💰 Vous avez actuellement **" +
pocket +
"coins** sur vous.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 {
amout = args[0];
}
const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
});
},
);
});
if (!team) {
const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible')
.setDescription('❌ Vous n\'êtes pas dans une team.')
.setTitle("Dépôt Impossible")
.setDescription("❌ Vous n'êtes pas dans une team.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 {
db.run(`UPDATE users SET pocket = pocket - ?, teamDroper = teamDroper + ? WHERE guildId = ? AND userId = ?`, [amout, amout, message.guild.id, message.author.id]);
db.run(`UPDATE teams SET bank = bank + ? WHERE guildId = ? AND id = ?`, [amout, message.guild.id, team.id]);
db.run(
`UPDATE users SET pocket = pocket - ?, teamDroper = teamDroper + ? WHERE guildId = ? AND userId = ?`,
[amout, amout, message.guild.id, message.author.id],
);
db.run(`UPDATE teams SET bank = bank + ? WHERE guildId = ? AND id = ?`, [
amout,
message.guild.id,
team.id,
]);
const embed = new EmbedBuilder()
.setTitle('Dépôt Effectué')
.setDescription('💰 Vous avez déposé **' + amout + '** coins dans la banque de votre team.')
.setTitle("Dépôt Effectué")
.setDescription(
"💰 Vous avez déposé **" +
amout +
"** coins dans la banque de votre team.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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 db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['t', 'tinfo', 'teaminfo'],
description: 'Affiche les informations de votre team.',
emote: '🛡️',
utilisation: '',
aliases: ["t", "tinfo", "teaminfo"],
description: "Affiche les informations de votre team.",
emote: "🛡️",
utilisation: "",
permission: 0,
async execute(message, args, client) {
const member = message.mentions.members.first() || message.member;
const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [message.guild.id, message.guild.id, member.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);
resolve(row);
});
},
);
});
if (!team) {
const embed = new EmbedBuilder()
.setTitle('🛡️ Informations de team')
.setDescription('<@' + member.id + '> n\'est actuellement dans aucune une team.')
.setTitle("🛡️ Informations de team")
.setDescription(
"<@" + member.id + "> n'est actuellement dans aucune une team.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.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 {
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);
resolve(row);
},
);
});
});
let Aname
let Aname;
if (alliance) {
Aname = alliance.name
}
else {
Aname = 'aucune alliance'
Aname = alliance.name;
} else {
Aname = "aucune alliance";
}
const memberlist = await new Promise((resolve, reject) => {
db.all(`SELECT userId, teamRole FROM users WHERE guildId = ? AND teamId = ?`, [message.guild.id, team.id], (err, rows) => {
db.all(
`SELECT userId, teamRole FROM users WHERE guildId = ? AND teamId = ?`,
[message.guild.id, team.id],
(err, rows) => {
if (err) reject(err);
resolve(rows);
},
);
});
});
let CadenaS = "🔓"
let CadenaS = "🔓";
if (team.padlock == 5) {
CadenaS = "🔐🔐🔐🔐🔐"
CadenaS = "🔐🔐🔐🔐🔐";
}
if (team.padlock == 4) {
CadenaS = "🔐🔐🔐🔐"
CadenaS = "🔐🔐🔐🔐";
}
if (team.padlock == 3) {
CadenaS = "🔐🔐🔐"
CadenaS = "🔐🔐🔐";
}
if (team.padlock == 2) {
CadenaS = "🔐🔐"
CadenaS = "🔐🔐";
}
if (team.padlock == 1) {
CadenaS = "🔐"
CadenaS = "🔐";
}
//////////////////////////////////////////////////// TEAM DROPER ///////////////////////////////////////////////////////////////////
data = await new Promise((resolve, reject) => {
db.all(`SELECT userId, teamDroper AS coins FROM users WHERE teamId = ? ORDER BY coins DESC LIMIT 10`, [team.id], (err, rows) => {
db.all(
`SELECT userId, teamDroper AS coins FROM users WHERE teamId = ? ORDER BY coins DESC LIMIT 10`,
[team.id],
(err, rows) => {
if (err) reject(err);
resolve(rows);
},
);
});
});
let leaderboard = data.map((row, i) => {
let leaderboard = data
.map((row, i) => {
let position;
switch (i) {
case 0:
position = ':first_place:';
position = ":first_place:";
break;
case 1:
position = ':second_place:';
position = ":second_place:";
break;
case 2:
position = ':third_place:';
position = ":third_place:";
break;
default:
position = `**${i + 1}.**`;
}
return `${position} <@${row.userId}> - \`${row.coins}\`coins donné(s)`;
}).join('\n');
})
.join("\n");
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
const embed = new EmbedBuilder()
.setTitle('🛡️ Informations de `' + team.name + '`:')
.setDescription(`**Id:** \`${team.id}\`\n**Description:** \`${team.description}\`\n**Banque:** \`${team.bank}\`coins\n**Niveau:** \`${team.level}\`\n**Reputation:** \`${team.reputation}\`\n\n**Soldats:** \`${team.soldiers}\`\n**Soldats blessés:** \`${team.woundedSoldiers}\`\n**Niveau du camp:** \`${team.campLevel}\`\n**Tourelles:** \`${team.turrets}\`\n**Cadenas:** \`${CadenaS}\`\n\n\nAlliance : ${Aname}\n\n\n**Membres (\`${memberlist.length}\`):**\n${memberlist.map(member => `**${member.teamRole}:** <@${member.userId}>`).join('\n')}\n`)
.setTitle("🛡️ Informations de `" + team.name + "`:")
.setDescription(
`**Id:** \`${team.id}\`\n**Description:** \`${team.description}\`\n**Banque:** \`${team.bank}\`coins\n**Niveau:** \`${team.level}\`\n**Reputation:** \`${team.reputation}\`\n\n**Soldats:** \`${team.soldiers}\`\n**Soldats blessés:** \`${team.woundedSoldiers}\`\n**Niveau du camp:** \`${team.campLevel}\`\n**Tourelles:** \`${team.turrets}\`\n**Cadenas:** \`${CadenaS}\`\n\n\nAlliance : ${Aname}\n\n\n**Membres (\`${memberlist.length}\`):**\n${memberlist.map((member) => `**${member.teamRole}:** <@${member.userId}>`).join("\n")}\n`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
const embedTopDonnateur = new EmbedBuilder()
.setTitle('**Les 10 meilleurs donnateurs de la team sont :**')
.setTitle("**Les 10 meilleurs donnateurs de la team sont :**")
.setDescription(`${leaderboard}`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
const urlRegex1 = /(https?:\/\/[^\s]+)/g;
if (team.icon && urlRegex1.test(team.icon)) {
@@ -116,7 +148,10 @@ module.exports = {
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 db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const {
EmbedBuilder,
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['tinvite'],
description: 'Invite un utilisateur à votre team.',
emote: '🛡️',
utilisation: '<@user>',
aliases: ["tinvite"],
description: "Invite un utilisateur à votre team.",
emote: "🛡️",
utilisation: "<@user>",
permission: 0,
async execute(message, args, client) {
@@ -14,13 +19,16 @@ module.exports = {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🛡️ Invitation à l\'équipe')
.setDescription('Veuillez mentionner un utilisateur à inviter.')
.setTitle("🛡️ Invitation à l'équipe")
.setDescription("Veuillez mentionner un utilisateur à inviter.")
.setColor(await embedColor(message.author.id, message.guild.id))
.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({
embeds: [
new EmbedBuilder()
.setTitle('🛡️ Invitation à l\'équipe')
.setDescription('Utilisateur non trouvé.')
.setTitle("🛡️ Invitation à l'équipe")
.setDescription("Utilisateur non trouvé.")
.setColor(await embedColor(message.author.id, message.guild.id))
.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) => {
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);
resolve(row);
});
},
);
});
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) => {
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);
resolve(row);
});
},
);
});
if (!user || user.teamRole !== 'owner' || user.teamRole !== 'officer') {
if (!user || user.teamRole !== "owner" || user.teamRole !== "officer") {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🛡️ Invitation à l\'équipe')
.setDescription('Vous n\'êtes pas administrateur de cette équipe.')
.setTitle("🛡️ Invitation à l'équipe")
.setDescription("Vous n'êtes pas administrateur de cette équipe.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
.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()
.setCustomId('accept')
.setLabel('Rejoindre la team')
.setCustomId("accept")
.setLabel("Rejoindre la team")
.setStyle(ButtonStyle.Success);
const row = new ActionRowBuilder()
.addComponents(accept);
const row = new ActionRowBuilder().addComponents(accept);
const embed = new EmbedBuilder()
.setTitle('🛡️ Invitation à l\'équipe')
.setDescription(`<@${userToInvite.id}> tu as été invité à rejoindre l'équipe de <@${message.author.id}>. Pour accepter l'invitation, clique sur le bouton.`)
.setTitle("🛡️ Invitation à l'équipe")
.setDescription(
`<@${userToInvite.id}> tu as été invité à rejoindre l'équipe de <@${message.author.id}>. Pour accepter l'invitation, clique sur le bouton.`,
)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
(async () => {
const sentMessage = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } });
const sentMessage = await message.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
});
const filter = i => i.customId === 'accept' && i.user.id === userToInvite.id;
const collector = sentMessage.createMessageComponentCollector({ filter, time: 120000 });
collector.on('collect', async (interaction) => {
db.run(`UPDATE users SET teamId = ?, teamRole = ? WHERE guildId = ? AND userId = ?`, [user.teamId, 'membre', message.guild.id, userToInvite.id], (err) => {
const filter = (i) =>
i.customId === "accept" && i.user.id === userToInvite.id;
const collector = sentMessage.createMessageComponentCollector({
filter,
time: 120000,
});
collector.on("collect", async (interaction) => {
db.run(
`UPDATE users SET teamId = ?, teamRole = ? WHERE guildId = ? AND userId = ?`,
[user.teamId, "membre", message.guild.id, userToInvite.id],
(err) => {
if (err) {
return message.reply('Une erreur est survenue lors de l\'invitation de l\'utilisateur.');
return message.reply(
"Une erreur est survenue lors de l'invitation de l'utilisateur.",
);
}
const embed = new EmbedBuilder()
.setTitle('🛡️ Invitation à l\'équipe')
.setTitle("🛡️ Invitation à l'équipe")
.setDescription(`<@${userToInvite.id}> rejoint l\'équipe.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
sentMessage.edit({ embeds: [embed], components: [], allowedMentions: { repliedUser: false } });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
sentMessage.edit({
embeds: [embed],
components: [],
allowedMentions: { repliedUser: false },
});
},
);
});
})();
});
+83 -41
View File
@@ -1,101 +1,143 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const embedColor = require('../../fonctions/embedColor.js');
const db = require('../../fonctions/database.js');
const {
EmbedBuilder,
ButtonStyle,
ButtonBuilder,
ActionRowBuilder,
} = require("discord.js");
const embedColor = require("../../fonctions/embedColor.js");
const db = require("../../fonctions/database.js");
module.exports = {
aliases: ['teamleave'],
description: 'Quitte une team.',
emote: '🛡️',
utilisation: '',
aliases: ["teamleave"],
description: "Quitte une team.",
emote: "🛡️",
utilisation: "",
permission: 0,
async execute(message, args, client) {
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) {
reject(err);
} else {
if (row.teamId === null ) {
embedColor(message.author.id, message.guild.id).then(color => {
if (row.teamId === null) {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle('🛡️ Quitter une team')
.setTitle("🛡️ Quitter une team")
.setDescription(`Vous n'êtes dans aucune team.`)
.setColor(color)
.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 {
resolve();
}
}
});
},
);
});
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) {
reject(err);
} else {
if (row.teamRole === 'owner') {
embedColor(message.author.id, message.guild.id).then(color => {
if (row.teamRole === "owner") {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.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.`)
.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.`,
)
.setColor(color)
.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 {
resolve();
}
}
},
);
});
});
const embed = new EmbedBuilder()
.setTitle('🛡️ Quitter une team')
.setTitle("🛡️ Quitter une team")
.setDescription(`Êtes-vous sûr de vouloir quitter votre team ?`)
.setColor(await embedColor(message.author.id, message.guild.id))
.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()
.setCustomId('confirme')
.setLabel('✅')
.setCustomId("confirme")
.setLabel("✅")
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(confirmeButton);
const row = new ActionRowBuilder().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 collector = messageTeam.createMessageComponentCollector({ filter, time: 60000 });
collector.on('collect', async i => {
if (i.customId === 'confirme') {
db.run(`UPDATE users SET teamId = NULL, teamRole = NULL WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], err => {
const filter = (i) => i.user.id === message.author.id;
const collector = messageTeam.createMessageComponentCollector({
filter,
time: 60000,
});
collector.on("collect", async (i) => {
if (i.customId === "confirme") {
db.run(
`UPDATE users SET teamId = NULL, teamRole = NULL WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err) => {
if (err) {
console.error(err);
return i.reply('Une erreur est survenue.');
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()
.setTitle('🛡️ Quitter une team')
.setTitle("🛡️ Quitter une team")
.setDescription(`Vous avez quitté votre team.`)
.setColor(color)
.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: [] });
});
});
},
);
}
});
}
},
};
+83 -38
View File
@@ -1,83 +1,128 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
const { EmbedBuilder } = require("discord.js");
const db = require("../../fonctions/database.js");
const embedColor = require("../../fonctions/embedColor.js");
module.exports = {
aliases: ['teamrep'],
description: 'Ajoute un point de reputation à une team.',
emote: '',
utilisation: '<team-id>',
aliases: ["teamrep"],
description: "Ajoute un point de reputation à une team.",
emote: "",
utilisation: "<team-id>",
permission: 0,
async execute(message, args, client) {
if (!args[0]) {
const embed = new EmbedBuilder()
.setTitle('Ajout Impossible')
.setTitle("Ajout Impossible")
.setDescription(`❌ Veuillez indiquer l'id une team.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.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 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);
resolve(row);
},
);
});
});
const lastTrep = user.lastTrep
const lastTrep = user.lastTrep;
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 (!row) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ La team spécifié n\'existe pas.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTitle("Erreur")
.setDescription("❌ La team spécifié n'existe pas.")
.setColor(
await embedColor(message.author.id, message.guild.id),
)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
resolve(parseInt(row.reputation));
});
},
);
});
if (lastTrep > Date.now() - 5400000) {
const embed = new EmbedBuilder()
.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.`)
.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.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
db.run(`UPDATE users SET lastTrep =? WHERE guildId =? AND userId =?`, [Date.now(), message.guild.id, message.author.id], (err) => {
if (err) {
console.log(`${err}`.red)
}
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
db.run(`UPDATE teams SET reputation = reputation + 1 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 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()
.setTitle('Reputation ajouté !')
.setDescription('Vous avez ajouter une reputation à la team `' + team.name + '`, qui a maintement `' + (team.reputation + 1) + '` reputation !')
.setTitle("Reputation ajouté !")
.setDescription(
"Vous avez ajouter une reputation à la team `" +
team.name +
"`, qui a maintement `" +
(team.reputation + 1) +
"` reputation !",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
+11 -5
View File
@@ -1,12 +1,18 @@
const { Events } = require('discord.js');
const db = require('../fonctions/database.js');
const { Events } = require("discord.js");
const db = require("../fonctions/database.js");
module.exports = {
name: Events.GuildCreate,
async execute(guild) {
db.run(`INSERT OR IGNORE INTO config (guildId, name, value) VALUES (?, ?, ?)`, [guild.id, 'prefix', '&']);
guild.members.cache.forEach(member => {
db.run(`INSERT OR IGNORE INTO users (guildId, userId) VALUES (?, ?)`, [guild.id, member.id]);
db.run(
`INSERT OR IGNORE INTO config (guildId, name, value) VALUES (?, ?, ?)`,
[guild.id, "prefix", "&"],
);
guild.members.cache.forEach((member) => {
db.run(`INSERT OR IGNORE INTO users (guildId, userId) VALUES (?, ?)`, [
guild.id,
member.id,
]);
});
},
};
+6 -3
View File
@@ -1,9 +1,12 @@
const { Events } = require('discord.js');
const db = require('../fonctions/database.js');
const { Events } = require("discord.js");
const db = require("../fonctions/database.js");
module.exports = {
name: Events.GuildMemberAdd,
async execute(member) {
db.run(`INSERT INTO users (guildId, userId) VALUES (?, ?)`, [member.guild.id, member.id]);
db.run(`INSERT INTO users (guildId, userId) VALUES (?, ?)`, [
member.guild.id,
member.id,
]);
},
};
+41 -15
View File
@@ -1,7 +1,7 @@
const { Message, Events } = require("discord.js");
const db = require('../fonctions/database.js');
var loggT = require('../loggerT.js');
var loggE = require('../loggerE.js');
const db = require("../fonctions/database.js");
var loggT = require("../loggerT.js");
var loggE = require("../loggerE.js");
const getPermissionLevel = require("../fonctions/getPermissionLevel.js");
module.exports = {
@@ -9,14 +9,24 @@ module.exports = {
async execute(message, client) {
if (message.author.bot) return;
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
});
if (user.blacklist == true) { return }
if (user.blacklist == true) {
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)) {
const args = message.content.slice(prefix.length).trim().split(/ +/);
const commandName = args.shift()?.toLowerCase();
@@ -24,22 +34,38 @@ module.exports = {
const command = client.commands.get(commandName);
if (!command) return;
const permissionLevel = await getPermissionLevel(message.guild.id, 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.");
const permissionLevel = await getPermissionLevel(
message.guild.id,
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 {
command.execute(message, args, client);
console.log(`[${prefix}}] ${message.guild.name} | ${message.author.tag} | ${command.name}`.blue)
loggT(`[${prefix}] ${message.guild.name} | ${message.author.tag} | ${command.name}`)
console.log(
`[${prefix}}] ${message.guild.name} | ${message.author.tag} | ${command.name}`
.blue,
);
loggT(
`[${prefix}] ${message.guild.name} | ${message.author.tag} | ${command.name}`,
);
} catch (error) {
console.error(error);
loggE(error)
loggE(error);
message.reply("Erreur lors de l'exécution de la commande");
}
} else if (message.content === `<@!${client.user.id}>` || message.content === `<@${client.user.id}>`) {
} else if (
message.content === `<@!${client.user.id}>` ||
message.content === `<@${client.user.id}>`
) {
message.reply(`Mon prefix est \`${prefix}\``);
}
}
},
};
+19 -6
View File
@@ -10,12 +10,18 @@ module.exports = {
if (message.author.bot) return;
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
});
if (user.blacklist == true) { return }
if (user.blacklist == true) {
return;
}
//////////////////////////////////////////////////////////////////
/////////////////////////// xp systeme ///////////////////////////
@@ -37,7 +43,6 @@ module.exports = {
]);
}
//////////////////////////////////////////////////////////////////
/////////////////////////// lvl systeme //////////////////////////
//////////////////////////////////////////////////////////////////
@@ -45,12 +50,20 @@ module.exports = {
if (user.xp >= 100 * user.lvl) {
db.run(
`UPDATE users SET xp = xp - ?, lvl = lvl + 1, pocket = pocket + ?, reputation = reputation + ? WHERE guildId = ? AND userId = ?`,
[100 * user.lvl, ((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()
.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));
message.author.send({ embeds: [embedlvl] });
+119 -75
View File
@@ -1,65 +1,108 @@
const { Events, ActivityType } = require('discord.js');
const db = require('../fonctions/database.js');
var loggT = require('../loggerT.js');
var loggE = require('../loggerE.js');
const { Events, ActivityType } = require("discord.js");
const db = require("../fonctions/database.js");
var loggT = require("../loggerT.js");
var loggE = require("../loggerE.js");
module.exports = {
name: Events.ClientReady,
async execute(client) {
console.log(`[READY] ${client.user.tag} est prêt ||| ${client.guilds.cache.size} serveurs | ${client.guilds.cache.reduce((acc, guild) => acc + guild.memberCount, 0)} utilisateurs\n`.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(
`[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,
);
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({
activities: [{
name: '/azelie',
activities: [
{
name: "/azelie",
type: ActivityType.Streaming,
url: 'https://twitch.tv/tuturp33'
}],
status: 'online'
url: "https://twitch.tv/tuturp33",
},
],
status: "online",
});
console.log('setPresence : OK')
console.log("setPresence : OK");
client.guilds.cache.forEach(guild => {
console.log('BD update : ...')
db.run(`INSERT OR IGNORE INTO config (guildId, name, value) VALUES (?, ?, ?)`, [guild.id, 'prefix', '&']);
guild.members.cache.forEach(member => {
db.run(`INSERT OR IGNORE INTO users (guildId, userId) VALUES (?, ?)`, [guild.id, member.id]);
client.guilds.cache.forEach((guild) => {
console.log("BD update : ...");
db.run(
`INSERT OR IGNORE INTO config (guildId, name, value) VALUES (?, ?, ?)`,
[guild.id, "prefix", "&"],
);
guild.members.cache.forEach((member) => {
db.run(`INSERT OR IGNORE INTO users (guildId, userId) VALUES (?, ?)`, [
guild.id,
member.id,
]);
});
console.log('BD update : OK')
console.log("BD update : OK");
});
setInterval(async () => {
console.log('Recompense vocal : ...')
client.guilds.cache.forEach(guild => {
guild.members.cache.filter(member => member.voice.channel).forEach(member => {
setInterval(
async () => {
console.log("Recompense vocal : ...");
client.guilds.cache.forEach((guild) => {
guild.members.cache
.filter((member) => member.voice.channel)
.forEach((member) => {
if (member.voice.selfMute == true) {
db.run('UPDATE users SET pocket = pocket + 50 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
db.run('UPDATE users SET xp = xp + 5 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
db.run(
"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 {
db.run('UPDATE users SET pocket = pocket + 100 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
db.run('UPDATE users SET xp = xp + 10 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
db.run(
"UPDATE users SET pocket = pocket + 100 WHERE guildId = ? AND userId = ?",
[guild.id, member.id],
);
db.run(
"UPDATE users SET xp = xp + 10 WHERE guildId = ? AND userId = ?",
[guild.id, member.id],
);
}
});
guild.members.cache.filter(member => member.voice.channel && member.voice.streaming).forEach(member => {
db.run('UPDATE users SET pocket = pocket + 200 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
db.run('UPDATE users SET xp = xp + 20 WHERE guildId = ? AND userId = ?', [guild.id, member.id]);
guild.members.cache
.filter((member) => member.voice.channel && member.voice.streaming)
.forEach((member) => {
db.run(
"UPDATE users SET pocket = pocket + 200 WHERE guildId = ? AND userId = ?",
[guild.id, member.id],
);
db.run(
"UPDATE users SET xp = xp + 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,
);
});
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(async () => {
console.log('Bâtiment : ...')
setInterval(
async () => {
console.log("Bâtiment : ...");
const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM teams`, (err, row) => {
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]);
console.log('Bâtiment : OK')
}, 1 * 60 * 1000)
console.log("Bâtiment : OK");
},
1 * 60 * 1000,
);
//AntiCrash
process.on('unhandledRejection', (error) => {
if (error.code == "10064") return
if (error.code == "10008") return
console.log(' [antiCrash] :: Unhandled Rejection/Catch'.red);
process.on("unhandledRejection", (error) => {
if (error.code == "10064") return;
if (error.code == "10008") return;
console.log(" [antiCrash] :: Unhandled Rejection/Catch".red);
console.log(`${error}`.grey);
loggE(error)
loggE(error);
});
process.on("uncaughtException", (error, origin) => {
if (error.code == "10064") return
if (error.code == "10008") return
console.log(' [antiCrash] :: Uncaught Exception/Catch'.red);
if (error.code == "10064") return;
if (error.code == "10008") return;
console.log(" [antiCrash] :: Uncaught Exception/Catch".red);
console.log(`${error}`.grey);
console.log('Information supplémentaire:', origin);
loggE(error)
console.log("Information supplémentaire:", origin);
loggE(error);
});
process.on('uncaughtExceptionMonitor', (error, origin) => {
if (error.code == "10064") return
if (error.code == "10008") return
console.log(' [antiCrash] :: Uncaught Exception Monitor/Catch'.red);
process.on("uncaughtExceptionMonitor", (error, origin) => {
if (error.code == "10064") return;
if (error.code == "10008") return;
console.log(" [antiCrash] :: Uncaught Exception Monitor/Catch".red);
console.log(`${error}`.grey);
console.log('Information supplémentaire:', origin);
loggE(error)
console.log("Information supplémentaire:", origin);
loggE(error);
});
process.on('beforeExit', (code) => {
if (error.code == "10064") return
if (error.code == "10008") return
console.log(' [antiCrash] :: Before Exit'.red);
console.log('Code de sortie:', code);
process.on("beforeExit", (code) => {
if (error.code == "10064") return;
if (error.code == "10008") return;
console.log(" [antiCrash] :: Before Exit".red);
console.log("Code de sortie:", code);
});
process.on('exit', (code) => {
if (error.code == "10064") return
if (error.code == "10008") return
console.log(' [antiCrash] :: Exit'.red);
console.log('Code de sortie:', code);
process.on("exit", (code) => {
if (error.code == "10064") return;
if (error.code == "10008") return;
console.log(" [antiCrash] :: Exit".red);
console.log("Code de sortie:", code);
});
},
};
+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 (
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) {
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);
resolve(row);
});
},
);
});
let embedColor = user.embed;
if (embedColor === 'random') {
const colors = ['red', 'orange', 'yellow', 'green', 'blue', 'purple', 'brown', 'black', 'white'];
if (embedColor === "random") {
const colors = [
"red",
"orange",
"yellow",
"green",
"blue",
"purple",
"brown",
"black",
"white",
];
embedColor = colors[Math.floor(Math.random() * colors.length)];
}
if (!embedColor) {
embedColor = '#FFD700';
} else if (embedColor === 'red') {
embedColor = '#FF0000';
} else if (embedColor === 'orange') {
embedColor = '#FFA500';
} else if (embedColor === 'yellow') {
embedColor = '#FFFF00';
} else if (embedColor === 'green') {
embedColor = '#008000';
} else if (embedColor === 'blue') {
embedColor = '#0000FF';
} else if (embedColor === 'purple') {
embedColor = '#800080';
} else if (embedColor === 'brown') {
embedColor = '#A52A2A';
} else if (embedColor === 'black') {
embedColor = '#000000';
} else if (embedColor === 'white') {
embedColor = '#FFFFFF';
embedColor = "#FFD700";
} else if (embedColor === "red") {
embedColor = "#FF0000";
} else if (embedColor === "orange") {
embedColor = "#FFA500";
} else if (embedColor === "yellow") {
embedColor = "#FFFF00";
} else if (embedColor === "green") {
embedColor = "#008000";
} else if (embedColor === "blue") {
embedColor = "#0000FF";
} else if (embedColor === "purple") {
embedColor = "#800080";
} else if (embedColor === "brown") {
embedColor = "#A52A2A";
} else if (embedColor === "black") {
embedColor = "#000000";
} else if (embedColor === "white") {
embedColor = "#FFFFFF";
}
return embedColor;
}
};
+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) {
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) => {
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);
resolve(rows);
});
},
);
});
const highestPermission = Math.max(...perms.map(perm => perm.permission));
const highestPermission = Math.max(...perms.map((perm) => perm.permission));
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) {
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);
resolve(row);
});
},
);
});
return prefix ? prefix.value : '&';
}
return prefix ? prefix.value : "&";
};
+6 -6
View File
@@ -1,5 +1,5 @@
const fs = require('fs');
const path = require('path');
const fs = require("fs");
const path = require("path");
module.exports = function loadCommands(client, dir) {
let count = 0;
@@ -7,15 +7,15 @@ module.exports = function loadCommands(client, dir) {
const filePath = path.join(__dirname, dir, file);
if (fs.statSync(filePath).isDirectory()) {
count += loadCommands(client, path.join(dir, file));
} else if (file.endsWith('.js') || file.endsWith('.ts')) {
} else if (file.endsWith(".js") || file.endsWith(".ts")) {
try {
delete require.cache[require.resolve(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.category) {
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;
client.commands.set(fileName, command);
@@ -32,4 +32,4 @@ module.exports = function loadCommands(client, dir) {
}
});
return count;
}
};
+5 -5
View File
@@ -1,5 +1,5 @@
const fs = require('fs');
const path = require('path');
const fs = require("fs");
const path = require("path");
module.exports = function loadEvents(client, dir) {
let count = 0;
@@ -7,10 +7,10 @@ module.exports = function loadEvents(client, dir) {
const filePath = path.join(__dirname, dir, file);
if (fs.statSync(filePath).isDirectory()) {
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)];
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
count++;
} else {
@@ -19,4 +19,4 @@ module.exports = function loadEvents(client, dir) {
}
});
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) {
try {
let data = fs.readFileSync('logs/ERROR.txt', 'utf8');
const log = data.split('\n');
let data = fs.readFileSync("logs/ERROR.txt", "utf8");
const log = data.split("\n");
log.push(...LOG);
data = log.join('\n');
fs.writeFileSync('logs/ERROR.txt', data);
data = log.join("\n");
fs.writeFileSync("logs/ERROR.txt", data);
} catch (err) {
console.log(err);
}
@@ -20,19 +20,19 @@ function saveLOGE(LOG) {
module.exports = function loggE(erreur) {
const config = require("./config.json");
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ TIME /////////////////////////////////////////////////////////////////////////////
const d = new Date()
var jours = d.getDate().toString().padStart(2, "0")
var mois = d.getMonth().toString().padStart(2, "0") + 1
var année = d.getFullYear().toString().padStart(2, "0")
var heures = d.getHours().toString().padStart(2, "0")
var minutes = d.getMinutes().toString().padStart(2, "0")
var secondes = d.getSeconds().toString().padStart(2, "0")
var milliseconds = d.getMilliseconds().toString().padStart(3, "0")
const time = ` ${jours}/${mois}/${année} =>> ${heures}h ${minutes}m ${secondes}s ${milliseconds}ms `
const d = new Date();
var jours = d.getDate().toString().padStart(2, "0");
var mois = d.getMonth().toString().padStart(2, "0") + 1;
var année = d.getFullYear().toString().padStart(2, "0");
var heures = d.getHours().toString().padStart(2, "0");
var minutes = d.getMinutes().toString().padStart(2, "0");
var secondes = d.getSeconds().toString().padStart(2, "0");
var milliseconds = d.getMilliseconds().toString().padStart(3, "0");
const time = ` ${jours}/${mois}/${année} =>> ${heures}h ${minutes}m ${secondes}s ${milliseconds}ms `;
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ CODE DE LOG ///////////////////////////////////////////////////////////////////////
const text = erreur
const ERROR = `[ERROR] || ${time} || ${text}`
const text = erreur;
const ERROR = `[ERROR] || ${time} || ${text}`;
const LOG = [];
LOG.push(ERROR);
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) {
try {
let data = fs.readFileSync('logs/TEXT.txt', 'utf8');
const log = data.split('\n');
let data = fs.readFileSync("logs/TEXT.txt", "utf8");
const log = data.split("\n");
log.push(...LOG);
data = log.join('\n');
fs.writeFileSync('logs/TEXT.txt', data);
data = log.join("\n");
fs.writeFileSync("logs/TEXT.txt", data);
} catch (err) {
console.log(err);
}
@@ -21,31 +21,30 @@ function saveLOGT(LOG) {
module.exports = function loggT(msg) {
const config = require("./config.json");
if (config.test == true) {
return
return;
}
if (!msg == "\n" || !msg == "\n\n") {
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ TIME /////////////////////////////////////////////////////////////////////////////
const d = new Date()
var jours = d.getDate().toString().padStart(2, "0")
var mois = d.getMonth().toString().padStart(2, "0")
var année = d.getFullYear().toString().padStart(2, "0")
var heures = d.getHours().toString().padStart(2, "0")
var minutes = d.getMinutes().toString().padStart(2, "0")
var secondes = d.getSeconds().toString().padStart(2, "0")
var milliseconds = d.getMilliseconds().toString().padStart(3, "0")
const time = ` ${jours}/${mois}/${année} =>> ${heures}h ${minutes}m ${secondes}s ${milliseconds}ms `
const d = new Date();
var jours = d.getDate().toString().padStart(2, "0");
var mois = d.getMonth().toString().padStart(2, "0");
var année = d.getFullYear().toString().padStart(2, "0");
var heures = d.getHours().toString().padStart(2, "0");
var minutes = d.getMinutes().toString().padStart(2, "0");
var secondes = d.getSeconds().toString().padStart(2, "0");
var milliseconds = d.getMilliseconds().toString().padStart(3, "0");
const time = ` ${jours}/${mois}/${année} =>> ${heures}h ${minutes}m ${secondes}s ${milliseconds}ms `;
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ CODE DE LOG ///////////////////////////////////////////////////////////////////////
const text = msg
const MSG_T = `[TEXT] || ${time} || ${text}`
const text = msg;
const MSG_T = `[TEXT] || ${time} || ${text}`;
const LOG = [];
LOG.push(MSG_T);
saveLOGT(LOG);
} else {
const MSG_T = `\n\n`;
const LOG = [];
LOG.push(MSG_T);
saveLOGT(LOG);
}
else {
const MSG_T = `\n\n`
const LOG = [];
LOG.push(MSG_T);
saveLOGT(LOG);
}
}
};
+9 -9
View File
@@ -1,19 +1,19 @@
require('dotenv').config();
require("dotenv").config();
const { Client, IntentsBitField, Collection } = require("discord.js");
const loadCommands = require("./fonctions/loadCommands");
const loadEvents = require("./fonctions/loadEvents");
const client = new Client({intents: new IntentsBitField(3276799)});
const color = require('colors')
var loggT = require('./loggerT.js');
var loggE = require('./loggerE.js');
const client = new Client({ intents: new IntentsBitField(3276799) });
const color = require("colors");
var loggT = require("./loggerT.js");
var loggE = require("./loggerE.js");
client.events = new Collection();
client.commands = new Collection();
client.config = require("./config.json");
console.log(`${loadEvents(client, '..\\events')} events loaded`.grey);
console.log(`${loadCommands(client, '..\\commands')} commands loaded`.grey);
loggT(`${loadEvents(client, '..\\events')} events loaded`)
loggT(`${loadCommands(client, '..\\commands')} commands loaded`)
console.log(`${loadEvents(client, "..\\events")} events loaded`.grey);
console.log(`${loadCommands(client, "..\\commands")} commands loaded`.grey);
loggT(`${loadEvents(client, "..\\events")} events loaded`);
loggT(`${loadCommands(client, "..\\commands")} commands loaded`);
client.login(process.env.TOKEN);