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
+175 -100
View File
@@ -1,158 +1,233 @@
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) => {
if (err) reject(err);
resolve(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) => {
if (err) {
reject(err);
} else {
if (row.teamRole !== 'owner') {
embedColor(message.author.id, message.guild.id).then(color => {
const embed = new EmbedBuilder()
.setTitle('🛡️ Création de alliance')
.setDescription(`Vous n'êtes pas proprietaire d'une team.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
});
} else if (row.alliancesId) {
embedColor(message.author.id, message.guild.id).then(color => {
const embed = new EmbedBuilder()
.setTitle('🛡️ Création de alliance')
.setDescription(`Votre team a deja une alliance.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
});
} else if (row.pocket < 3000) {
embedColor(message.author.id, message.guild.id).then(color => {
const embed = new EmbedBuilder()
.setTitle('🛡️ Création de alliance')
.setDescription(`Vous n'avez pas assez de fonds pour créer une alliance. Vous avez besoin de 3000coins.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
});
db.get(
`SELECT * FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) {
reject(err);
} else {
db.run(`UPDATE users SET pocket = pocket - 3000 WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id]);
resolve();
if (row.teamRole !== "owner") {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle("🛡️ Création de alliance")
.setDescription(`Vous n'êtes pas proprietaire d'une team.`)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
} else if (row.alliancesId) {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle("🛡️ Création de alliance")
.setDescription(`Votre team a deja une alliance.`)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
} else if (row.pocket < 3000) {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle("🛡️ Création de alliance")
.setDescription(
`Vous n'avez pas assez de fonds pour créer une alliance. Vous avez besoin de 3000coins.`,
)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
} else {
db.run(
`UPDATE users SET pocket = pocket - 3000 WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
);
resolve();
}
}
}
});
},
);
});
const embed = new EmbedBuilder()
.setTitle('🛡️ Création d\'alliance')
.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) => {
if (err) {
reject(err);
} else {
exists = !!row;
if (exists) {
increment = increment + 1;
id = idBase + increment;
db.get(
`SELECT * FROM alliances WHERE id = ? AND guildId = ?`,
[id, message.guild.id],
(err, row) => {
if (err) {
reject(err);
} 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]);
exists = !!row;
if (exists) {
increment = increment + 1;
id = idBase + increment;
} else {
db.run(
`INSERT INTO alliances (guildId, id, name, description, creator) VALUES (?, ?, ?, ?, ?)`,
[
message.guild.id,
id,
allianceName,
allianceDescription,
message.author.id,
],
);
db.run(
`UPDATE teams SET alliancesId = ? WHERE guildId = ? AND id = ?`,
[id, message.guild.id, team.id],
);
}
resolve();
}
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();
}
});
}
});
}
};
},
};
+139 -68
View File
@@ -1,104 +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: ['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) => {
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 teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`,
[message.guild.id, message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
});
});
},
);
});
const alliance = await new Promise((resolve, reject) => {
db.get(
`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM teams WHERE guildId = ? AND id = ?)`,
[message.guild.id, message.guild.id, team.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
if (!alliance) {
const embed = new EmbedBuilder()
.setTitle('🛡️ Suppression de l\'alliance')
.setDescription('Vous n\'êtes actuellement pas dans une alliance.')
.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(
new ButtonBuilder()
.setCustomId('confirm_delete')
.setLabel('Confirmer')
.setStyle(ButtonStyle.Danger),
new ButtonBuilder()
.setCustomId('cancel_delete')
.setLabel('Annuler')
.setStyle(ButtonStyle.Secondary)
);
const row = new ActionRowBuilder().addComponents(
new ButtonBuilder()
.setCustomId("confirm_delete")
.setLabel("Confirmer")
.setStyle(ButtonStyle.Danger),
new ButtonBuilder()
.setCustomId("cancel_delete")
.setLabel("Annuler")
.setStyle(ButtonStyle.Secondary),
);
const embed = new EmbedBuilder()
.setTitle('🛡️ Suppression de l\'alliance')
.setDescription(`Êtes-vous sûr de vouloir supprimer l'alliance ${alliance.name}? Cette action est irréversible.`)
.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) => {
if (err) {
return i.update({ content: 'Une erreur est survenue lors de la suppression de l\'alliance.', components: [] });
}
collector.on("collect", async (i) => {
if (i.customId === "confirm_delete") {
db.run(
`DELETE FROM alliances WHERE guildId = ? AND id = ? AND creator = ?`,
[message.guild.id, alliance.id, message.author.id],
async (err) => {
if (err) {
return i.update({
content:
"Une erreur est survenue lors de la suppression de l'alliance.",
components: [],
});
}
db.run(`UPDATE teams SET alliancesId = null WHERE guildId =? AND alliancesId =?`, [message.guild.id, alliance.id], async (err) => {
if (err) {
return i.update({ content: 'Une erreur est survenue lors de la mise à jour des teams membres.', components: [] });
}
db.run(
`UPDATE teams SET alliancesId = null WHERE guildId =? AND alliancesId =?`,
[message.guild.id, alliance.id],
async (err) => {
if (err) {
return i.update({
content:
"Une erreur est survenue lors de la mise à jour des teams membres.",
components: [],
});
}
const embed = new EmbedBuilder()
.setTitle('🛡️ Suppression de l\'alliance')
.setDescription(`L'alliance ${alliance.name} a été supprimée avec succès.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
const embed = new EmbedBuilder()
.setTitle("🛡️ Suppression de l'alliance")
.setDescription(
`L'alliance ${alliance.name} a été supprimée avec succès.`,
)
.setColor(
await embedColor(message.author.id, message.guild.id),
)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return i.update({ embeds: [embed], components: [] });
return i.update({ embeds: [embed], components: [] });
},
);
},
);
} else {
await i.update({
content: "Suppression de l'alliance annulée.",
components: [],
});
});
} else {
await i.update({ content: 'Suppression de l\'alliance annulée.', components: [] });
}
});
}
});
collector.on('end', collected => {
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: [],
});
});
});
});
}
},
};
};
+103 -44
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) => {
if (err) reject(err);
resolve(row.pocket);
});
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) => {
if (err) reject(err);
resolve(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 },
});
}
},
};
};
+115 -69
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>',
permission: 0,
aliases: ["arep", "areputation", "alliancereputation", "alliancerep"],
description:
"Ajoute une reputation a une alliance. (tout le monde peux en recupéré ⚠️)",
emote: "💰",
utilisation: "<id>",
permission: 0,
async execute(message, args, client) {
if (args.length == 0) {
const embed = new EmbedBuilder()
.setTitle('Ajout de reputation')
.setDescription('❌ Vous devez spécifier une alliance a rep.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (args[0] < 3) {
const embed = new EmbedBuilder()
.setTitle('Ajout de reputation')
.setDescription('❌ Vous devez mettre l\'id d\'une alliance.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
const alliance = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM alliances WHERE guildId = ? AND id = ?`, [message.guild.id, args[0]], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row.lastRep);
});
async execute(message, args, client) {
if (args.length == 0) {
const embed = new EmbedBuilder()
.setTitle("Ajout de reputation")
.setDescription("❌ Vous devez spécifier une alliance a rep.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
if (!alliance) {
const embed = new EmbedBuilder()
.setTitle('Ajout de reputation')
.setDescription('❌ Alliance introuvable.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (args[0] < 3) {
const embed = new EmbedBuilder()
.setTitle("Ajout de reputation")
.setDescription("❌ Vous devez mettre l'id d'une alliance.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (user.lastArep > Date.now() - 1800000) {
const embed = new EmbedBuilder()
.setTitle('Ajout de reputation impossible')
.setDescription(`❌ Vous avez déjà ajouté une reputation récemment. Veuillez attendre \`${Math.floor((user.lastArep + 1800000 - Date.now()) / 60000)}\` minutes avant de pouvoir travailler à nouveau.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else {
db.run(`UPDATE alliances SET reputation = reputation + 1 WHERE guildId = ? AND id = ?`, [message.guild.id, args[0]]);
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
const embed = new EmbedBuilder()
.setTitle('Ajout de reputation effectué')
.setDescription('💰 Vous avez ajouter `1` reputation à l\`alliance `' + args[0] + '`.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
const alliance = await new Promise((resolve, reject) => {
db.get(
`SELECT * FROM alliances WHERE guildId = ? AND id = ?`,
[message.guild.id, args[0]],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
const user = await new Promise((resolve, reject) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row.lastRep);
},
);
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
},
};
if (!alliance) {
const embed = new EmbedBuilder()
.setTitle("Ajout de reputation")
.setDescription("❌ Alliance introuvable.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (user.lastArep > Date.now() - 1800000) {
const embed = new EmbedBuilder()
.setTitle("Ajout de reputation impossible")
.setDescription(
`❌ Vous avez déjà ajouté une reputation récemment. Veuillez attendre \`${Math.floor((user.lastArep + 1800000 - Date.now()) / 60000)}\` minutes avant de pouvoir travailler à nouveau.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else {
db.run(
`UPDATE alliances SET reputation = reputation + 1 WHERE guildId = ? AND id = ?`,
[message.guild.id, args[0]],
);
const embed = new EmbedBuilder()
.setTitle("Ajout de reputation effectué")
.setDescription(
"💰 Vous avez ajouter `1` reputation à l`alliance `" + args[0] + "`.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
},
};
+160 -60
View File
@@ -1,123 +1,223 @@
const { EmbedBuilder } = require('discord.js');
const 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) => {
if (err) reject(err);
resolve(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>`)')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.setTitle("Récuperation Impossible")
.setDescription(
"❌ Veuillez spécifier un type valide (rep|coins) :\n(`awith <rep|coins> <nombre>`)",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
}
};
},
};
+57 -29
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) => {
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 teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`,
[message.guild.id, message.guild.id, member.id],
(err, row) => {
if (err) reject(err);
resolve(row);
});
});
},
);
});
const alliance = await new Promise((resolve, reject) => {
db.get(
`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM teams WHERE guildId = ? AND id = ?)`,
[message.guild.id, message.guild.id, team.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
if (!alliance) {
const embed = new EmbedBuilder()
.setTitle('🛡️ Informations d\'alliance')
.setDescription('<@' + member.id + '> n\'est actuellement dans aucune alliance.')
.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) => {
if (err) reject(err);
resolve(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 },
});
}
},
};
};
+212 -151
View File
@@ -1,151 +1,212 @@
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: '',
permission: 0,
async execute(message, args, client) {
const embed = new EmbedBuilder()
.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() });
const select = new StringSelectMenuBuilder()
.setCustomId('color')
.setPlaceholder('Sélectionnez une couleur')
.addOptions([
{
label: '🔴 Rouge',
description: 'Prix : 3 rep🔺',
value: 'red',
},
{
label: '🟠 Orange',
description: 'Prix : 3 rep🔺',
value: 'orange',
},
{
label: '🟡 Jaune',
description: 'Prix : 3 rep🔺',
value: 'yellow',
},
{
label: '🟢 Vert',
description: 'Prix : 3 rep🔺',
value: 'green',
},
{
label: '🔵 Bleu',
description: 'Prix : 3 rep🔺',
value: 'blue',
},
{
label: '🟣 Violet',
description: 'Prix : 3 rep🔺',
value: 'purple',
},
{
label: '🟤 Marron',
description: 'Prix : 3 rep🔺',
value: 'brown',
},
{
label: '⚫ Noir',
description: 'Prix : 3 rep🔺',
value: 'black',
},
{
label: '⚪ Blanc',
description: 'Prix : 3 rep🔺',
value: 'white',
},
{
label: 'Aléatoire 🌈',
description: 'Prix : 5 rep🔺',
value: 'random',
},
]);
const row = new ActionRowBuilder()
.addComponents(select);
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) => {
if (interaction.isStringSelectMenu()) {
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) => {
if (err) reject(err);
resolve(row);
});
});
const reputation = user.reputation;
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.')
.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);
});
const embed = new EmbedBuilder()
.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() });
interaction.reply({ embeds: [embed], ephemeral: true, allowedMentions: { repliedUser: false } });
} else {
if (reputation < 3) {
const embed = new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Vous n\'avez pas assez de réputations pour acheter cette couleur.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return interaction.reply({ embeds: [embed], ephemeral: true, allowedMentions: { repliedUser: false } });
}
db.run(`UPDATE users SET reputation = reputation - 3, embed = ? WHERE guildId = ? AND userId = ?`, [value, message.guild.id, message.author.id], (err) => {
if (err) return console.error(err);
});
const embed = new EmbedBuilder()
.setTitle('🔵 Embed')
.setDescription(`✅ Vous avez acheté la couleur ${value} pour vos embeds.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
interaction.reply({ embeds: [embed], ephemeral: true, allowedMentions: { repliedUser: false } });
}
}
});
collector.on('end', async () => {
embedMessage.edit({ components: [] });
});
},
};
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: "",
permission: 0,
async execute(message, args, client) {
const embed = new EmbedBuilder()
.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(),
});
const select = new StringSelectMenuBuilder()
.setCustomId("color")
.setPlaceholder("Sélectionnez une couleur")
.addOptions([
{
label: "🔴 Rouge",
description: "Prix : 3 rep🔺",
value: "red",
},
{
label: "🟠 Orange",
description: "Prix : 3 rep🔺",
value: "orange",
},
{
label: "🟡 Jaune",
description: "Prix : 3 rep🔺",
value: "yellow",
},
{
label: "🟢 Vert",
description: "Prix : 3 rep🔺",
value: "green",
},
{
label: "🔵 Bleu",
description: "Prix : 3 rep🔺",
value: "blue",
},
{
label: "🟣 Violet",
description: "Prix : 3 rep🔺",
value: "purple",
},
{
label: "🟤 Marron",
description: "Prix : 3 rep🔺",
value: "brown",
},
{
label: "⚫ Noir",
description: "Prix : 3 rep🔺",
value: "black",
},
{
label: "⚪ Blanc",
description: "Prix : 3 rep🔺",
value: "white",
},
{
label: "Aléatoire 🌈",
description: "Prix : 5 rep🔺",
value: "random",
},
]);
const row = new ActionRowBuilder().addComponents(select);
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) => {
if (interaction.isStringSelectMenu()) {
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) => {
if (err) reject(err);
resolve(row);
},
);
});
const reputation = user.reputation;
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.",
)
.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);
},
);
const embed = new EmbedBuilder()
.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(),
});
interaction.reply({
embeds: [embed],
ephemeral: true,
allowedMentions: { repliedUser: false },
});
} else {
if (reputation < 3) {
const embed = new EmbedBuilder()
.setTitle("Erreur")
.setDescription(
"❌ Vous n'avez pas assez de réputations pour acheter cette couleur.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return interaction.reply({
embeds: [embed],
ephemeral: true,
allowedMentions: { repliedUser: false },
});
}
db.run(
`UPDATE users SET reputation = reputation - 3, embed = ? WHERE guildId = ? AND userId = ?`,
[value, message.guild.id, message.author.id],
(err) => {
if (err) return console.error(err);
},
);
const embed = new EmbedBuilder()
.setTitle("🔵 Embed")
.setDescription(
`✅ Vous avez acheté la couleur ${value} pour vos embeds.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
interaction.reply({
embeds: [embed],
ephemeral: true,
allowedMentions: { repliedUser: false },
});
}
}
});
collector.on("end", async () => {
embedMessage.edit({ components: [] });
});
},
};
+191 -125
View File
@@ -1,125 +1,191 @@
const { EmbedBuilder, ActionRowBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } = require('discord.js');
const 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: '',
permission: 0,
async execute(message, args, client) {
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setThumbnail(message.guild.iconURL())
.setDescription(`Sélectionnez un item à acheter. Voici les items disponibles :\n\n> 🔒 AntiRob - Protège contre les vols pendant 2 heures - Prix : 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() });
const select = new StringSelectMenuBuilder()
.setCustomId('shop')
.setPlaceholder('Sélectionnez un item')
.addOptions(
new StringSelectMenuOptionBuilder()
.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('🗝️')
.setDefault(false),
new StringSelectMenuOptionBuilder()
.setLabel('💰 25000 Coins')
.setValue('coins')
.setDescription('Vous donne 25K de coins contre 1reputation')
.setEmoji('💰')
.setDefault(false),
);
const row = new ActionRowBuilder()
.addComponents(select);
message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } });
client.on('interactionCreate', async (interaction) => {
if (!interaction.isStringSelectMenu()) return;
if (!interaction.customId === 'shop') return
const selected = interaction.values[0];
if (selected === 'antirob') {
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
if (user.pocket < 2000) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'argent pour acheter cet item.', ephemeral: true });
}
db.run(`UPDATE users SET pocket = pocket - 2000, antiRob = ? WHERE guildId = ? AND userId = ?`, [Date.now(), message.guild.id, message.author.id]);
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setDescription(`Vous avez acheté l'item 🔒 AntiRob pour 2000 coins !`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (selected === 'key') {
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
if (user.pocket < 2500) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'argent pour acheter cet item.', ephemeral: true });
}
db.run(`UPDATE users SET pocket = pocket - 2500, key = key + 1 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]);
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setDescription(`Vous avez acheté l'item 🗝️ clef pour 2500 coins !`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (selected === 'coins') {
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
if (user.reputation < 1) {
return interaction.reply({ content: 'Vous n\'avez pas assez de reputation pour acheter cet item.', ephemeral: true });
}
db.run(`UPDATE users SET pocket = pocket + 25000, reputation = reputation - 1 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]);
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setDescription(`Vous avez acheté \`25000\`coins contre une reputation !`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
});
},
};
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: "",
permission: 0,
async execute(message, args, client) {
const embed = new EmbedBuilder()
.setTitle("🛍️ Shop")
.setThumbnail(message.guild.iconURL())
.setDescription(
`Sélectionnez un item à acheter. Voici les items disponibles :\n\n> 🔒 AntiRob - Protège contre les vols pendant 2 heures - Prix : 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(),
});
const select = new StringSelectMenuBuilder()
.setCustomId("shop")
.setPlaceholder("Sélectionnez un item")
.addOptions(
new StringSelectMenuOptionBuilder()
.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("🗝️")
.setDefault(false),
new StringSelectMenuOptionBuilder()
.setLabel("💰 25000 Coins")
.setValue("coins")
.setDescription("Vous donne 25K de coins contre 1reputation")
.setEmoji("💰")
.setDefault(false),
);
const row = new ActionRowBuilder().addComponents(select);
message.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
});
client.on("interactionCreate", async (interaction) => {
if (!interaction.isStringSelectMenu()) return;
if (!interaction.customId === "shop") return;
const selected = interaction.values[0];
if (selected === "antirob") {
const user = await new Promise((resolve, reject) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
if (user.pocket < 2000) {
return interaction.reply({
content: "Vous n'avez pas assez d'argent pour acheter cet item.",
ephemeral: true,
});
}
db.run(
`UPDATE users SET pocket = pocket - 2000, antiRob = ? WHERE guildId = ? AND userId = ?`,
[Date.now(), message.guild.id, message.author.id],
);
const embed = new EmbedBuilder()
.setTitle("🛍️ Shop")
.setDescription(
`Vous avez acheté l'item 🔒 AntiRob pour 2000 coins !`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
interaction.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (selected === "key") {
const user = await new Promise((resolve, reject) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
if (user.pocket < 2500) {
return interaction.reply({
content: "Vous n'avez pas assez d'argent pour acheter cet item.",
ephemeral: true,
});
}
db.run(
`UPDATE users SET pocket = pocket - 2500, key = key + 1 WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
);
const embed = new EmbedBuilder()
.setTitle("🛍️ Shop")
.setDescription(`Vous avez acheté l'item 🗝️ clef pour 2500 coins !`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
interaction.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (selected === "coins") {
const user = await new Promise((resolve, reject) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
if (user.reputation < 1) {
return interaction.reply({
content:
"Vous n'avez pas assez de reputation pour acheter cet item.",
ephemeral: true,
});
}
db.run(
`UPDATE users SET pocket = pocket + 25000, reputation = reputation - 1 WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
);
const embed = new EmbedBuilder()
.setTitle("🛍️ Shop")
.setDescription(
`Vous avez acheté \`25000\`coins contre une reputation !`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
interaction.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
});
},
};
+142 -80
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) => {
if (err) reject(err);
resolve(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) => {
if (err) reject(err);
resolve(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 });
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]);
if (user.teamRole !== "officier" || user.teamRole !== "officer")
return interaction.reply({
content: "Vous n'avez pas les permissions pour faire cet achat",
ephemeral: true,
});
if (team.bank < coup)
return interaction.reply({
content: "Vous n'avez pas assez d'argent pour acheter cet item.",
ephemeral: true,
});
db.run(
`UPDATE teams SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`,
[coup, message.guild.id, message.author.id],
);
db.run(
`UPDATE teams SET location = location + ? WHERE guildId = ? AND userId = ?`,
[win, message.guild.id, message.author.id],
);
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setDescription(`Vous avez acheté l'item ${item} pour \`${coup}\`coins !`)
.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 },
});
});
},
};
};
+27 -16
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 :')
const embed = new EmbedBuilder()
.setTitle("Blacklist :")
.setDescription(`**Veuillez mentionner un membre valide**`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
db.run(`UPDATE users SET blacklist = true WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id]);
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 } });
},
+27 -16
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 :')
const embed = new EmbedBuilder()
.setTitle("Un-blacklist :")
.setDescription(`**Veuillez mentionner un membre valide**`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
db.run(`UPDATE users SET blacklist = false WHERE guildId = ? AND userId = ?`, [message.guild.id, member.id]);
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 } });
},
+291 -191
View File
@@ -1,191 +1,291 @@
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 uniqueCommands = new Map();
casinoCommands.forEach(command => {
uniqueCommands.set(command.name, { description: command.description, emote: command.emote, utilisation: command.utilisation });
});
let commandsList = '';
uniqueCommands.forEach((command, name) => {
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]',
permission: 0,
async execute(message, args, client) {
if (args) {
if (args[0] && client.commands.has(args[0])) {
const command = client.commands.get(args[0]);
const prefix = await getPrefix(message.guild.id);
const embed = new EmbedBuilder()
.setTitle(`📚・${command.name}`)
.setThumbnail(message.guild.iconURL())
.setDescription(`> **Description :** ${command.description}\n> **Utilisation :** \`${prefix}${command.name}${command.utilisation ? ' ' + command.utilisation : ''}\`\n> **Alias :** ${command.aliases.join(', ') || 'Aucun'}\n> **Permission :** ${command.permission}\n> **Catégorie :** ${command.category}\n> **Emote :** ${command.emote}`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else {
if (args[0]) {
const embed = new EmbedBuilder()
.setTitle('❌・Commande inconnue')
.setDescription('La commande que vous avez demandée n\'existe pas. Nous vous invitons à vérifier l\'orthographe dans le help si dessous et à réessayer.')
.setColor(await embedColor(message.author.id, message.guild.id))
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
}
}
const prefix = await getPrefix(message.guild.id);
const embedPage1 = new EmbedBuilder()
.setTitle('📚 ・Information')
.setThumbnail(message.guild.iconURL())
.setDescription(`Voici le panel d'aide du bot. Pour plus d'informations sur une commande, utilisez ${prefix}help <commande>\n\n> **🎙️ Récompenses vocales :**\n> Vous gagnez \`100\` coins toutes les \`15\`minutes lorsque vous êtes en vocal (**NON MUTE** sinon c'est \`50\`coins).\n \n> **📺 Récompenses de streaming :**\n> Activer un stream vous fera gagner \`200\`.\n \n> **📷 Récompenses de caméra :**\n> Activer votre caméra vous fera gagner \`200\`.\n\n> Le coins est une monnaie fictive.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 1/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
const leftButton = new ButtonBuilder()
.setCustomId('left')
.setLabel('◀')
.setStyle(ButtonStyle.Primary);
const rightButton = new ButtonBuilder()
.setCustomId('right')
.setLabel('▶')
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(leftButton, rightButton);
let messageEmbed;
messageEmbed = await message.reply({ embeds: [embedPage1], components: [row], allowedMentions: { repliedUser: false } });
const filter = i => i.user.id === message.author.id;
const collector = message.channel.createMessageComponentCollector({ filter, time: 120000 });
let page = 1;
collector.on('collect', async i => {
if (i.customId === 'left') {
page--;
if (page < 1) page = 10;
} else if (i.customId === 'right') {
page++;
if (page > 10) page = 1;
}
if (page === 1) {
i.update({ embeds: [embedPage1], components: [row] });
} else if (page === 2) {
const embedPage2 = new EmbedBuilder()
.setTitle('💰・Casino')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'casino', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 2/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage2], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 3) {
const embedPage3 = new EmbedBuilder()
.setTitle('🎲・Jeux')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'jeux', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 3/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage3], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 4) {
const embedPage4 = new EmbedBuilder()
.setTitle('🛍️・Achats')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'achats', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 4/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage4], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 5) {
const embedPage5 = new EmbedBuilder()
.setTitle('🏭・Metier et capacité')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'jobs', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 5/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage5], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 6) {
const embedPage6 = new EmbedBuilder()
.setTitle('💼・Teams')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'teams', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 6/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage6], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 7) {
const embedPage7 = new EmbedBuilder()
.setTitle('🛡️・Teams administration')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'teams admin', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 7/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage7], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 8) {
const embedPage8 = new EmbedBuilder()
.setTitle('🤝・Alliance')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'Alliance', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 8/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage8], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 9) {
const embedPage9 = new EmbedBuilder()
.setTitle('👑・Gestion')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'gestion', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 9/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage9], components: [row], allowedMentions: { repliedUser: false } });
} else if (page === 10) {
const embedPage10 = new EmbedBuilder()
.setTitle('👑・Bot control')
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, 'bot control', prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Page 10/10 | Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
i.update({ embeds: [embedPage10], components: [row], allowedMentions: { repliedUser: false } });
}
});
collector.on('end', () => {
messageEmbed.edit({ components: [], allowedMentions: { repliedUser: false } })
});
}
};
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 uniqueCommands = new Map();
casinoCommands.forEach((command) => {
uniqueCommands.set(command.name, {
description: command.description,
emote: command.emote,
utilisation: command.utilisation,
});
});
let commandsList = "";
uniqueCommands.forEach((command, name) => {
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]",
permission: 0,
async execute(message, args, client) {
if (args) {
if (args[0] && client.commands.has(args[0])) {
const command = client.commands.get(args[0]);
const prefix = await getPrefix(message.guild.id);
const embed = new EmbedBuilder()
.setTitle(`📚・${command.name}`)
.setThumbnail(message.guild.iconURL())
.setDescription(
`> **Description :** ${command.description}\n> **Utilisation :** \`${prefix}${command.name}${command.utilisation ? " " + command.utilisation : ""}\`\n> **Alias :** ${command.aliases.join(", ") || "Aucun"}\n> **Permission :** ${command.permission}\n> **Catégorie :** ${command.category}\n> **Emote :** ${command.emote}`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else {
if (args[0]) {
const embed = new EmbedBuilder()
.setTitle("❌・Commande inconnue")
.setDescription(
"La commande que vous avez demandée n'existe pas. Nous vous invitons à vérifier l'orthographe dans le help si dessous et à réessayer.",
)
.setColor(await embedColor(message.author.id, message.guild.id));
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
}
}
const prefix = await getPrefix(message.guild.id);
const embedPage1 = new EmbedBuilder()
.setTitle("📚 ・Information")
.setThumbnail(message.guild.iconURL())
.setDescription(
`Voici le panel d'aide du bot. Pour plus d'informations sur une commande, utilisez ${prefix}help <commande>\n\n> **🎙️ Récompenses vocales :**\n> Vous gagnez \`100\` coins toutes les \`15\`minutes lorsque vous êtes en vocal (**NON MUTE** sinon c'est \`50\`coins).\n \n> **📺 Récompenses de streaming :**\n> Activer un stream vous fera gagner \`200\`.\n \n> **📷 Récompenses de caméra :**\n> Activer votre caméra vous fera gagner \`200\`.\n\n> Le coins est une monnaie fictive.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Page 1/10 | Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
const leftButton = new ButtonBuilder()
.setCustomId("left")
.setLabel("◀")
.setStyle(ButtonStyle.Primary);
const rightButton = new ButtonBuilder()
.setCustomId("right")
.setLabel("▶")
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder().addComponents(leftButton, rightButton);
let messageEmbed;
messageEmbed = await message.reply({
embeds: [embedPage1],
components: [row],
allowedMentions: { repliedUser: false },
});
const filter = (i) => i.user.id === message.author.id;
const collector = message.channel.createMessageComponentCollector({
filter,
time: 120000,
});
let page = 1;
collector.on("collect", async (i) => {
if (i.customId === "left") {
page--;
if (page < 1) page = 10;
} else if (i.customId === "right") {
page++;
if (page > 10) page = 1;
}
if (page === 1) {
i.update({ embeds: [embedPage1], components: [row] });
} else if (page === 2) {
const embedPage2 = new EmbedBuilder()
.setTitle("💰・Casino")
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, "casino", prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Page 2/10 | Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
i.update({
embeds: [embedPage2],
components: [row],
allowedMentions: { repliedUser: false },
});
} else if (page === 3) {
const embedPage3 = new EmbedBuilder()
.setTitle("🎲・Jeux")
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, "jeux", prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Page 3/10 | Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
i.update({
embeds: [embedPage3],
components: [row],
allowedMentions: { repliedUser: false },
});
} else if (page === 4) {
const embedPage4 = new EmbedBuilder()
.setTitle("🛍️・Achats")
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, "achats", prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Page 4/10 | Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
i.update({
embeds: [embedPage4],
components: [row],
allowedMentions: { repliedUser: false },
});
} else if (page === 5) {
const embedPage5 = new EmbedBuilder()
.setTitle("🏭・Metier et capacité")
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, "jobs", prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Page 5/10 | Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
i.update({
embeds: [embedPage5],
components: [row],
allowedMentions: { repliedUser: false },
});
} else if (page === 6) {
const embedPage6 = new EmbedBuilder()
.setTitle("💼・Teams")
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, "teams", prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Page 6/10 | Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
i.update({
embeds: [embedPage6],
components: [row],
allowedMentions: { repliedUser: false },
});
} else if (page === 7) {
const embedPage7 = new EmbedBuilder()
.setTitle("🛡️・Teams administration")
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, "teams admin", prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Page 7/10 | Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
i.update({
embeds: [embedPage7],
components: [row],
allowedMentions: { repliedUser: false },
});
} else if (page === 8) {
const embedPage8 = new EmbedBuilder()
.setTitle("🤝・Alliance")
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, "Alliance", prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Page 8/10 | Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
i.update({
embeds: [embedPage8],
components: [row],
allowedMentions: { repliedUser: false },
});
} else if (page === 9) {
const embedPage9 = new EmbedBuilder()
.setTitle("👑・Gestion")
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, "gestion", prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Page 9/10 | Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
i.update({
embeds: [embedPage9],
components: [row],
allowedMentions: { repliedUser: false },
});
} else if (page === 10) {
const embedPage10 = new EmbedBuilder()
.setTitle("👑・Bot control")
.setThumbnail(message.guild.iconURL())
.setDescription(commandsList(client, "bot control", prefix))
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Page 10/10 | Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
i.update({
embeds: [embedPage10],
components: [row],
allowedMentions: { repliedUser: false },
});
}
});
collector.on("end", () => {
messageEmbed.edit({
components: [],
allowedMentions: { repliedUser: false },
});
});
},
};
+49 -40
View File
@@ -1,40 +1,49 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
module.exports = {
aliases: ['latence'],
description: 'Avoir la latence du bot.',
emote: '⏱️',
utilisation: '',
permission: 0,
async execute(message, args, client) {
const ping = new ButtonBuilder()
.setCustomId('confirm')
.setLabel('🔄')
.setStyle(ButtonStyle.Primary);
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) => {
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 } });
});
collector.on('end', () => {
sentMessage.edit({ components: [], allowedMentions: { repliedUser: false } });
});
}
};
const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require("discord.js");
module.exports = {
aliases: ["latence"],
description: "Avoir la latence du bot.",
emote: "⏱️",
utilisation: "",
permission: 0,
async execute(message, args, client) {
const ping = new ButtonBuilder()
.setCustomId("confirm")
.setLabel("🔄")
.setStyle(ButtonStyle.Primary);
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) => {
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 },
});
});
collector.on("end", () => {
sentMessage.edit({
components: [],
allowedMentions: { repliedUser: false },
});
});
},
};
+11 -11
View File
@@ -1,18 +1,18 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require("discord.js");
module.exports = {
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] + ' '
msg += args[i] + " ";
}
message.channel.send(msg)
}
};
message.channel.send(msg);
},
};
+49 -45
View File
@@ -1,53 +1,57 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require("discord.js");
module.exports = {
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": "--.. ",
" ": " "
};
const convertToMorse = (str) => {
return str.toUpperCase().split("").map(el => {
return morseCode[el] ? morseCode[el] : el;
}).join("");
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: "--.. ",
" ": " ",
};
let msg = message.content
msg = msg.replace('&morse ', '')
msg = msg.replace('&saymorse ', '')
message.channel.send(convertToMorse(msg))
}
};
const convertToMorse = (str) => {
return str
.toUpperCase()
.split("")
.map((el) => {
return morseCode[el] ? morseCode[el] : el;
})
.join("");
};
let msg = message.content;
msg = msg.replace("&morse ", "");
msg = msg.replace("&saymorse ", "");
message.channel.send(convertToMorse(msg));
},
};
+51 -48
View File
@@ -1,53 +1,56 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require("discord.js");
module.exports = {
aliases: ['unmorse'],
description: 'Permet de dire un message sous le noms du bot',
emote: '💬',
utilisation: '<message>',
permission: 0,
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()
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",
" ": " "
};
async execute(message, args, client) {
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",
" ": " ",
};
const convertFromMorse = (str) => {
return str.split(" ").map(el => {
return morseCode[el] ? morseCode[el] : el;
}).join("");
};
const convertFromMorse = (str) => {
return str
.split(" ")
.map((el) => {
return morseCode[el] ? morseCode[el] : el;
})
.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));
},
};
+66 -47
View File
@@ -1,47 +1,66 @@
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: '',
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'))
.setColor(await embedColor(message.author.id, message.guild.id));
const ping = new ButtonBuilder()
.setCustomId('confirm')
.setLabel('🔄')
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(ping);
const sentMessage = await message.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false }
});
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'));
sentMessage.edit({
embeds: [embed],
components: [row],
});
interaction.reply({ content: 'La liste des serveurs a été rafraichie', ephemeral: true });
});
collector.on('end', () => {
sentMessage.edit({ components: [] });
});
}
};
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: "",
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"),
)
.setColor(await embedColor(message.author.id, message.guild.id));
const ping = new ButtonBuilder()
.setCustomId("confirm")
.setLabel("🔄")
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder().addComponents(ping);
const sentMessage = await message.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
});
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"),
);
sentMessage.edit({
embeds: [embed],
components: [row],
});
interaction.reply({
content: "La liste des serveurs a été rafraichie",
ephemeral: true,
});
});
collector.on("end", () => {
sentMessage.edit({ components: [] });
});
},
};
+32 -22
View File
@@ -1,25 +1,35 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const 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: '',
permission: 0,
aliases: ["upt"],
description: "Affiche depuis combien de temps le bot est en ligne.",
emote: "⏱️",
utilisation: "",
permission: 0,
async execute(message, args, client) {
const uptime = client.uptime;
const days = Math.floor(uptime / 86400000);
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 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] })
}
};
async execute(message, args, client) {
const uptime = client.uptime;
const days = Math.floor(uptime / 86400000);
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 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] });
},
};
+86 -70
View File
@@ -1,70 +1,86 @@
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: '',
permission: 0,
async execute(message, args, client) {
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
const 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.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
const randomAmount = Math.floor(Math.random() * (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]);
const dailys = [
`🌅 Vous vous êtes réveillé tôt ce matin et avez trouvé \`${randomAmount}\` coins sous votre oreiller.`,
`🍳 Vous avez préparé un délicieux petit-déjeuner et avez été récompensé par \`${randomAmount}\` coins pour votre talent culinaire.`,
`☀️ En partant pour une promenade matinale, vous avez découvert \`${randomAmount}\` coins brillant sous le soleil levant.`,
`🌸 Vous avez aidé à planter de nouvelles fleurs dans le jardin du village et avez reçu \`${randomAmount}\` coins pour votre contribution.`,
`🐦 Vous avez nourri les oiseaux dans le parc et avez trouvé \`${randomAmount}\` coins cachés parmi les graines.`,
`📚 Après avoir lu un livre inspirant, vous avez été inspiré à démarrer votre journée avec \`${randomAmount}\` coins d'idées nouvelles.`,
`🌱 Vous avez planté un arbre pour marquer le début de la journée et avez été récompensé par \`${randomAmount}\` coins pour votre action écologique.`,
`🚴 Vous avez fait une balade à vélo matinale et avez découvert \`${randomAmount}\` coins sur le bord du chemin.`,
`🌞 Vous avez salué le lever du soleil avec une méditation paisible et avez trouvé \`${randomAmount}\` coins cachés dans votre esprit calme.`,
`🌳 En ramassant des déchets dans le parc, vous avez trouvé \`${randomAmount}\` coins comme récompense pour garder l'environnement propre.`,
`🎨 Vous avez commencé la journée avec une séance de peinture et avez vendu votre première toile pour \`${randomAmount}\` coins.`,
`🐶 Vous avez promené le chien du voisin et avez été surpris avec \`${randomAmount}\` coins comme remerciement.`,
`📝 Vous avez tenu un journal de gratitude pour votre routine matinale et avez été récompensé par \`${randomAmount}\` coins pour chaque moment apprécié.`,
`🏃‍♂️ Vous avez fait une course matinale et avez découvert \`${randomAmount}\` coins le long du parcours.`,
`☕ Après avoir préparé un café revigorant, vous avez trouvé \`${randomAmount}\` coins au fond de votre tasse.`,
`🌻 Vous avez cultivé votre jardin et avez récolté \`${randomAmount}\` coins en légumes frais pour le petit-déjeuner.`,
`🎶 Vous avez écouté votre chanson préférée pour commencer la journée et avez été récompensé par \`${randomAmount}\` coins pour votre bon goût musical.`,
`🌈 Vous avez commencé la journée avec une séance de yoga revitalisante et avez trouvé \`${randomAmount}\` coins dans la position du lotus.`,
`💌 Vous avez envoyé des messages de bonnes nouvelles à vos proches et avez été récompensé par \`${randomAmount}\` coins pour répandre la joie.`,
`💻 Vous avez commencé votre journée de travail avec détermination et avez trouvé \`${randomAmount}\` coins cachés dans votre boîte de réception.`,
];
const embed = new EmbedBuilder()
.setTitle('Argent Récupéré')
.setDescription(dailys[Math.floor(Math.random() * dailys.length)])
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
};
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: "",
permission: 0,
async execute(message, args, client) {
const user = await new Promise((resolve, reject) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
const 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.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
const randomAmount = Math.floor(Math.random() * (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],
);
const dailys = [
`🌅 Vous vous êtes réveillé tôt ce matin et avez trouvé \`${randomAmount}\` coins sous votre oreiller.`,
`🍳 Vous avez préparé un délicieux petit-déjeuner et avez été récompensé par \`${randomAmount}\` coins pour votre talent culinaire.`,
`☀️ En partant pour une promenade matinale, vous avez découvert \`${randomAmount}\` coins brillant sous le soleil levant.`,
`🌸 Vous avez aidé à planter de nouvelles fleurs dans le jardin du village et avez reçu \`${randomAmount}\` coins pour votre contribution.`,
`🐦 Vous avez nourri les oiseaux dans le parc et avez trouvé \`${randomAmount}\` coins cachés parmi les graines.`,
`📚 Après avoir lu un livre inspirant, vous avez été inspiré à démarrer votre journée avec \`${randomAmount}\` coins d'idées nouvelles.`,
`🌱 Vous avez planté un arbre pour marquer le début de la journée et avez été récompensé par \`${randomAmount}\` coins pour votre action écologique.`,
`🚴 Vous avez fait une balade à vélo matinale et avez découvert \`${randomAmount}\` coins sur le bord du chemin.`,
`🌞 Vous avez salué le lever du soleil avec une méditation paisible et avez trouvé \`${randomAmount}\` coins cachés dans votre esprit calme.`,
`🌳 En ramassant des déchets dans le parc, vous avez trouvé \`${randomAmount}\` coins comme récompense pour garder l'environnement propre.`,
`🎨 Vous avez commencé la journée avec une séance de peinture et avez vendu votre première toile pour \`${randomAmount}\` coins.`,
`🐶 Vous avez promené le chien du voisin et avez été surpris avec \`${randomAmount}\` coins comme remerciement.`,
`📝 Vous avez tenu un journal de gratitude pour votre routine matinale et avez été récompensé par \`${randomAmount}\` coins pour chaque moment apprécié.`,
`🏃‍♂️ Vous avez fait une course matinale et avez découvert \`${randomAmount}\` coins le long du parcours.`,
`☕ Après avoir préparé un café revigorant, vous avez trouvé \`${randomAmount}\` coins au fond de votre tasse.`,
`🌻 Vous avez cultivé votre jardin et avez récolté \`${randomAmount}\` coins en légumes frais pour le petit-déjeuner.`,
`🎶 Vous avez écouté votre chanson préférée pour commencer la journée et avez été récompensé par \`${randomAmount}\` coins pour votre bon goût musical.`,
`🌈 Vous avez commencé la journée avec une séance de yoga revitalisante et avez trouvé \`${randomAmount}\` coins dans la position du lotus.`,
`💌 Vous avez envoyé des messages de bonnes nouvelles à vos proches et avez été récompensé par \`${randomAmount}\` coins pour répandre la joie.`,
`💻 Vous avez commencé votre journée de travail avec détermination et avez trouvé \`${randomAmount}\` coins cachés dans votre boîte de réception.`,
];
const embed = new EmbedBuilder()
.setTitle("Argent Récupéré")
.setDescription(dailys[Math.floor(Math.random() * dailys.length)])
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
};
+78 -58
View File
@@ -1,58 +1,78 @@
const { EmbedBuilder } = require('discord.js');
const 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>',
permission: 0,
async execute(message, args, client) {
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
const pocket = user.pocket
const bank = user.bank
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') {
if (pocket <= 0) {
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]);
}
} else if (isNaN(args[0])) {
description = '❌ Vous devez spécifier un montant valide à déposer.'
} else if (pocket <= 0) {
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.'
} else if (parseInt(args[0]) <= 0) {
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]);
}
const embed = new EmbedBuilder()
.setTitle(title)
.setDescription(description)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
};
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>",
permission: 0,
async execute(message, args, client) {
const user = await new Promise((resolve, reject) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
const pocket = user.pocket;
const bank = user.bank;
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") {
if (pocket <= 0) {
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],
);
}
} else if (isNaN(args[0])) {
description = "❌ Vous devez spécifier un montant valide à déposer.";
} else if (pocket <= 0) {
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.";
} else if (parseInt(args[0]) <= 0) {
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,
],
);
}
const embed = new EmbedBuilder()
.setTitle(title)
.setDescription(description)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
};
+51 -26
View File
@@ -1,41 +1,66 @@
const { EmbedBuilder } = require('discord.js');
const 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) => {
if (err) reject(err);
resolve(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)
let anti_rob = ``
if (user.antiRob + 7200000 > Date.now()) {
anti_rob = `\n> :shield: **Anti-Rob:** \`${Math.floor((user.antiRob + 7200000 - Date.now()) / 60000)}\` minutes.`
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 = ``;
if (user.antiRob + 7200000 > Date.now()) {
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 } });
},
};
};
+137 -105
View File
@@ -1,105 +1,137 @@
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>',
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 pocket = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row.pocket);
});
});
if (!member) {
return message.reply({ embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez mentionner un membre du serveur.')
.setColor(color)
.setTimestamp()
.setFooter(footer)
], allowedMentions: { repliedUser: false } });
}
if (!args[0]) {
return message.reply({ embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez spécifier un montant à payer.')
.setColor(color)
.setTimestamp()
.setFooter(footer)
], allowedMentions: { repliedUser: false } });
} else if (args[0] === 'all') {
amount = pocket;
} else if (isNaN(args[0])) {
return message.reply({ embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez spécifier un montant valide.')
.setColor(color)
.setTimestamp()
.setFooter(footer)
], allowedMentions: { repliedUser: false } });
} else if (args[0] <= 0) {
return message.reply({ embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez spécifier un montant supérieur à \`0\`.')
.setColor(color)
.setTimestamp()
.setFooter(footer)
], allowedMentions: { repliedUser: false } });
} else if (args[0] > pocket) {
return message.reply({ embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Vous n\'avez pas assez d\'argent pour effectuer cette transaction.')
.setColor(color)
.setTimestamp()
.setFooter(footer)
], allowedMentions: { repliedUser: false } });
} else if (!Number.isInteger(Number(args[0]))) {
return message.reply({ embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez spécifier un montant entier.')
.setColor(color)
.setTimestamp()
.setFooter(footer)
], allowedMentions: { repliedUser: false } });
} else {
amount = args[0];
}
db.run(`UPDATE users SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`, [amount, message.guild.id, message.author.id]);
db.run(`UPDATE users SET pocket = pocket + ? WHERE guildId = ? AND userId = ?`, [amount, message.guild.id, member.id]);
message.reply({ embeds: [
new EmbedBuilder()
.setTitle('Paiement')
.setDescription(`💰 Vous avez payé \`${amount}\` à ${member.user.tag}.`)
.setColor(color)
.setTimestamp()
.setFooter(footer)
], allowedMentions: { repliedUser: false } });
},
};
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>",
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 pocket = await new Promise((resolve, reject) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row.pocket);
},
);
});
if (!member) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription("❌ Veuillez mentionner un membre du serveur.")
.setColor(color)
.setTimestamp()
.setFooter(footer),
],
allowedMentions: { repliedUser: false },
});
}
if (!args[0]) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription("❌ Veuillez spécifier un montant à payer.")
.setColor(color)
.setTimestamp()
.setFooter(footer),
],
allowedMentions: { repliedUser: false },
});
} else if (args[0] === "all") {
amount = pocket;
} else if (isNaN(args[0])) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription("❌ Veuillez spécifier un montant valide.")
.setColor(color)
.setTimestamp()
.setFooter(footer),
],
allowedMentions: { repliedUser: false },
});
} else if (args[0] <= 0) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription("❌ Veuillez spécifier un montant supérieur à `0`.")
.setColor(color)
.setTimestamp()
.setFooter(footer),
],
allowedMentions: { repliedUser: false },
});
} else if (args[0] > pocket) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription(
"❌ Vous n'avez pas assez d'argent pour effectuer cette transaction.",
)
.setColor(color)
.setTimestamp()
.setFooter(footer),
],
allowedMentions: { repliedUser: false },
});
} else if (!Number.isInteger(Number(args[0]))) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription("❌ Veuillez spécifier un montant entier.")
.setColor(color)
.setTimestamp()
.setFooter(footer),
],
allowedMentions: { repliedUser: false },
});
} else {
amount = args[0];
}
db.run(
`UPDATE users SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`,
[amount, message.guild.id, message.author.id],
);
db.run(
`UPDATE users SET pocket = pocket + ? WHERE guildId = ? AND userId = ?`,
[amount, message.guild.id, member.id],
);
message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Paiement")
.setDescription(
`💰 Vous avez payé \`${amount}\` à ${member.user.tag}.`,
)
.setColor(color)
.setTimestamp()
.setFooter(footer),
],
allowedMentions: { repliedUser: false },
});
},
};
+43 -26
View File
@@ -1,52 +1,69 @@
const { EmbedBuilder } = require('discord.js');
const 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) => {
if (err) reject(err);
resolve(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 } });
},
};
};
+125 -67
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: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez spécifier un membre du serveur.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } });
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription("❌ Veuillez spécifier un membre du serveur.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
const lastRep = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row.lastRep);
});
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: [
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.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } });
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.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
const userReputation = await new Promise((resolve, reject) => {
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: [
new EmbedBuilder()
.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 } });
}
resolve(parseInt(row.reputation));
});
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: [
new EmbedBuilder()
.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 },
});
}
resolve(parseInt(row.reputation));
},
);
});
if (member === message.author.id) {
return message.reply({ embeds: [
new EmbedBuilder()
.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 } });
return message.reply({
embeds: [
new EmbedBuilder()
.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)
}
});
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)
}
});
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 !')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } });
message.reply({
embeds: [
new EmbedBuilder()
.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 },
});
},
};
};
+158 -101
View File
@@ -1,101 +1,158 @@
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>',
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.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
const memberlist = await new Promise((resolve, reject) => {
db.all(`SELECT userId FROM users WHERE guildId = ? AND teamId = ?`, [message.guild.id, user.teamId], (err, rows) => {
if (err) reject(err);
resolve(rows);
});
});
if (memberlist.includes(member)) return message.reply({ embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez choisir un membre qui __n\'est pas__ dans votre team.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter(footer)
], allowedMentions: { repliedUser: false } });
if (user.lastRob + 7200000 > Date.now()) {
const embed = new EmbedBuilder()
.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() });
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) => {
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.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
const memberPocket = memberInfo.pocket;
if (memberPocket <= 0) {
const embed = new EmbedBuilder()
.setTitle('Erreur')
.setDescription(`❌ <@${member.id}> n'a pas d'argent sur lui pour que vous puissiez le voler.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
const amount = Math.floor(Math.random() * memberPocket) + 1;
db.run(`UPDATE users SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`, [amount, message.guild.id, member.id]);
db.run(`UPDATE users SET pocket = pocket + ?, lastRob = ? WHERE guildId = ? AND userId = ?`, [amount, Date.now(), message.guild.id, message.author.id]);
const embed = new EmbedBuilder()
.setTitle('Vol')
.setDescription(`💰 Vous avez volé ${amount} à <@${member.id}>.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
};
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>",
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.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
const user = await new Promise((resolve, reject) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
const memberlist = await new Promise((resolve, reject) => {
db.all(
`SELECT userId FROM users WHERE guildId = ? AND teamId = ?`,
[message.guild.id, user.teamId],
(err, rows) => {
if (err) reject(err);
resolve(rows);
},
);
});
if (memberlist.includes(member))
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription(
"❌ Veuillez choisir un membre qui __n'est pas__ dans votre team.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter(footer),
],
allowedMentions: { repliedUser: false },
});
if (user.lastRob + 7200000 > Date.now()) {
const embed = new EmbedBuilder()
.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(),
});
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) => {
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.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
const memberPocket = memberInfo.pocket;
if (memberPocket <= 0) {
const embed = new EmbedBuilder()
.setTitle("Erreur")
.setDescription(
`❌ <@${member.id}> n'a pas d'argent sur lui pour que vous puissiez le voler.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
const amount = Math.floor(Math.random() * memberPocket) + 1;
db.run(
`UPDATE users SET pocket = pocket - ? WHERE guildId = ? AND userId = ?`,
[amount, message.guild.id, member.id],
);
db.run(
`UPDATE users SET pocket = pocket + ?, lastRob = ? WHERE guildId = ? AND userId = ?`,
[amount, Date.now(), message.guild.id, message.author.id],
);
const embed = new EmbedBuilder()
.setTitle("Vol")
.setDescription(`💰 Vous avez volé ${amount} à <@${member.id}>.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
};
+255 -175
View File
@@ -1,182 +1,262 @@
const { EmbedBuilder, ActionRowBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } = require('discord.js');
const 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: '',
permission: 0,
aliases: ["vendre"],
description: "Affiche le menu de vente des objets.",
emote: "🛍️",
utilisation: "",
permission: 0,
async execute(message, args, client) {
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
async execute(message, args, client) {
const user = await new Promise((resolve, reject) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
const embed = new EmbedBuilder()
.setTitle("🛍️ Shop")
.setThumbnail(message.guild.iconURL())
.setDescription(
`Sélectionnez un nombre d'objet à vendre.\n\nVous avez \`${user.objet}\`objet.\nAttention, il est possible que de petit pourboire de client soit rajouté.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
const select = new StringSelectMenuBuilder()
.setCustomId("sell")
.setPlaceholder("Sélectionnez un nombre d'objet")
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel("👶 Debutant")
.setValue("1")
.setDescription("Vend un objet, pour `200`coins.")
.setEmoji("👶")
.setDefault(false),
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel("🚸 Enfant")
.setValue("2")
.setDescription("Vend deux objet, pour `400`coins.")
.setEmoji("🚸")
.setDefault(false),
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel("🔞 Mineur")
.setValue("3")
.setDescription("Vend trois objet, pour `600`coins.")
.setEmoji("🔞")
.setDefault(false),
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel("🧐 Expert")
.setValue("4")
.setDescription("Vend quatre objet, pour `800`coins.")
.setEmoji("🧐")
.setDefault(false),
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel("👑 Mythique")
.setValue("5")
.setDescription("Vend cinq objet, pour `1 000`coins.")
.setEmoji("👑")
.setDefault(false),
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel("👑 Legendaire")
.setValue("10")
.setDescription("Vend dix objet, pour `10 000`coins !")
.setEmoji("👑")
.setDefault(false),
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel("👑 Ultime")
.setValue("25")
.setDescription("Vend 25 objet, pour `30 000`coins !")
.setEmoji("👑")
.setDefault(false),
);
const row = new ActionRowBuilder().addComponents(select);
message.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
});
client.on("interactionCreate", async (interaction) => {
if (!interaction.user.id !== message.author.id) return;
if (!interaction.isSelectMenu()) return;
if (!interaction.customId === "sell") return;
const selected = interaction.values[0];
if (selected === "1") {
if (user.objet < 1) {
return interaction.reply({
content: "Vous n'avez pas assez d'objet pour en vendre autant.",
ephemeral: true,
});
}
db.run(
`UPDATE users SET objet = objet - 1, pocket = pocket + 200 WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
);
}
if (selected === "2") {
if (user.objet < 2) {
return interaction.reply({
content: "Vous n'avez pas assez d'objet pour en vendre autant.",
ephemeral: true,
});
}
db.run(
`UPDATE users SET objet = objet - 2, pocket = pocket + 400 WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
);
}
if (selected === "3") {
if (user.objet < 3) {
return interaction.reply({
content: "Vous n'avez pas assez d'objet pour en vendre autant.",
ephemeral: true,
});
}
db.run(
`UPDATE users SET objet = objet - 3, pocket = pocket + 600 WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
);
}
if (selected === "4") {
if (user.objet < 4) {
return interaction.reply({
content: "Vous n'avez pas assez d'objet pour en vendre autant.",
ephemeral: true,
});
}
db.run(
`UPDATE users SET objet = objet - 4, pocket = pocket + 850 WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
);
}
if (selected === "5") {
if (user.objet < 5) {
return interaction.reply({
content: "Vous n'avez pas assez d'objet pour en vendre autant.",
ephemeral: true,
});
}
db.run(
`UPDATE users SET objet = objet - 5, pocket = pocket + 1500 WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
);
}
if (selected === "10") {
if (user.objet < 10) {
return interaction.reply({
content: "Vous n'avez pas assez d'objet pour en vendre autant.",
ephemeral: true,
});
}
db.run(
`UPDATE users SET objet = objet - 10, pocket = pocket + 10500 WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
);
}
if (selected === "25") {
if (user.objet < 25) {
return interaction.reply({
content: "Vous n'avez pas assez d'objet pour en vendre autant.",
ephemeral: true,
});
}
db.run(
`UPDATE users SET objet = objet - 25, pocket = pocket + 31000 WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
);
}
if (select <= 9) {
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setThumbnail(message.guild.iconURL())
.setDescription(`Sélectionnez un nombre d'objet à vendre.\n\nVous avez \`${user.objet}\`objet.\nAttention, il est possible que de petit pourboire de client soit rajouté.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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(),
});
const select = new StringSelectMenuBuilder()
.setCustomId('sell')
.setPlaceholder('Sélectionnez un nombre d\'objet')
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('👶 Debutant')
.setValue('1')
.setDescription('Vend un objet, pour \`200\`coins.')
.setEmoji('👶')
.setDefault(false)
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('🚸 Enfant')
.setValue('2')
.setDescription('Vend deux objet, pour \`400\`coins.')
.setEmoji('🚸')
.setDefault(false)
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('🔞 Mineur')
.setValue('3')
.setDescription('Vend trois objet, pour \`600\`coins.')
.setEmoji('🔞')
.setDefault(false)
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('🧐 Expert')
.setValue('4')
.setDescription('Vend quatre objet, pour \`800\`coins.')
.setEmoji('🧐')
.setDefault(false),
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('👑 Mythique')
.setValue('5')
.setDescription('Vend cinq objet, pour \`1 000\`coins.')
.setEmoji('👑')
.setDefault(false),
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('👑 Legendaire')
.setValue('10')
.setDescription('Vend dix objet, pour \`10 000\`coins !')
.setEmoji('👑')
.setDefault(false),
)
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('👑 Ultime')
.setValue('25')
.setDescription('Vend 25 objet, pour \`30 000\`coins !')
.setEmoji('👑')
.setDefault(false),
)
const row = new ActionRowBuilder()
.addComponents(select);
message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } });
client.on('interactionCreate', async (interaction) => {
if (!interaction.user.id !== message.author.id) return;
if (!interaction.isSelectMenu()) return;
if (!interaction.customId === 'sell') return
const selected = interaction.values[0];
if (selected === '1') {
if (user.objet < 1) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true });
}
db.run(`UPDATE users SET objet = objet - 1, pocket = pocket + 200 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]);
}
if (selected === '2') {
if (user.objet < 2) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true });
}
db.run(`UPDATE users SET objet = objet - 2, pocket = pocket + 400 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]);
}
if (selected === '3') {
if (user.objet < 3) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true });
}
db.run(`UPDATE users SET objet = objet - 3, pocket = pocket + 600 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]);
}
if (selected === '4') {
if (user.objet < 4) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true });
}
db.run(`UPDATE users SET objet = objet - 4, pocket = pocket + 850 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]);
}
if (selected === '5') {
if (user.objet < 5) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true });
}
db.run(`UPDATE users SET objet = objet - 5, pocket = pocket + 1500 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]);
}
if (selected === '10') {
if (user.objet < 10) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true });
}
db.run(`UPDATE users SET objet = objet - 10, pocket = pocket + 10500 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]);
}
if (selected === '25') {
if (user.objet < 25) {
return interaction.reply({ content: 'Vous n\'avez pas assez d\'objet pour en vendre autant.', ephemeral: true });
}
db.run(`UPDATE users SET objet = objet - 25, pocket = pocket + 31000 WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id]);
}
if (select <= 9) {
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setDescription(`Vous avez vendu \`${select}\`objet pour \`${200 * select}\`coins !`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
else if (select === 10){
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setDescription(`Vous avez vendu \`${select}\`objet pour \`10000\`coins !`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
else if (select === 25){
const embed = new EmbedBuilder()
.setTitle('🛍️ Shop')
.setDescription(`Vous avez vendu \`${select}\`objet pour \`30000\`coins !`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
interaction.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
interaction.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
},
};
} else if (select === 10) {
const embed = new EmbedBuilder()
.setTitle("🛍️ Shop")
.setDescription(
`Vous avez vendu \`${select}\`objet pour \`10000\`coins !`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
interaction.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (select === 25) {
const embed = new EmbedBuilder()
.setTitle("🛍️ Shop")
.setDescription(
`Vous avez vendu \`${select}\`objet pour \`30000\`coins !`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
interaction.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
});
},
};
+315 -209
View File
@@ -1,209 +1,315 @@
const { EmbedBuilder, ActionRowBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } = require('discord.js');
const 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]',
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'
} else if (!args[0]) {
args[0] = 'coins'
} else {
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.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
}
async function leaderboard (type) {
let data;
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) => {
if (err) reject(err);
resolve(rows);
});
});
} 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) => {
if (err) reject(err);
resolve(rows);
});
});
} 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) => {
if (err) reject(err);
resolve(rows);
});
});
} 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) => {
if (err) reject(err);
resolve(rows);
});
});
} 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) => {
if (err) reject(err);
resolve(rows);
});
});
} 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) => {
if (err) reject(err);
resolve(rows);
});
});
} 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) => {
if (err) reject(err);
resolve(rows);
});
});
} else if (type === 'teamdroper') {
data = await new Promise((resolve, reject) => {
db.all(`SELECT userId, teamdroper AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`, [message.guild.id], (err, rows) => {
if (err) reject(err);
resolve(rows);
});
});
}
const emoji = {
coins: '🪙',
pocket: '💰',
bank: '🏦',
reputation: '🔺',
niveau: '📊',
team: '👑',
teamreputation: '🔺',
teamdroper: '🎁'
}
let leaderboard = data.map((row, i) => {
let position;
switch (i) {
case 0:
position = ':first_place:';
break;
case 1:
position = ':second_place:';
break;
case 2:
position = ':third_place:';
break;
default:
position = `**${i + 1}.**`;
}
return `${position} <@${row.userId}> - \`${row.coins}\` ${emoji[type]}`;
}).join('\n\n');
const embed = new EmbedBuilder()
.setTitle('🏆 Top 10 des membres du serveur')
.setDescription(`Voici le top 10 des membres du serveur trié par ${type}:\n\n${leaderboard}`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return embed
}
const embed = await leaderboard(args[0]);
const select = new StringSelectMenuBuilder()
.setCustomId('topLeaderboard')
.setPlaceholder('Choisissez un type de leaderboard')
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel('Global')
.setEmoji('🪙')
.setDescription('Affiche le top en fonction de la somme de l\'argent en poche et en banque')
.setValue('coins'),
new StringSelectMenuOptionBuilder()
.setLabel('Poche')
.setEmoji('💰')
.setDescription('Affiche le top en fonction de l\'argent en poche')
.setValue('pocket'),
new StringSelectMenuOptionBuilder()
.setLabel('Banque')
.setEmoji('🏦')
.setDescription('Affiche le top en fonction de l\'argent en banque')
.setValue('bank'),
new StringSelectMenuOptionBuilder()
.setLabel('Réputation')
.setEmoji('🔺')
.setDescription('Affiche le top en fonction de la réputation')
.setValue('reputation'),
new StringSelectMenuOptionBuilder()
.setLabel('Niveau')
.setEmoji('📊')
.setDescription('Affiche le top en fonction du niveau')
.setValue('niveau'),
new StringSelectMenuOptionBuilder()
.setLabel('Teams bank')
.setEmoji('👑')
.setDescription('Affiche le top en fonction de l\'argent des teams')
.setValue('team'),
new StringSelectMenuOptionBuilder()
.setLabel('Teams réputation')
.setEmoji('🔺')
.setDescription('Affiche le top en fonction de la réputation des teams')
.setValue('teamreputation'),
new StringSelectMenuOptionBuilder()
.setLabel('TeamDroper')
.setEmoji('🎁')
.setDescription('Affiche le top en fonction du nombre de coins donnés à une team')
.setValue('teamdroper')
);
const row = new ActionRowBuilder()
.addComponents(select);
const replyMessage = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } })
client.on('interactionCreate', async (interaction) => {
if (!interaction.isStringSelectMenu()) return;
if (interaction.customId === 'topLeaderboard') {
const selected = interaction.values[0];
await interaction.deferUpdate();
const embed = await leaderboard(selected);
replyMessage.edit({ embeds: [embed] });
interaction.followUp({ content: 'Leaderboard mis à jour', ephemeral: true });
}
});
},
}
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]",
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";
} else if (!args[0]) {
args[0] = "coins";
} else {
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.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
async function leaderboard(type) {
let data;
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) => {
if (err) reject(err);
resolve(rows);
},
);
});
} 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) => {
if (err) reject(err);
resolve(rows);
},
);
});
} 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) => {
if (err) reject(err);
resolve(rows);
},
);
});
} 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) => {
if (err) reject(err);
resolve(rows);
},
);
});
} 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) => {
if (err) reject(err);
resolve(rows);
},
);
});
} 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) => {
if (err) reject(err);
resolve(rows);
},
);
});
} 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) => {
if (err) reject(err);
resolve(rows);
},
);
});
} else if (type === "teamdroper") {
data = await new Promise((resolve, reject) => {
db.all(
`SELECT userId, teamdroper AS coins FROM users WHERE guildId = ? ORDER BY coins DESC LIMIT 10`,
[message.guild.id],
(err, rows) => {
if (err) reject(err);
resolve(rows);
},
);
});
}
const emoji = {
coins: "🪙",
pocket: "💰",
bank: "🏦",
reputation: "🔺",
niveau: "📊",
team: "👑",
teamreputation: "🔺",
teamdroper: "🎁",
};
let leaderboard = data
.map((row, i) => {
let position;
switch (i) {
case 0:
position = ":first_place:";
break;
case 1:
position = ":second_place:";
break;
case 2:
position = ":third_place:";
break;
default:
position = `**${i + 1}.**`;
}
return `${position} <@${row.userId}> - \`${row.coins}\` ${emoji[type]}`;
})
.join("\n\n");
const embed = new EmbedBuilder()
.setTitle("🏆 Top 10 des membres du serveur")
.setDescription(
`Voici le top 10 des membres du serveur trié par ${type}:\n\n${leaderboard}`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return embed;
}
const embed = await leaderboard(args[0]);
const select = new StringSelectMenuBuilder()
.setCustomId("topLeaderboard")
.setPlaceholder("Choisissez un type de leaderboard")
.addOptions(
new StringSelectMenuOptionBuilder()
.setLabel("Global")
.setEmoji("🪙")
.setDescription(
"Affiche le top en fonction de la somme de l'argent en poche et en banque",
)
.setValue("coins"),
new StringSelectMenuOptionBuilder()
.setLabel("Poche")
.setEmoji("💰")
.setDescription("Affiche le top en fonction de l'argent en poche")
.setValue("pocket"),
new StringSelectMenuOptionBuilder()
.setLabel("Banque")
.setEmoji("🏦")
.setDescription("Affiche le top en fonction de l'argent en banque")
.setValue("bank"),
new StringSelectMenuOptionBuilder()
.setLabel("Réputation")
.setEmoji("🔺")
.setDescription("Affiche le top en fonction de la réputation")
.setValue("reputation"),
new StringSelectMenuOptionBuilder()
.setLabel("Niveau")
.setEmoji("📊")
.setDescription("Affiche le top en fonction du niveau")
.setValue("niveau"),
new StringSelectMenuOptionBuilder()
.setLabel("Teams bank")
.setEmoji("👑")
.setDescription("Affiche le top en fonction de l'argent des teams")
.setValue("team"),
new StringSelectMenuOptionBuilder()
.setLabel("Teams réputation")
.setEmoji("🔺")
.setDescription(
"Affiche le top en fonction de la réputation des teams",
)
.setValue("teamreputation"),
new StringSelectMenuOptionBuilder()
.setLabel("TeamDroper")
.setEmoji("🎁")
.setDescription(
"Affiche le top en fonction du nombre de coins donnés à une team",
)
.setValue("teamdroper"),
);
const row = new ActionRowBuilder().addComponents(select);
const replyMessage = await message.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
});
client.on("interactionCreate", async (interaction) => {
if (!interaction.isStringSelectMenu()) return;
if (interaction.customId === "topLeaderboard") {
const selected = interaction.values[0];
await interaction.deferUpdate();
const embed = await leaderboard(selected);
replyMessage.edit({ embeds: [embed] });
interaction.followUp({
content: "Leaderboard mis à jour",
ephemeral: true,
});
}
});
},
};
+79 -58
View File
@@ -1,58 +1,79 @@
const { EmbedBuilder } = require('discord.js');
const 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>',
permission: 0,
async execute(message, args, client) {
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
const pocket = user.pocket;
const bank = user.bank;
let title = 'Retrait Impossible';
let description = '';
if (args.length === 0) {
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.';
} else {
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]);
}
} else if (isNaN(args[0])) {
description = '❌ Vous devez spécifier un montant valide à retirer.';
} else if (bank <= 0) {
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.';
} else if (parseInt(args[0]) <= 0) {
description = '❌ Vous ne pouvez pas retirer une somme négative ou nulle.';
} else {
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]);
}
const embed = new EmbedBuilder()
.setTitle(title)
.setDescription(description)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
};
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>",
permission: 0,
async execute(message, args, client) {
const user = await new Promise((resolve, reject) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
const pocket = user.pocket;
const bank = user.bank;
let title = "Retrait Impossible";
let description = "";
if (args.length === 0) {
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.";
} else {
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],
);
}
} else if (isNaN(args[0])) {
description = "❌ Vous devez spécifier un montant valide à retirer.";
} else if (bank <= 0) {
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.";
} else if (parseInt(args[0]) <= 0) {
description =
"❌ Vous ne pouvez pas retirer une somme négative ou nulle.";
} else {
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,
],
);
}
const embed = new EmbedBuilder()
.setTitle(title)
.setDescription(description)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
};
+105 -88
View File
@@ -1,88 +1,105 @@
const { EmbedBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
module.exports = {
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) => {
if (err) reject(err);
resolve(row);
});
});
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.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
const randomAmount = Math.floor(Math.random() * (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]);
const works = [
`💼 Vous avez exploré une ancienne ruine et avez trouvé \`${randomAmount}\` coins.`,
`🛠️ Vous avez aidé un marchand à réparer son chariot et il vous a donné \`${randomAmount}\` coins en remerciement.`,
`🌳 En chassant dans la forêt, vous avez découvert un trésor caché contenant \`${randomAmount}\` coins.`,
`🔍 Après avoir résolu une énigme antique, vous avez reçu \`${randomAmount}\` coins comme récompense.`,
`🧪 Vous avez vendu des potions magiques sur le marché et avez gagné \`${randomAmount}\` coins.`,
`🕵️ En explorant une grotte sombre, vous avez trouvé \`${randomAmount}\` coins dissimulés dans un coffre.`,
`🐉 Après avoir vaincu un dragon, vous avez récupéré \`${randomAmount}\` coins dans son repaire.`,
`🏆 Vous avez participé à un tournoi de chevalerie et avez remporté \`${randomAmount}\` coins en prix.`,
`🗺️ En aidant un groupe de voyageurs perdus à retrouver leur chemin, vous avez reçu \`${randomAmount}\` coins.`,
`🔎 Après avoir résolu un mystère criminel, vous avez été récompensé par \`${randomAmount}\` coins par la ville.`,
`⚓ Vous avez navigué sur les mers et avez trouvé \`${randomAmount}\` coins dans une épave.`,
`⛏️ En explorant les catacombes, vous avez découvert \`${randomAmount}\` coins enfouis dans le sol.`,
`🌉 Après avoir construit un pont pour la communauté, vous avez reçu \`${randomAmount}\` coins comme gratitude.`,
`🦅 Vous avez réussi à apprivoiser un griffon et avez reçu \`${randomAmount}\` coins en récompense.`,
`⛏️ En découvrant une mine abandonnée, vous avez extrait \`${randomAmount}\` coins de minerai précieux.`,
`🏹 Vous avez secouru un groupe de voyageurs attaqués par des brigands et avez reçu \`${randomAmount}\` coins comme reconnaissance.`,
`📚 En explorant une ancienne bibliothèque abandonnée, vous avez trouvé \`${randomAmount}\` coins cachés dans un vieux livre.`,
`🏹 Après avoir participé à une compétition de tir à l'arc, vous avez remporté \`${randomAmount}\` coins en prix.`,
`😺 Vous avez sauvé un chaton coincé dans un arbre et son propriétaire vous a donné \`${randomAmount}\` coins en guise de remerciement.`,
`🕊️ En réussissant à apaiser une querelle entre deux factions rivales, vous avez été récompensé par \`${randomAmount}\` coins.`,
`🌊 Vous avez découvert un trésor antique dans les profondeurs de la mer et avez récupéré \`${randomAmount}\` coins.`,
`🏫 Après avoir construit une école pour les enfants du village, vous avez reçu \`${randomAmount}\` coins de la part des parents reconnaissants.`,
`👮 Vous avez capturé un voleur recherché et avez été récompensé par \`${randomAmount}\` coins par les autorités locales.`,
`🏞 En explorant une caverne mystérieuse, vous avez trouvé \`${randomAmount}\` coins dissimulés derrière une cascade.`,
`🔨 Après avoir prêté main-forte à un forgeron pour créer une armure, vous avez été payé \`${randomAmount}\` coins pour votre travail.`,
`🏛️ Vous avez découvert un artefact magique dans les ruines d'un temple ancien et l'avez échangé contre \`${randomAmount}\` coins.`,
`🚶 En offrant vos services en tant que guide à des voyageurs perdus, vous avez gagné \`${randomAmount}\` coins pour les ramener en sécurité.`,
`🔥 Après avoir éteint un incendie qui menaçait le village, vous avez été récompensé par \`${randomAmount}\` coins par les habitants reconnaissants.`,
`🎉 Vous avez organisé un festival annuel pour célébrer la récolte et avez collecté \`${randomAmount}\` coins en dons des participants.`,
`🐉 En sauvant un noble des griffes d'une bête féroce, vous avez été généreusement récompensé par \`${randomAmount}\` coins et des terres.`,
`🏰 Après avoir découvert un passage secret dans le château du roi, vous avez trouvé \`${randomAmount}\` coins cachés dans un coffre-fort.`,
`👨‍👩‍👧‍👦 Vous avez résolu un conflit familial ancien et avez reçu \`${randomAmount}\` coins en récompense de votre médiation.`,
`⛏️ En explorant les montagnes, vous avez trouvé une mine abandonnée remplie de \`${randomAmount}\` coins de minerai précieux.`,
`📜 Après avoir livré un message crucial à temps, vous avez été payé \`${randomAmount}\` coins par le destinataire reconnaissant.`,
`🤝 Vous avez négocié un accord commercial fructueux entre deux cités et avez reçu \`${randomAmount}\` coins comme commission.`,
`📖 Vous avez ecrit un livre. Une maison d'édition vous l'a racheter \`${randomAmount}\` coins.`,
`💜 Vous avez fait un don au restorant du coeur. L'état vous rembourse \`${randomAmount}\` coins.`,
`🎂 \`${randomAmount}\` coins, c'est la somme que vous a donner votre parton pour l'anniversaire de la creation de l'entreprise.`,
`👶 Vous avez gagner \`${Math.round(randomAmount / 2)}\` coins en gardant l'enfant de vos voisins. Ils sont très satisfait de votre travail et on donc double votre salaire. Vous repartez avec \`${randomAmount}\`.`,
];
const embed = new EmbedBuilder()
.setTitle('Travail Terminé')
.setDescription(works[Math.floor(Math.random() * works.length)])
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
};
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: "",
permission: 0,
async execute(message, args, client) {
const user = await new Promise((resolve, reject) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
const 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.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
const randomAmount = Math.floor(Math.random() * (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],
);
const works = [
`💼 Vous avez exploré une ancienne ruine et avez trouvé \`${randomAmount}\` coins.`,
`🛠️ Vous avez aidé un marchand à réparer son chariot et il vous a donné \`${randomAmount}\` coins en remerciement.`,
`🌳 En chassant dans la forêt, vous avez découvert un trésor caché contenant \`${randomAmount}\` coins.`,
`🔍 Après avoir résolu une énigme antique, vous avez reçu \`${randomAmount}\` coins comme récompense.`,
`🧪 Vous avez vendu des potions magiques sur le marché et avez gagné \`${randomAmount}\` coins.`,
`🕵️ En explorant une grotte sombre, vous avez trouvé \`${randomAmount}\` coins dissimulés dans un coffre.`,
`🐉 Après avoir vaincu un dragon, vous avez récupéré \`${randomAmount}\` coins dans son repaire.`,
`🏆 Vous avez participé à un tournoi de chevalerie et avez remporté \`${randomAmount}\` coins en prix.`,
`🗺 En aidant un groupe de voyageurs perdus à retrouver leur chemin, vous avez reçu \`${randomAmount}\` coins.`,
`🔎 Après avoir résolu un mystère criminel, vous avez été récompensé par \`${randomAmount}\` coins par la ville.`,
` Vous avez navigué sur les mers et avez trouvé \`${randomAmount}\` coins dans une épave.`,
`⛏️ En explorant les catacombes, vous avez découvert \`${randomAmount}\` coins enfouis dans le sol.`,
`🌉 Après avoir construit un pont pour la communauté, vous avez reçu \`${randomAmount}\` coins comme gratitude.`,
`🦅 Vous avez réussi à apprivoiser un griffon et avez reçu \`${randomAmount}\` coins en récompense.`,
`⛏️ En découvrant une mine abandonnée, vous avez extrait \`${randomAmount}\` coins de minerai précieux.`,
`🏹 Vous avez secouru un groupe de voyageurs attaqués par des brigands et avez reçu \`${randomAmount}\` coins comme reconnaissance.`,
`📚 En explorant une ancienne bibliothèque abandonnée, vous avez trouvé \`${randomAmount}\` coins cachés dans un vieux livre.`,
`🏹 Après avoir participé à une compétition de tir à l'arc, vous avez remporté \`${randomAmount}\` coins en prix.`,
`😺 Vous avez sauvé un chaton coincé dans un arbre et son propriétaire vous a donné \`${randomAmount}\` coins en guise de remerciement.`,
`🕊️ En réussissant à apaiser une querelle entre deux factions rivales, vous avez été récompensé par \`${randomAmount}\` coins.`,
`🌊 Vous avez découvert un trésor antique dans les profondeurs de la mer et avez récupéré \`${randomAmount}\` coins.`,
`🏫 Après avoir construit une école pour les enfants du village, vous avez reçu \`${randomAmount}\` coins de la part des parents reconnaissants.`,
`👮 Vous avez capturé un voleur recherché et avez été récompensé par \`${randomAmount}\` coins par les autorités locales.`,
`🏞️ En explorant une caverne mystérieuse, vous avez trouvé \`${randomAmount}\` coins dissimulés derrière une cascade.`,
`🔨 Après avoir prêté main-forte à un forgeron pour créer une armure, vous avez été payé \`${randomAmount}\` coins pour votre travail.`,
`🏛️ Vous avez découvert un artefact magique dans les ruines d'un temple ancien et l'avez échangé contre \`${randomAmount}\` coins.`,
`🚶 En offrant vos services en tant que guide à des voyageurs perdus, vous avez gagné \`${randomAmount}\` coins pour les ramener en sécurité.`,
`🔥 Après avoir éteint un incendie qui menaçait le village, vous avez été récompensé par \`${randomAmount}\` coins par les habitants reconnaissants.`,
`🎉 Vous avez organisé un festival annuel pour célébrer la récolte et avez collecté \`${randomAmount}\` coins en dons des participants.`,
`🐉 En sauvant un noble des griffes d'une bête féroce, vous avez été généreusement récompensé par \`${randomAmount}\` coins et des terres.`,
`🏰 Après avoir découvert un passage secret dans le château du roi, vous avez trouvé \`${randomAmount}\` coins cachés dans un coffre-fort.`,
`👨‍👩‍👧‍👦 Vous avez résolu un conflit familial ancien et avez reçu \`${randomAmount}\` coins en récompense de votre médiation.`,
`⛏️ En explorant les montagnes, vous avez trouvé une mine abandonnée remplie de \`${randomAmount}\` coins de minerai précieux.`,
`📜 Après avoir livré un message crucial à temps, vous avez été payé \`${randomAmount}\` coins par le destinataire reconnaissant.`,
`🤝 Vous avez négocié un accord commercial fructueux entre deux cités et avez reçu \`${randomAmount}\` coins comme commission.`,
`📖 Vous avez ecrit un livre. Une maison d'édition vous l'a racheter \`${randomAmount}\` coins.`,
`💜 Vous avez fait un don au restorant du coeur. L'état vous rembourse \`${randomAmount}\` coins.`,
`🎂 \`${randomAmount}\` coins, c'est la somme que vous a donner votre parton pour l'anniversaire de la creation de l'entreprise.`,
`👶 Vous avez gagner \`${Math.round(randomAmount / 2)}\` coins en gardant l'enfant de vos voisins. Ils sont très satisfait de votre travail et on donc double votre salaire. Vous repartez avec \`${randomAmount}\`.`,
];
const embed = new EmbedBuilder()
.setTitle("Travail Terminé")
.setDescription(works[Math.floor(Math.random() * works.length)])
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
};
+67 -51
View File
@@ -1,51 +1,67 @@
const { EmbedBuilder } = require('discord.js');
const 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]',
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) => {
if (err) reject(err);
resolve(row);
});
});
let member = message.author;
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.';
} 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).';
} else if (message.mentions.users.first()) {
member = message.mentions.users.first();
description = `💰 Vous avez ajouté ${args[0]} à la ${args[1]} de ${member.tag}.`;
}
const embed = new EmbedBuilder()
.setTitle(title)
.setDescription(description)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
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 } });
},
};
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]",
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) => {
if (err) reject(err);
resolve(row);
},
);
});
let member = message.author;
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.";
} 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).";
} else if (message.mentions.users.first()) {
member = message.mentions.users.first();
description = `💰 Vous avez ajouté ${args[0]} à la ${args[1]} de ${member.tag}.`;
}
const embed = new EmbedBuilder()
.setTitle(title)
.setDescription(description)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
if (title !== "Erreur") {
db.run(
`UPDATE users SET ${args[1]} = ${args[1]} + ? WHERE guildId = ? AND userId = ?`,
[args[0], message.guild.id, member.id],
);
}
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
};
+126 -84
View File
@@ -1,88 +1,130 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder, PermissionFlagsBits, EmbedBuilder } = require('discord.js');
const 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>',
permission: 0,
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)) {
return message.reply({
embeds: [
new EmbedBuilder()
.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 }
});
}
let member = message.mentions.members.first() // || message.guild.members.get(args[0]);
if (!member) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez spécifier un membre du serveur.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
});
}
const motif = args[1]
if (motif.length < 2) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez indiquer un motif.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
});
}
let reponse
member.ban({ reason: motif })
.then(async () => {
const btn = new ButtonBuilder()
.setCustomId('mp')
.setLabel('Prevenir le membre en MP')
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(btn);
const embed = new EmbedBuilder()
.setTitle('Membre banni !')
.setDescription('Vous avez banni: <@' + member + '>\nMotif: `' + motif + '`')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
reponse = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } });
})
const filter = i => i.customId === 'mp' && i.user.id === message.author.id;
const collector = reponse.createMessageComponentCollector({ filter, time: 30000 })
collector.on('collect', async (interaction) => {
const embedBanni = new EmbedBuilder()
.setTitle('Bannissement !')
.setDescription('Vous avez été banni du serveur ' + interaction.guild.name + ', avec comme motif: `' + motif + '`')
.setColor("Red")
.setTimestamp()
member.send({ embeds: [embedBanni] })
interaction.reply({ content: '> **Le membre a été prevenu.**', ephemeral: true, allowedMentions: { repliedUser: false } });
});
collector.on('end', () => {
reponse.edit({ components: [], allowedMentions: { repliedUser: false } });
});
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)
) {
return message.reply({
embeds: [
new EmbedBuilder()
.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 },
});
}
};
let member = message.mentions.members.first(); // || message.guild.members.get(args[0]);
if (!member) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription("❌ Veuillez spécifier un membre du serveur.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
const motif = args[1];
if (motif.length < 2) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription("❌ Veuillez indiquer un motif.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
let reponse;
member.ban({ reason: motif }).then(async () => {
const btn = new ButtonBuilder()
.setCustomId("mp")
.setLabel("Prevenir le membre en MP")
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder().addComponents(btn);
const embed = new EmbedBuilder()
.setTitle("Membre banni !")
.setDescription(
"Vous avez banni: <@" + member + ">\nMotif: `" + motif + "`",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
reponse = await message.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
});
});
const filter = (i) =>
i.customId === "mp" && i.user.id === message.author.id;
const collector = reponse.createMessageComponentCollector({
filter,
time: 30000,
});
collector.on("collect", async (interaction) => {
const embedBanni = new EmbedBuilder()
.setTitle("Bannissement !")
.setDescription(
"Vous avez été banni du serveur " +
interaction.guild.name +
", avec comme motif: `" +
motif +
"`",
)
.setColor("Red")
.setTimestamp();
member.send({ embeds: [embedBanni] });
interaction.reply({
content: "> **Le membre a été prevenu.**",
ephemeral: true,
allowedMentions: { repliedUser: false },
});
});
collector.on("end", () => {
reponse.edit({ components: [], allowedMentions: { repliedUser: false } });
});
},
};
+39 -25
View File
@@ -1,23 +1,22 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const 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('💰')
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(btn);
.setCustomId("confirm")
.setLabel("💰")
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder().addComponents(btn);
/*const sentMessage = message.channel.send('_ _')
let contage = 0
while (contage == 100) {
@@ -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 },
});
});
},
};
+126 -84
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>',
permission: 0,
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)) {
return message.reply({
embeds: [
new EmbedBuilder()
.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 }
});
}
let member = message.mentions.members.first() //|| message.guild.members.get(args[0]);
if (!member) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez spécifier un membre du serveur.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
});
}
const motif = args[1]
if (motif.length < 2) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez indiquer un motif.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
});
}
let reponse
member.kick({ reason: motif })
.then(async () => {
const btn = new ButtonBuilder()
.setCustomId('mp')
.setLabel('Prevenir le membre en MP')
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(btn);
const embed = new EmbedBuilder()
.setTitle('Membre expulser !')
.setDescription('Vous avez expulser: <@' + member + '>\nMotif: `' + motif + '`')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
reponse = message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } });
})
const filter = i => i.customId === 'mp' && i.user.id === message.author.id;
const collector = reponse.createMessageComponentCollector({ filter, time: 30000 })
collector.on('collect', async (interaction) => {
const embedkick = new EmbedBuilder()
.setTitle('Expulsion !')
.setDescription('Vous avez été expulser du serveur ' + interaction.guild.name + ', avec comme motif: `' + motif + '`')
.setColor("Red")
.setTimestamp()
member.send({ embeds: [embedkick] })
interaction.reply({ content: '> **Le membre a été prevenu.**', ephemeral: true, allowedMentions: { repliedUser: false } });
});
collector.on('end', () => {
reponse.edit({ components: [], allowedMentions: { repliedUser: false } });
});
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)
) {
return message.reply({
embeds: [
new EmbedBuilder()
.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 },
});
}
};
let member = message.mentions.members.first(); //|| message.guild.members.get(args[0]);
if (!member) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription("❌ Veuillez spécifier un membre du serveur.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
const motif = args[1];
if (motif.length < 2) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription("❌ Veuillez indiquer un motif.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
let reponse;
member.kick({ reason: motif }).then(async () => {
const btn = new ButtonBuilder()
.setCustomId("mp")
.setLabel("Prevenir le membre en MP")
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder().addComponents(btn);
const embed = new EmbedBuilder()
.setTitle("Membre expulser !")
.setDescription(
"Vous avez expulser: <@" + member + ">\nMotif: `" + motif + "`",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
reponse = message.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
});
});
const filter = (i) =>
i.customId === "mp" && i.user.id === message.author.id;
const collector = reponse.createMessageComponentCollector({
filter,
time: 30000,
});
collector.on("collect", async (interaction) => {
const embedkick = new EmbedBuilder()
.setTitle("Expulsion !")
.setDescription(
"Vous avez été expulser du serveur " +
interaction.guild.name +
", avec comme motif: `" +
motif +
"`",
)
.setColor("Red")
.setTimestamp();
member.send({ embeds: [embedkick] });
interaction.reply({
content: "> **Le membre a été prevenu.**",
ephemeral: true,
allowedMentions: { repliedUser: false },
});
});
collector.on("end", () => {
reponse.edit({ components: [], allowedMentions: { repliedUser: false } });
});
},
};
+174 -114
View File
@@ -1,118 +1,178 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder, PermissionFlagsBits, EmbedBuilder } = require('discord.js');
const 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>',
permission: 0,
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)) {
return message.reply({
embeds: [
new EmbedBuilder()
.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 }
});
}
if (!args[0] || !args[1] || !args[2]) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez respecter ce format : <@membre|membreId> <min> <raison>.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
});
}
let member = message.mentions.members.first() //|| message.guild.members.get(args[0])
if (!member) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez spécifier un membre du serveur.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
});
}
let time = args[1]
if (time.length <= 3 || !time.includes('min')) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez indiquer une durée valide <`x`min>.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
});
}
time = time.replace('min', '')
const motif = args[2]
if (motif.length <= 2) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Veuillez indiquer un motif (minimum 3caractère).')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
});
}
let reponse
member.timeout(time * 60 * 1000, motif)
.then(async () => {
const btn = new ButtonBuilder()
.setCustomId('mp')
.setLabel('Prevenir le membre en MP')
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(btn);
const embed = new EmbedBuilder()
.setTitle('Membre mute !')
.setDescription('Vous avez mute: <@' + member + '>\nTemps: `' + time + '`min\nMotif: `' + motif + '`')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
reponse = message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } });
})
const filter = i => i.customId === 'mp' && i.user.id === message.author.id;
const collector = reponse.createMessageComponentCollector({ filter, time: 30000 })
collector.on('collect', async (interaction) => {
const embedkick = new EmbedBuilder()
.setTitle('Expulsion !')
.setDescription('Vous avez été expulser du serveur ' + interaction.guild.name + ', avec comme motif: `' + motif + '`')
.setColor("Red")
.setTimestamp()
member.send({ embeds: [embedkick] })
interaction.reply({ content: '> **Le membre a été prevenu.**', ephemeral: true, allowedMentions: { repliedUser: false } });
});
collector.on('end', () => {
reponse.edit({ components: [], allowedMentions: { repliedUser: false } });
});
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)
) {
return message.reply({
embeds: [
new EmbedBuilder()
.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 },
});
}
};
if (!args[0] || !args[1] || !args[2]) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription(
"❌ Veuillez respecter ce format : <@membre|membreId> <min> <raison>.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
let member = message.mentions.members.first(); //|| message.guild.members.get(args[0])
if (!member) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription("❌ Veuillez spécifier un membre du serveur.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
let time = args[1];
if (time.length <= 3 || !time.includes("min")) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription("❌ Veuillez indiquer une durée valide <`x`min>.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
time = time.replace("min", "");
const motif = args[2];
if (motif.length <= 2) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("Erreur")
.setDescription(
"❌ Veuillez indiquer un motif (minimum 3caractère).",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
let reponse;
member.timeout(time * 60 * 1000, motif).then(async () => {
const btn = new ButtonBuilder()
.setCustomId("mp")
.setLabel("Prevenir le membre en MP")
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder().addComponents(btn);
const embed = new EmbedBuilder()
.setTitle("Membre mute !")
.setDescription(
"Vous avez mute: <@" +
member +
">\nTemps: `" +
time +
"`min\nMotif: `" +
motif +
"`",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
reponse = message.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
});
});
const filter = (i) =>
i.customId === "mp" && i.user.id === message.author.id;
const collector = reponse.createMessageComponentCollector({
filter,
time: 30000,
});
collector.on("collect", async (interaction) => {
const embedkick = new EmbedBuilder()
.setTitle("Expulsion !")
.setDescription(
"Vous avez été expulser du serveur " +
interaction.guild.name +
", avec comme motif: `" +
motif +
"`",
)
.setColor("Red")
.setTimestamp();
member.send({ embeds: [embedkick] });
interaction.reply({
content: "> **Le membre a été prevenu.**",
ephemeral: true,
allowedMentions: { repliedUser: false },
});
});
collector.on("end", () => {
reponse.edit({ components: [], allowedMentions: { repliedUser: false } });
});
},
};
+30 -15
View File
@@ -1,29 +1,44 @@
const { EmbedBuilder } = require('discord.js');
const 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) => {
if (err) reject(err);
resolve(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 },
});
},
};
+67 -51
View File
@@ -1,51 +1,67 @@
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]',
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) => {
if (err) reject(err);
resolve(row);
});
});
let member = message.author;
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.';
} 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).';
} else if (message.mentions.users.first()) {
member = message.mentions.users.first();
description = `💰 Vous avez retiré ${args[0]} à la ${args[1]} de ${member.tag}.`;
}
const embed = new EmbedBuilder()
.setTitle(title)
.setDescription(description)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
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 } });
},
};
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]",
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) => {
if (err) reject(err);
resolve(row);
},
);
});
let member = message.author;
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.";
} 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).";
} else if (message.mentions.users.first()) {
member = message.mentions.users.first();
description = `💰 Vous avez retiré ${args[0]} à la ${args[1]} de ${member.tag}.`;
}
const embed = new EmbedBuilder()
.setTitle(title)
.setDescription(description)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
if (title !== "Erreur") {
db.run(
`UPDATE users SET ${args[1]} = ${args[1]} - ? WHERE guildId = ? AND userId = ?`,
[args[0], message.guild.id, member.id],
);
}
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
},
};
+47 -20
View File
@@ -1,41 +1,68 @@
const { EmbedBuilder } = require('discord.js');
const 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 :')
const embed = new EmbedBuilder()
.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() });
return 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 },
});
}
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 } });
},
+37 -21
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) => {
if (err) reject(err);
resolve(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 } });
+79 -34
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.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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(),
});
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 },
});
},
};
+535 -366
View File
@@ -1,366 +1,535 @@
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
};
const cardSymbols = ['♠️', '♥️', '♦️', '♣️'];
const usersWithGameInProgress = new Map();
setInterval(() => {
usersWithGameInProgress.clear();
}, 180000);
function drawCard() {
const symbol = cardSymbols[Math.floor(Math.random() * cardSymbols.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>',
permission: 0,
async execute(message, args, client) {
if (args.length !== 1) {
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\`.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
});
} else if (isNaN(args[0])) {
embedColor(message.author.id, message.guild.id).then(color => {
const embed = new EmbedBuilder()
.setTitle('🃏 Blackjack')
.setDescription(`La mise doit être un nombre.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
});
} else if (args[0] < 25) {
embedColor(message.author.id, message.guild.id).then(color => {
const embed = new EmbedBuilder()
.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() })
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
});
}
const pocket = await new Promise((resolve, reject) => {
db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => {
if (err) {
reject(err);
} else {
resolve(row.pocket);
}
});
});
if (pocket < args[0]) {
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.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
});
} else {
const user = message.author;
const guildId = message.guild.id;
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) => {
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);
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) => {
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) => {
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');
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 }
)
.setColor('#0099ff');
const row = new ActionRowBuilder()
.addComponents(
new ButtonBuilder()
.setCustomId('blackjack_hit')
.setLabel('Hit')
.setStyle(ButtonStyle.Primary),
new ButtonBuilder()
.setCustomId('blackjack_stand')
.setLabel('Stand')
.setStyle(ButtonStyle.Primary),
new ButtonBuilder()
.setCustomId('blackjack_cancel')
.setLabel('Annuler')
.setStyle(ButtonStyle.Danger)
);
const msg = await message.channel.send({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } });
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) => {
if (err) {
reject(err);
} else {
resolve();
}
});
});
usersWithGameInProgress.set(user.id);
collector.on('collect', async i => {
if (i.user.id !== user.id) {
return i.reply({ content: ":x: Vous n'avez pas la permission d'interagir avec ces boutons", ephemeral: true });
}
await i.deferUpdate();
if (i.customId === 'blackjack_hit') {
playerCards.push(drawCard());
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) => {
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) => {
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');
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');
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 });
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);
while (dealerTotal < 17) {
dealerCards.push(drawCard());
dealerTotal = dealerCards.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) => {
if (err) {
reject(err);
} else {
resolve(row.pocket || 0);
}
});
});
await new Promise((resolve, reject) => {
db.run(`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, [pocketAmount + amount * 1.5, message.author.id, message.guild.id], (err) => {
if (err) {
reject(err);
} else {
resolve();
}
});
});
const winEmbed = new EmbedBuilder()
.setTitle('Blackjack 🎲')
.setDescription(result)
.setColor('#0099ff');
message.reply({ embeds: [winEmbed], allowedMentions: { repliedUser: false } });
usersWithGameInProgress.delete(user.id);
} else if (dealerTotal > playerTotal) {
result = `Le croupier a ${dealerTotal} et gagne. Vous avez perdu ${amount} ${currencyName}.`;
const loseEmbed = new EmbedBuilder()
.setTitle('Blackjack 🎲')
.setDescription(result)
.setColor('#0099ff');
message.reply({ embeds: [loseEmbed], allowedMentions: { repliedUser: false } });
usersWithGameInProgress.delete(user.id);
} else if (dealerTotal < playerTotal) {
let pocketAmount = await new Promise((resolve, reject) => {
db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => {
if (err) {
reject(err);
} else {
resolve(row.pocket || 0);
}
});
});
const winnings = amount * 1.5;
await new Promise((resolve, reject) => {
db.run(`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, [pocketAmount + winnings, message.author.id, message.guild.id], (err) => {
if (err) {
reject(err);
} else {
resolve();
}
});
});
result = `Vous gagnez ! Vous avez gagné ${winnings} ${currencyName}.`;
const winEmbed = new EmbedBuilder()
.setTitle('Blackjack 🎲')
.setDescription(result)
.setColor('#0099ff');
message.reply({ embeds: [winEmbed], allowedMentions: { repliedUser: false } });
usersWithGameInProgress.delete(user.id);
} else {
result = 'Il y a eu égalité. Vous récupérez votre mise.';
let pocketAmount = await db.get(`${guildId}.pocket.${user.id}`) || 0;
await db.set(`${guildId}.pocket.${user.id}`, pocketAmount + amount);
const tieEmbed = new EmbedBuilder()
.setTitle('Blackjack 🎲')
.setDescription(result)
.setColor('#0099ff');
message.reply({ embeds: [tieEmbed], allowedMentions: { repliedUser: false } });
}
usersWithGameInProgress.delete(user.id);
collector.stop();
} else if (i.customId === 'blackjack_cancel') {
let pocketAmount = await new Promise((resolve, reject) => {
db.get(`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => {
if (err) {
reject(err);
} else {
resolve(row.pocket || 0);
}
});
});
await new Promise((resolve, reject) => {
db.run(`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`, [pocketAmount + amount / 2, message.author.id, message.guild.id], (err) => {
if (err) {
reject(err);
} else {
resolve();
}
});
});
const cancelEmbed = new EmbedBuilder()
.setTitle('Blackjack 🎲')
.setDescription('Partie annulée. Vous récupérez la moitié de votre mise.')
.setColor('#0099ff');
message.reply({ embeds: [cancelEmbed], allowedMentions: { repliedUser: false } });
usersWithGameInProgress.delete(user.id);
collector.stop();
}
});
}
}
};
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,
};
const cardSymbols = ["♠️", "♥️", "♦️", "♣️"];
const usersWithGameInProgress = new Map();
setInterval(() => {
usersWithGameInProgress.clear();
}, 180000);
function drawCard() {
const symbol = cardSymbols[Math.floor(Math.random() * cardSymbols.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>",
permission: 0,
async execute(message, args, client) {
if (args.length !== 1) {
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\`.`,
)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
} else if (isNaN(args[0])) {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle("🃏 Blackjack")
.setDescription(`La mise doit être un nombre.`)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
} else if (args[0] < 25) {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.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(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
}
const pocket = await new Promise((resolve, reject) => {
db.get(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) {
reject(err);
} else {
resolve(row.pocket);
}
},
);
});
if (pocket < args[0]) {
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.`,
)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
} else {
const user = message.author;
const guildId = message.guild.id;
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) => {
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,
);
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) => {
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) => {
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");
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,
},
)
.setColor("#0099ff");
const row = new ActionRowBuilder().addComponents(
new ButtonBuilder()
.setCustomId("blackjack_hit")
.setLabel("Hit")
.setStyle(ButtonStyle.Primary),
new ButtonBuilder()
.setCustomId("blackjack_stand")
.setLabel("Stand")
.setStyle(ButtonStyle.Primary),
new ButtonBuilder()
.setCustomId("blackjack_cancel")
.setLabel("Annuler")
.setStyle(ButtonStyle.Danger),
);
const msg = await message.channel.send({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
});
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) => {
if (err) {
reject(err);
} else {
resolve();
}
},
);
});
usersWithGameInProgress.set(user.id);
collector.on("collect", async (i) => {
if (i.user.id !== user.id) {
return i.reply({
content:
":x: Vous n'avez pas la permission d'interagir avec ces boutons",
ephemeral: true,
});
}
await i.deferUpdate();
if (i.customId === "blackjack_hit") {
playerCards.push(drawCard());
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) => {
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) => {
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");
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");
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,
});
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,
);
while (dealerTotal < 17) {
dealerCards.push(drawCard());
dealerTotal = dealerCards.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) => {
if (err) {
reject(err);
} else {
resolve(row.pocket || 0);
}
},
);
});
await new Promise((resolve, reject) => {
db.run(
`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`,
[
pocketAmount + amount * 1.5,
message.author.id,
message.guild.id,
],
(err) => {
if (err) {
reject(err);
} else {
resolve();
}
},
);
});
const winEmbed = new EmbedBuilder()
.setTitle("Blackjack 🎲")
.setDescription(result)
.setColor("#0099ff");
message.reply({
embeds: [winEmbed],
allowedMentions: { repliedUser: false },
});
usersWithGameInProgress.delete(user.id);
} else if (dealerTotal > playerTotal) {
result = `Le croupier a ${dealerTotal} et gagne. Vous avez perdu ${amount} ${currencyName}.`;
const loseEmbed = new EmbedBuilder()
.setTitle("Blackjack 🎲")
.setDescription(result)
.setColor("#0099ff");
message.reply({
embeds: [loseEmbed],
allowedMentions: { repliedUser: false },
});
usersWithGameInProgress.delete(user.id);
} else if (dealerTotal < playerTotal) {
let pocketAmount = await new Promise((resolve, reject) => {
db.get(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) {
reject(err);
} else {
resolve(row.pocket || 0);
}
},
);
});
const winnings = amount * 1.5;
await new Promise((resolve, reject) => {
db.run(
`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`,
[pocketAmount + winnings, message.author.id, message.guild.id],
(err) => {
if (err) {
reject(err);
} else {
resolve();
}
},
);
});
result = `Vous gagnez ! Vous avez gagné ${winnings} ${currencyName}.`;
const winEmbed = new EmbedBuilder()
.setTitle("Blackjack 🎲")
.setDescription(result)
.setColor("#0099ff");
message.reply({
embeds: [winEmbed],
allowedMentions: { repliedUser: false },
});
usersWithGameInProgress.delete(user.id);
} else {
result = "Il y a eu égalité. Vous récupérez votre mise.";
let pocketAmount =
(await db.get(`${guildId}.pocket.${user.id}`)) || 0;
await db.set(`${guildId}.pocket.${user.id}`, pocketAmount + amount);
const tieEmbed = new EmbedBuilder()
.setTitle("Blackjack 🎲")
.setDescription(result)
.setColor("#0099ff");
message.reply({
embeds: [tieEmbed],
allowedMentions: { repliedUser: false },
});
}
usersWithGameInProgress.delete(user.id);
collector.stop();
} else if (i.customId === "blackjack_cancel") {
let pocketAmount = await new Promise((resolve, reject) => {
db.get(
`SELECT pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) {
reject(err);
} else {
resolve(row.pocket || 0);
}
},
);
});
await new Promise((resolve, reject) => {
db.run(
`UPDATE users SET pocket = ? WHERE userId = ? AND guildId = ?`,
[pocketAmount + amount / 2, message.author.id, message.guild.id],
(err) => {
if (err) {
reject(err);
} else {
resolve();
}
},
);
});
const cancelEmbed = new EmbedBuilder()
.setTitle("Blackjack 🎲")
.setDescription(
"Partie annulée. Vous récupérez la moitié de votre mise.",
)
.setColor("#0099ff");
message.reply({
embeds: [cancelEmbed],
allowedMentions: { repliedUser: false },
});
usersWithGameInProgress.delete(user.id);
collector.stop();
}
});
}
},
};
+149 -91
View File
@@ -1,99 +1,157 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const 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: '',
permission: 0,
aliases: ["roulette"],
description: "Lance une roulette 100% gagante. (coûte une clef)",
emote: "🎲",
utilisation: "",
permission: 0,
async execute(message, args, client) {
const key = await new Promise((resolve, reject) => {
db.get(`SELECT key FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => {
if (err) {
reject(err);
} else {
resolve(row.key);
}
});
});
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])
async execute(message, args, client) {
const key = await new Promise((resolve, reject) => {
db.get(
`SELECT key FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) {
reject(err);
} else {
resolve(row.key);
}
},
);
});
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')
.setDescription(`🪙👑🗝️\n💰🔺🪙\n🪙🪙🗝️`)
const embed = new EmbedBuilder()
.setTitle("🗝️ Box")
.setDescription(`🪙👑🗝️\n💰🔺🪙\n🪙🪙🗝️`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag} | Il te reste ${key - 1}clef`,
iconURL: message.author.displayAvatarURL(),
});
const msg = await message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
await new Promise((resolve) => setTimeout(resolve, 1000));
const result = Math.floor(Math.random() * 30);
let gain = "";
let emoji = "";
let recompense = "";
if (result === 0) {
gain = "30000";
emoji = "💰";
recompense = "bank";
} else if (result === 1) {
gain = "5";
emoji = "🗝️";
recompense = "key";
} else if (result === 2) {
emoji = "👑";
recompense = "couronne";
} else if (result % 2 === 0) {
gain = "5000";
emoji = "🪙";
recompense = "pocket";
} else {
gain = "3";
emoji = "🔺";
recompense = "reputation";
}
if (recompense !== "couronne") {
await new Promise((resolve, reject) => {
db.run(
`UPDATE users SET ${recompense} = ${recompense} + ? WHERE userId = ? AND guildId = ?`,
[gain, message.author.id, message.guild.id],
(err) => {
if (err) {
reject(err);
} else {
resolve();
}
},
);
});
msg.delete();
message.reply({
embeds: [
new EmbedBuilder()
.setTitle("🗝️ Box")
.setDescription(
`${(emoji, emoji, emoji)}\n${(emoji, emoji, emoji)}\n${(emoji, emoji, emoji)}\n\nVous avez gagner ${gain}${recompense} !`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag} | Il te reste ${key - 1}clef`, iconURL: message.author.displayAvatarURL() })
.setFooter({
text: `Demandé par ${message.author.tag} | Il te reste ${key - 1}clef`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} else {
db.run(
`UPDATE users SET bank = bank + ? WHERE userId = ? AND guildId = ?`,
[15000, message.author.id, message.guild.id],
);
db.run(
`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`,
[5000, message.author.id, message.guild.id],
);
db.run(
`UPDATE users SET reputation = reputation + ? WHERE userId = ? AND guildId = ?`,
[5, message.author.id, message.guild.id],
);
db.run(
`UPDATE users SET key = key + ? WHERE userId = ? AND guildId = ?`,
[5, message.author.id, message.guild.id],
);
db.run(`UPDATE users SET xp = xp + ? WHERE userId = ? AND guildId = ?`, [
50,
message.author.id,
message.guild.id,
]);
db.run(
`UPDATE users SET lvl = lvl + ? WHERE userId = ? AND guildId = ?`,
[2, message.author.id, message.guild.id],
);
const msg = await message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
await new Promise(resolve => setTimeout(resolve, 1000));
const result = Math.floor(Math.random() * 30);
let gain = '';
let emoji = '';
let recompense = '';
if (result === 0) {
gain = '30000';
emoji = '💰';
recompense = 'bank';
} else if (result === 1) {
gain = '5';
emoji = '🗝️';
recompense = 'key';
} else if (result === 2) {
emoji = '👑';
recompense = 'couronne';
} else if (result % 2 === 0) {
gain = '5000';
emoji = '🪙';
recompense = 'pocket';
} else {
gain = '3';
emoji = '🔺';
recompense = 'reputation';
}
if (recompense !== 'couronne') {
await new Promise((resolve, reject) => {
db.run(`UPDATE users SET ${recompense} = ${recompense} + ? WHERE userId = ? AND guildId = ?`, [gain, message.author.id, message.guild.id], (err) => {
if (err) {
reject(err);
} else {
resolve();
}
});
});
msg.delete()
message.reply({ embeds: [
new EmbedBuilder()
.setTitle('🗝️ Box')
.setDescription(`${emoji, emoji, emoji}\n${emoji, emoji, emoji}\n${emoji, emoji, emoji}\n\nVous avez gagner ${gain}${recompense} !`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag} | Il te reste ${key - 1}clef`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
} else {
db.run(`UPDATE users SET bank = bank + ? WHERE userId = ? AND guildId = ?`, [15000, message.author.id, message.guild.id])
db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [5000, message.author.id, message.guild.id])
db.run(`UPDATE users SET reputation = reputation + ? WHERE userId = ? AND guildId = ?`, [5, message.author.id, message.guild.id])
db.run(`UPDATE users SET key = key + ? WHERE userId = ? AND guildId = ?`, [5, message.author.id, message.guild.id])
db.run(`UPDATE users SET xp = xp + ? WHERE userId = ? AND guildId = ?`, [50, message.author.id, message.guild.id])
db.run(`UPDATE users SET lvl = lvl + ? WHERE userId = ? AND guildId = ?`, [2, message.author.id, message.guild.id])
msg.delete()
message.reply({ embeds: [
new EmbedBuilder()
.setTitle('🗝️ Box')
.setDescription(`${emoji, emoji, emoji}\n${emoji, emoji, emoji}\n${emoji, emoji, emoji}\n\n## **Vous avez gagner \`15000\`coins en bank, \`5000\`coins en poche, \`5\`reputation, \`5\`clef, \`50\`xp et \`5\`niveau !!**`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag} | Il te reste ${key - 1}clef`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
}
msg.delete();
message.reply({
embeds: [
new EmbedBuilder()
.setTitle("🗝️ Box")
.setDescription(
`${(emoji, emoji, emoji)}\n${(emoji, emoji, emoji)}\n${(emoji, emoji, emoji)}\n\n## **Vous avez gagner \`15000\`coins en bank, \`5000\`coins en poche, \`5\`reputation, \`5\`clef, \`50\`xp et \`5\`niveau !!**`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag} | Il te reste ${key - 1}clef`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
};
},
};
+156 -76
View File
@@ -1,109 +1,169 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const 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) => {
if (err) {
reject(err);
} else {
resolve(row.pocket);
}
});
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
}
if (args.length !== 3) {
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
}
return;
}
if (isNaN(args[0]) && !args[0] == "all") {
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
} else if (mise < 25) {
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
} 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 => {
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
}
embedColor(message.author.id, message.guild.id).then(color => {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
await new Promise(resolve => setTimeout(resolve, 7500));
await new Promise((resolve) => setTimeout(resolve, 7500));
const result = Math.floor(Math.random() * 6) + 1;
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) => {
if (err) {
reject(err);
} else {
resolve();
}
});
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
} else {
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
}
}
};
},
};
+356 -197
View File
@@ -1,12 +1,17 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const 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,231 +27,358 @@ module.exports = {
member = args[0];
mise = args[1];
} else {
return message.reply({ embeds: [
new EmbedBuilder()
.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 } })
return message.reply({
embeds: [
new EmbedBuilder()
.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 },
});
}
if (!member || !mise) {
return message.reply({ embeds: [
new EmbedBuilder()
.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 } })
return message.reply({
embeds: [
new EmbedBuilder()
.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 },
});
}
if (isNaN(mise)) {
return message.reply({ embeds: [
new EmbedBuilder()
.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 } })
return message.reply({
embeds: [
new EmbedBuilder()
.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 },
});
}
if (mise < 25) {
return message.reply({ embeds: [
new EmbedBuilder()
.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 } })
return message.reply({
embeds: [
new EmbedBuilder()
.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 },
});
}
if (member === message.author.id) {
return message.reply({ embeds: [
new EmbedBuilder()
.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 } })
return message.reply({
embeds: [
new EmbedBuilder()
.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 },
});
}
if (member === client.user.id) {
return message.reply({ embeds: [
new EmbedBuilder()
.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 } })
return message.reply({
embeds: [
new EmbedBuilder()
.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 },
});
}
if (client.users.cache.get(member)?.bot) {
return message.reply({ embeds: [
new EmbedBuilder()
.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 } })
if (client.users.cache.get(member)?.bot) {
return message.reply({
embeds: [
new EmbedBuilder()
.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 },
});
}
const pocketUser = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => {
if (err) {
reject(err);
} else {
if (row) {
resolve(row.pocket);
db.get(
`SELECT * FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) {
reject(err);
} else {
resolve(null);
if (row) {
resolve(row.pocket);
} else {
resolve(null);
}
}
}
});
},
);
});
const pocketMember = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE userId = ? AND guildId = ?`, [member, message.guild.id], (err, row) => {
if (err) {
reject(err);
} else {
if (row) {
resolve(row.pocket);
db.get(
`SELECT * FROM users WHERE userId = ? AND guildId = ?`,
[member, message.guild.id],
(err, row) => {
if (err) {
reject(err);
} else {
resolve(null);
if (row) {
resolve(row.pocket);
} else {
resolve(null);
}
}
}
});
},
);
});
if (pocketUser === null) {
return message.reply({ embeds: [
new EmbedBuilder()
.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 } })
return message.reply({
embeds: [
new EmbedBuilder()
.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 },
});
}
if (pocketMember === null) {
return message.reply({ embeds: [
new EmbedBuilder()
.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 } })
return message.reply({
embeds: [
new EmbedBuilder()
.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 },
});
}
if (pocketUser < mise) {
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.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
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.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
if (pocketMember < mise) {
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.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
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.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
if (pocketUser === 0) {
return message.reply({ embeds: [
new EmbedBuilder()
.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 } })
return message.reply({
embeds: [
new EmbedBuilder()
.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 },
});
}
if (pocketMember === 0) {
return message.reply({ embeds: [
new EmbedBuilder()
.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 } })
return message.reply({
embeds: [
new EmbedBuilder()
.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 },
});
}
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: [
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.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], components: [actionRow] });
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.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
components: [actionRow],
});
const timer = Math.floor(Math.random() * 10000) + 5000
const timer = Math.floor(Math.random() * 10000) + 5000;
let fincollector = false;
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: [
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()
] });
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(),
],
});
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: [
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()
] });
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(),
],
});
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: [
new EmbedBuilder()
.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: [] });
sendMessage.edit({
embeds: [
new EmbedBuilder()
.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: [],
});
}
});
}
};
},
};
+155 -76
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
} else if (isNaN(args[0])) {
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
} else if (args[0] < 25) {
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
}
const pocket = await new Promise((resolve, reject) => {
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);
}
});
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
}
embedColor(message.author.id, message.guild.id).then(color => {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
await new Promise(resolve => setTimeout(resolve, 7500));
await new Promise((resolve) => setTimeout(resolve, 7500));
let nombre1 = await Math.floor(Math.random() * 10)
let nombre2 = await Math.floor(Math.random() * (nombre1 + 1))
let nombre3 = await Math.floor(Math.random() * (nombre2 + 2))
let nombre1 = await Math.floor(Math.random() * 10);
let nombre2 = await Math.floor(Math.random() * (nombre1 + 1));
let nombre3 = await Math.floor(Math.random() * (nombre2 + 2));
let gain = 0;
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) => {
if (err) {
reject(err);
} else {
resolve();
}
});
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
} else if (gain == args[0] * 2) {
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
} else {
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
}
}
};
},
};
+186 -110
View File
@@ -1,151 +1,227 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const 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: [
new EmbedBuilder()
.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 } })
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\`.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
} else if (isNaN(args[0])) {
return message.reply({ embeds: [
new EmbedBuilder()
.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 } })
return message.reply({
embeds: [
new EmbedBuilder()
.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 },
});
} else if (args[0] < 25) {
return message.reply({ embeds: [
new EmbedBuilder()
.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: [
new EmbedBuilder()
.setTitle('🪨 Pierre Feuille Ciseau')
.setDescription(`La coup doit être \`pierre\`, \`feuille\` ou \`ciseau\`.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
return message.reply({
embeds: [
new EmbedBuilder()
.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: [
new EmbedBuilder()
.setTitle("🪨 Pierre Feuille Ciseau")
.setDescription(
`La coup doit être \`pierre\`, \`feuille\` ou \`ciseau\`.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
const pocket = await new Promise((resolve, reject) => {
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);
}
});
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.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
const sendMessage = await message.reply({
embeds: [
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 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 },
});
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...`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false } })
await new Promise(resolve => setTimeout(resolve, 7500));
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: [
new EmbedBuilder()
.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() })
] })
sendMessage.edit({
embeds: [
new EmbedBuilder()
.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(),
}),
],
});
await new Promise((resolve, reject) => {
db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [gain, message.author.id, message.guild.id], (err) => {
if (err) {
reject(err);
} else {
resolve();
}
});
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();
}
},
);
});
}
};
},
};
+159 -78
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) => {
if (err) {
reject(err);
} else {
resolve(row.pocket);
}
});
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
}
if (args.length !== 2) {
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
} else if (isNaN(args[0]) && !args[0] == "all") {
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
} else if (mise < 25) {
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
} else if (args[1] !== 'pile' && args[1] !== 'face' && args[1] !== 'p' && args[1] !== 'f') {
embedColor(message.author.id, message.guild.id).then(color => {
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
}
embedColor(message.author.id, message.guild.id).then(color => {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
await new Promise(resolve => setTimeout(resolve, 7500));
await new Promise((resolve) => setTimeout(resolve, 7500));
const result = Math.floor(Math.random() * 2);
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) => {
if (err) {
reject(err);
} else {
resolve();
}
});
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
} else {
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
}
}
};
},
};
+120 -63
View File
@@ -1,87 +1,124 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const 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) => {
if (err) {
reject(err);
} else {
resolve(row.pocket);
}
});
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
}
if (isNaN(args[0]) && !args[0] == "all") {
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
} else if (mise < 25) {
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
}
return;
}
embedColor(message.author.id, message.guild.id).then(color => {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
await new Promise(resolve => setTimeout(resolve, 7500));
await new Promise((resolve) => setTimeout(resolve, 7500));
const result = Math.floor(Math.random() * 2);
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) => {
if (err) {
reject(err);
} else {
resolve();
}
});
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
} else {
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
}
}
};
},
};
+250 -162
View File
@@ -1,162 +1,250 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const embedColor = require('../../fonctions/embedColor.js');
const db = require('../../fonctions/database.js');
module.exports = {
aliases: ['roulette'],
description: 'Lance une roulette.',
emote: '🎲',
utilisation: '<mise> <couleur>',
permission: 0,
async execute(message, args, client) {
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) => {
if (err) {
reject(err);
} else {
resolve(row.pocket);
}
});
});
if (args[0] == 'all') {
mise = pocket
} else {
mise = args[0]
}
if (args.length !== 2) {
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\`.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
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 => {
const embed = new EmbedBuilder()
.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 } })
});
return
} else if (mise < 25) {
embedColor(message.author.id, message.guild.id).then(color => {
const embed = new EmbedBuilder()
.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 } })
});
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\`.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
});
return
}
if (pocket < mise) {
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.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
});
return
}
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...`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
});
await new Promise(resolve => setTimeout(resolve, 7500));
const result = Math.floor(Math.random() * 37);
let colorR = '';
if (result === 0) {
colorR = 'vert';
} else if (result % 2 === 0) {
colorR = 'rouge';
} else {
colorR = 'noir';
}
let gain = 0;
if (((args[1] === 'rouge' || args[1] === 'red') && colorR === 'rouge') || ((args[1] === 'noir' || args[1] === 'black') && colorR === 'noir')) {
gain = Math.round(mise * 1.5);
} else if ((args[1] === 'vert' || args[1] === 'green') && colorR === 'vert') {
gain = mise * 36;
} else {
gain = 0 - mise;
}
await new Promise((resolve, reject) => {
db.run(`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`, [gain, message.author.id, message.guild.id], (err) => {
if (err) {
reject(err);
} else {
resolve();
}
});
});
if (gain >= 0) {
embedColor(message.author.id, message.guild.id).then(color => {
const embed = new EmbedBuilder()
.setTitle('🎲 Roulette')
.setDescription(`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la bille est tombée sur \`${colorR}\`. Vous avez gagné \`${gain}\` !`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
});
return
} else {
embedColor(message.author.id, message.guild.id).then(color => {
const embed = new EmbedBuilder()
.setTitle('🎲 Roulette')
.setDescription(`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la bille est tombée sur \`${colorR}\`. Vous avez perdu \`${0 - gain}\` !`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
});
return
}
}
};
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>",
permission: 0,
async execute(message, args, client) {
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) => {
if (err) {
reject(err);
} else {
resolve(row.pocket);
}
},
);
});
if (args[0] == "all") {
mise = pocket;
} else {
mise = args[0];
}
if (args.length !== 2) {
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\`.`,
)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
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) => {
const embed = new EmbedBuilder()
.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 },
});
});
return;
} else if (mise < 25) {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.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 },
});
});
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\`.`,
)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
}
if (pocket < mise) {
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.`,
)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
}
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...`,
)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
await new Promise((resolve) => setTimeout(resolve, 7500));
const result = Math.floor(Math.random() * 37);
let colorR = "";
if (result === 0) {
colorR = "vert";
} else if (result % 2 === 0) {
colorR = "rouge";
} else {
colorR = "noir";
}
let gain = 0;
if (
((args[1] === "rouge" || args[1] === "red") && colorR === "rouge") ||
((args[1] === "noir" || args[1] === "black") && colorR === "noir")
) {
gain = Math.round(mise * 1.5);
} else if (
(args[1] === "vert" || args[1] === "green") &&
colorR === "vert"
) {
gain = mise * 36;
} else {
gain = 0 - mise;
}
await new Promise((resolve, reject) => {
db.run(
`UPDATE users SET pocket = pocket + ? WHERE userId = ? AND guildId = ?`,
[gain, message.author.id, message.guild.id],
(err) => {
if (err) {
reject(err);
} else {
resolve();
}
},
);
});
if (gain >= 0) {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle("🎲 Roulette")
.setDescription(
`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la bille est tombée sur \`${colorR}\`. Vous avez gagné \`${gain}\` !`,
)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
} else {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle("🎲 Roulette")
.setDescription(
`Vous avez misé \`${mise}\` sur \`${args[1]}\` et la bille est tombée sur \`${colorR}\`. Vous avez perdu \`${0 - gain}\` !`,
)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return;
}
},
};
+168 -86
View File
@@ -1,100 +1,154 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const 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) => {
if (err) reject(err);
resolve(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) => {
if (err) reject(err);
resolve(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) => {
if (err) {
console.log(`${err}`.red)
}
});
db.run(`UPDATE users SET lastBraquage =? WHERE guildId =? AND userId =?`, [Date.now(), message.guild.id, message.author.id], (err) => {
if (err) {
console.log(`${err}`.red)
}
});
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);
}
},
);
db.run(
`UPDATE users SET lastBraquage =? WHERE guildId =? AND userId =?`,
[Date.now(), message.guild.id, message.author.id],
(err) => {
if (err) {
console.log(`${err}`.red);
}
},
);
/////////////////////////////////// Affichage du 1er msg ///////////////////////////////////////////////////////
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
await new Promise(resolve => setTimeout(resolve, 5000));
await new Promise((resolve) => setTimeout(resolve, 5000));
/////////////////////////////////// Calcule des resultats ///////////////////////////////////////////////////////
const result = Math.floor(Math.random() * 4);
let gain = 0;
let coinsEnBank = 0;
@@ -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) => {
if (err) {
reject(err);
} else {
resolve();
}
});
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) => {
if (err) {
reject(err);
} else {
resolve();
}
});
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) => {
if (err) {
reject(err);
} else {
resolve();
}
});
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
} else {
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() })
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
return
return;
}
}
};
},
};
+178 -85
View File
@@ -1,139 +1,232 @@
const { EmbedBuilder } = require('discord.js');
const 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) => {
if (err) reject(err);
resolve(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) => {
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))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
});
}
resolve(parseInt(row.reputation));
});
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),
)
.setTimestamp()
.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) => {
if (err) {
console.log(`${err}`.red)
}
});
db.run(`UPDATE users SET reputation = reputation - 4 WHERE guildId =? AND userId =?`, [message.guild.id, message.author.id], (err) => {
if (err) {
console.log(`${err}`.red)
}
});
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);
}
},
);
db.run(
`UPDATE users SET reputation = reputation - 4 WHERE guildId =? AND userId =?`,
[message.guild.id, message.author.id],
(err) => {
if (err) {
console.log(`${err}`.red);
}
},
);
if (Math.floor(Math.random() * 5) <= 1) {
db.run(`UPDATE teams SET padlock = padlock - 1 WHERE guildId =? AND id =?`, [message.guild.id, teamID], (err) => {
if (err) {
console.log(`${err}`.red)
}
});
db.run(
`UPDATE teams SET padlock = padlock - 1 WHERE guildId =? AND id =?`,
[message.guild.id, teamID],
(err) => {
if (err) {
console.log(`${err}`.red);
}
},
);
const embed = new EmbedBuilder()
.setTitle('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) => {
if (err) {
console.log(`${err}`.red)
}
});
db.run(`UPDATE teams SET bank = 0 WHERE guildId =? AND userId =?`, [message.guild.id, message.author.id], (err) => {
if (err) {
console.log(`${err}`.red)
}
});
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);
}
},
);
db.run(
`UPDATE teams SET bank = 0 WHERE guildId =? AND userId =?`,
[message.guild.id, message.author.id],
(err) => {
if (err) {
console.log(`${err}`.red);
}
},
);
const embed2 = new EmbedBuilder()
.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 },
});
}
},
};
};
+271 -160
View File
@@ -1,177 +1,288 @@
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>',
permission: 0,
aliases: ["jugement", "procès", "proces"],
description: "Juge un membre. (cout : 1reputation + 500coins)",
emote: "🏦",
utilisation: "<@membre>",
permission: 0,
async execute(message, args, client) {
async execute(message, args, client) {
/////////////////////////////// Calcule des données de la cible ////////////////////////////////////////////////
/////////////////////////////// Calcule des données de la cible ////////////////////////////////////////////////
const cible = message.mentions.users.first();
if (!cible) {
const embed = new EmbedBuilder()
.setTitle("Erreur")
.setDescription("❌ Vous devez mentionner un membre.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
const cible = message.mentions.users.first();
if (!cible) {
const embed = new EmbedBuilder()
.setTitle('Erreur')
.setDescription('❌ Vous devez mentionner un membre.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
const cibleBD = await new Promise((resolve, reject) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, cible.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
/////////////////////////////// Calcule des données du message.author /////////////////////////////////////////
const user = await new Promise((resolve, reject) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
const lastJuge = user.lastJuge;
if (lastJuge > Date.now() - 3600000) {
const embed = new EmbedBuilder()
.setTitle("Jugement Impossible")
.setDescription(
`❌ Vous avez déjà juger récemment. Veuillez attendre ${Math.floor((lastBraquage + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir braquer à nouveau.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
let countPr = 0;
let countContre = 0;
const pour = new ButtonBuilder()
.setCustomId("pour")
.setLabel("✅ Pour la sanction")
.setStyle(ButtonStyle.Primary);
const contre = new ButtonBuilder()
.setCustomId("contre")
.setLabel("😡 Contre la sanction")
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder().addComponents(pour);
const msg = message.channel.send({
embeds: [
new EmbedBuilder()
.setTitle(`Jugement de ${cible.user.username}`)
.setDescription(
`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setImage("")
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
components: [row],
allowedMentions: { repliedUser: false },
});
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
const filter = (i) =>
(i.customId === "pour" || i.customId === "contre") &&
i.user.id === message.author.id;
const collector = msg.createMessageComponentCollector({
filter,
time: 60000,
});
collector.on("collect", async (interaction) => {
if (cooldown.has(message.author.id)) {
return message.reply({
content: "Vous avez deja voté",
ephemeral: true,
});
}
cooldown.add(message.author.id);
if (i.customId === "contre") {
if (i.user.id == message.author.id) {
countContre = +2;
} else {
countContre = +1;
}
const cibleBD = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, cible.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
msg.edit({
embeds: [
new EmbedBuilder()
.setTitle(`Jugement de ${cible.user.username}`)
.setDescription(
`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setImage("")
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
components: [row],
allowedMentions: { repliedUser: false },
});
/////////////////////////////// Calcule des données du message.author /////////////////////////////////////////
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
const lastJuge = user.lastJuge
if (lastJuge > Date.now() - 3600000) {
const embed = new EmbedBuilder()
.setTitle('Jugement Impossible')
.setDescription(`❌ Vous avez déjà juger récemment. Veuillez attendre ${Math.floor((lastBraquage + 7200000 - Date.now()) / 60000)} minutes avant de pouvoir braquer à nouveau.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else {
if (i.user.id == message.author.id) {
countPr = +2;
} else {
countPr = +1;
}
let countPr = 0
let countContre = 0
const pour = new ButtonBuilder()
.setCustomId('pour')
.setLabel('✅ Pour la sanction')
.setStyle(ButtonStyle.Primary);
const contre = new ButtonBuilder()
.setCustomId('contre')
.setLabel('😡 Contre la sanction')
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(pour);
const msg = message.channel.send({
embeds: [
new EmbedBuilder()
.setTitle(`Jugement de ${cible.user.username}`)
.setDescription(`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setImage('')
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
],
components: [row],
allowedMentions: { repliedUser: false }
msg.edit({
embeds: [
new EmbedBuilder()
.setTitle(`Jugement de <${cible.id}>`)
.setDescription(
`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setImage(
"https://tenor.com/view/judge-ace-attorney-ace-attorney-aa-gif-2687377729828245947",
)
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
components: [row],
allowedMentions: { repliedUser: false },
});
}
});
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
const filter = i => (i.customId === 'pour' || i.customId === 'contre') && i.user.id === message.author.id;
const collector = msg.createMessageComponentCollector({ filter, time: 60000 })
collector.on('collect', async (interaction) => {
if (cooldown.has(message.author.id)) { return message.reply({ content: 'Vous avez deja voté', ephemeral: true }) }
cooldown.add(message.author.id);
if (i.customId === 'contre') {
if (i.user.id == message.author.id) { countContre = + 2 } else { countContre = + 1 }
msg.edit({
embeds: [
new EmbedBuilder()
.setTitle(`Jugement de ${cible.user.username}`)
.setDescription(`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setImage('')
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
],
components: [row],
allowedMentions: { repliedUser: false }
})
collector.on("end", () => {
if (countContre > countPr) {
msg.edit({
embeds: [
new EmbedBuilder()
.setTitle(`Jugement de ${cible.user.username}`)
.setDescription(`Les charges sont abandonnée`)
.setTimestamp()
.setImage("")
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
components: [],
allowedMentions: { repliedUser: false },
});
}
if (countContre == countPr) {
msg.edit({
embeds: [
new EmbedBuilder()
.setTitle(`Jugement de ${cible.user.username}`)
.setDescription(
`Le jury n'arrive pas à ce mettre d'accord ||(${countPr}pour VS ${countContre}contre)|| Les charges sont donc appliquer mais à moitié, ${cible.user.username} ne pourras plus faire la commande \`work\`, \`daily\`, \`rob\`, \`hack\`, \`kill\`, \`braquage\`, \`rep\`, \`trep\` et \`recolt\` pour la prochaine heures plus le cooldown de chaque commande qui recommancera a la fin de ce delai.`,
)
.setTimestamp()
.setImage("")
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
components: [],
allowedMentions: { repliedUser: false },
});
db.run(
`UPDATE users SET lastRob =? AND lastRecolt =? AND lastWork =? AND lastDaily =? AND lastRep =? AND lastTrep =? AND lastHack =? AND lastKill =? AND lastBraquage =? WHERE guildId =? AND userId =?`,
[
Date.now() + 3600000,
Date.now() + 3600000,
Date.now() + 3600000,
Date.now() + 3600000,
Date.now() + 3600000,
Date.now() + 3600000,
Date.now() + 3600000,
Date.now() + 3600000,
Date.now() + 3600000,
message.guild.id,
cible.id,
],
(err) => {
if (err) {
console.log(`${err}`);
}
else {
if (i.user.id == message.author.id) { countPr = + 2 } else { countPr = + 1 }
msg.edit({
embeds: [
new EmbedBuilder()
.setTitle(`Jugement de <${cible.id}>`)
.setDescription(`Vote pour la sanction: \`${countPr}\`\nVote contre la sanction: \`${countContre}\``)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setImage('https://tenor.com/view/judge-ace-attorney-ace-attorney-aa-gif-2687377729828245947')
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
],
components: [row],
allowedMentions: { repliedUser: false }
})
},
);
}
if (countContre < countPr) {
msg.edit({
embeds: [
new EmbedBuilder()
.setTitle(`Jugement de ${cible.user.username}`)
.setDescription(
`Le jury c'est mis d'accord, ${cible.user.username} ne pourras plus faire les commandes \`work\`, \`daily\`, \`rob\`, \`hack\`, \`kill\`, \`braquage\`, \`rep\`, \`trep\` et \`recolt\` pour __les deux__ prochaines heure __**plus le cooldown de chaque commande** qui recommancera a la **fin de ce delai**.__`,
)
.setTimestamp()
.setImage("")
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
components: [],
allowedMentions: { repliedUser: false },
});
db.run(
`UPDATE users SET lastRob =? AND lastRecolt =? AND lastWork =? AND lastDaily =? AND lastRep =? AND lastTrep =? AND lastHack =? AND lastKill =? AND lastBraquage =? WHERE guildId =? AND userId =?`,
[
Date.now() + 7200000,
Date.now() + 7200000,
Date.now() + 7200000,
Date.now() + 7200000,
Date.now() + 7200000,
Date.now() + 7200000,
Date.now() + 7200000,
Date.now() + 7200000,
Date.now() + 7200000,
message.guild.id,
cible.id,
],
(err) => {
if (err) {
console.log(`${err}`);
}
})
collector.on('end', () => {
if (countContre > countPr) {
msg.edit({
embeds: [
new EmbedBuilder()
.setTitle(`Jugement de ${cible.user.username}`)
.setDescription(`Les charges sont abandonnée`)
.setTimestamp()
.setImage('')
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], components: [], allowedMentions: { repliedUser: false } });
}
if (countContre == countPr) {
msg.edit({
embeds: [
new EmbedBuilder()
.setTitle(`Jugement de ${cible.user.username}`)
.setDescription(`Le jury n'arrive pas à ce mettre d'accord ||(${countPr}pour VS ${countContre}contre)|| Les charges sont donc appliquer mais à moitié, ${cible.user.username} ne pourras plus faire la commande \`work\`, \`daily\`, \`rob\`, \`hack\`, \`kill\`, \`braquage\`, \`rep\`, \`trep\` et \`recolt\` pour la prochaine heures plus le cooldown de chaque commande qui recommancera a la fin de ce delai.`)
.setTimestamp()
.setImage('')
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], components: [], allowedMentions: { repliedUser: false }
});
db.run(`UPDATE users SET lastRob =? AND lastRecolt =? AND lastWork =? AND lastDaily =? AND lastRep =? AND lastTrep =? AND lastHack =? AND lastKill =? AND lastBraquage =? WHERE guildId =? AND userId =?`, [Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, Date.now() + 3600000, message.guild.id, cible.id], (err) => {
if (err) {
console.log(`${err}`)
}
})
}
if (countContre < countPr) {
msg.edit({
embeds: [
new EmbedBuilder()
.setTitle(`Jugement de ${cible.user.username}`)
.setDescription(`Le jury c'est mis d'accord, ${cible.user.username} ne pourras plus faire les commandes \`work\`, \`daily\`, \`rob\`, \`hack\`, \`kill\`, \`braquage\`, \`rep\`, \`trep\` et \`recolt\` pour __les deux__ prochaines heure __**plus le cooldown de chaque commande** qui recommancera a la **fin de ce delai**.__`)
.setTimestamp()
.setImage('')
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], components: [], allowedMentions: { repliedUser: false }
});
db.run(`UPDATE users SET lastRob =? AND lastRecolt =? AND lastWork =? AND lastDaily =? AND lastRep =? AND lastTrep =? AND lastHack =? AND lastKill =? AND lastBraquage =? WHERE guildId =? AND userId =?`, [Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, Date.now() + 7200000, message.guild.id, cible.id], (err) => {
if (err) {
console.log(`${err}`)
}
})
}
/* CAR TOUJOURS EN TEST ET FLEMME DE ME DROP DES REP ET COINS A CHAQUE FOIS
},
);
}
/* 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])
*/
});
}
};
});
},
};
+118 -58
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) => {
if (err) reject(err);
resolve(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) => {
if (err) reject(err);
resolve(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) => {
if (err) reject(err);
resolve(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.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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(),
});
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]);
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],
);
const embed = new EmbedBuilder()
.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 } });
const embed = new EmbedBuilder()
.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 },
});
} 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.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setImage()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
.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(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });}
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
},
};
};
+143 -84
View File
@@ -1,141 +1,200 @@
const { EmbedBuilder } = require('discord.js');
const 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) => {
if (err) {
reject(err);
} else {
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.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
});
} else if (row.pocket < 3000) {
embedColor(message.author.id, message.guild.id).then(color => {
const embed = new EmbedBuilder()
.setTitle('🛡️ Création de team')
.setDescription(`Vous n'avez pas assez de fonds pour créer une team. Vous avez besoin de 3000.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
});
db.get(
`SELECT teamId, pocket FROM users WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err, row) => {
if (err) {
reject(err);
} else {
db.run(`UPDATE users SET pocket = pocket - 3000 WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id]);
resolve();
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.`,
)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
} else if (row.pocket < 3000) {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle("🛡️ Création de team")
.setDescription(
`Vous n'avez pas assez de fonds pour créer une team. Vous avez besoin de 3000.`,
)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
} else {
db.run(
`UPDATE users SET pocket = pocket - 3000 WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
);
resolve();
}
}
}
});
},
);
});
const embed = new EmbedBuilder()
.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) => {
if (err) {
reject(err);
} else {
exists = !!row;
if (exists) {
increment += 1;
id = idBase + increment;
db.get(
`SELECT * FROM teams WHERE id = ? AND guildId = ?`,
[id, message.guild.id],
(err, row) => {
if (err) {
reject(err);
} 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]);
exists = !!row;
if (exists) {
increment += 1;
id = idBase + increment;
} else {
db.run(
`INSERT INTO teams (guildId, id, name, description) VALUES (?, ?, ?, ?)`,
[message.guild.id, id, teamName, teamDescription],
);
db.run(
`UPDATE users SET teamId = ?, teamRole = ? WHERE guildId = ? AND userId = ?`,
[id, "owner", message.guild.id, message.author.id],
);
}
resolve();
}
resolve();
}
});
},
);
});
} while (exists);
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();
}
});
}
});
}
};
},
};
+139 -67
View File
@@ -1,105 +1,177 @@
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) => {
if (err) reject(err);
resolve(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) => {
if (err) reject(err);
resolve(row.teamRole);
});
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(
new ButtonBuilder()
.setCustomId('confirm_delete')
.setLabel('Confirmer')
.setStyle(ButtonStyle.Danger),
new ButtonBuilder()
.setCustomId('cancel_delete')
.setLabel('Annuler')
.setStyle(ButtonStyle.Secondary)
);
const row = new ActionRowBuilder().addComponents(
new ButtonBuilder()
.setCustomId("confirm_delete")
.setLabel("Confirmer")
.setStyle(ButtonStyle.Danger),
new ButtonBuilder()
.setCustomId("cancel_delete")
.setLabel("Annuler")
.setStyle(ButtonStyle.Secondary),
);
const embed = new EmbedBuilder()
.setTitle('🛡️ Suppression de l\'é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) => {
if (err) {
return i.update({ content: 'Une erreur est survenue lors de la suppression de l\'équipe.', components: [] });
}
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: [],
});
}
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: [] });
}
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: [],
});
}
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))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
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),
)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return i.update({ embeds: [embed], components: [] });
return i.update({ embeds: [embed], components: [] });
},
);
},
);
} else {
await i.update({
content: "Suppression de l'équipe annulée.",
components: [],
});
});
} else {
await i.update({ content: 'Suppression de l\'équipe annulée.', components: [] });
}
});
}
});
collector.on('end', collected => {
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: [],
});
});
});
});
}
},
};
};
+99 -55
View File
@@ -1,113 +1,157 @@
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) {
if (!args[0]) {
return message.reply({
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 },
});
}
const userToDemote = message.mentions.users.first();
if (!userToDemote) {
return message.reply({
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) => {
if (err) reject(err);
resolve(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') {
return message.reply({
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) => {
if (err) reject(err);
resolve(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({
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') {
return message.reply({
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) => {
if (err) {
return message.reply('Une erreur est survenue lors de la rétrogradation de l\'utilisateur.');
}
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.",
);
}
const embed = new EmbedBuilder()
.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() });
const embed = new EmbedBuilder()
.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(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
},
);
},
};
};
+62 -36
View File
@@ -1,66 +1,92 @@
const { EmbedBuilder } = require('discord.js');
const 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) => {
if (err) reject(err);
resolve();
});
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 },
});
}
},
};
};
+134 -85
View File
@@ -1,144 +1,193 @@
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) {
if (!args[0]) {
return message.reply({
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 },
});
}
const userToKick = message.mentions.users.first();
if (!userToKick) {
return message.reply({
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({
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) => {
if (err) reject(err);
resolve(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({
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) => {
if (err) reject(err);
resolve(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) => {
if (err) reject(err);
resolve(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({
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 }
});
}
if (!user || user.teamRole !== 'owner') {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🛠️ Expulsion de l\'équipe')
.setDescription('Vous n\'êtes pas administrateur de cette équipe.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
],
allowedMentions: { repliedUser: false }
allowedMentions: { repliedUser: false },
});
}
db.run(`UPDATE users SET teamId = NULL, teamRole = NULL WHERE guildId = ? AND userId = ?`, [message.guild.id, userToKick.id], async (err) => {
if (err) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle('🛠️ Expulsion de l\'équipe')
.setDescription('Une erreur est survenue lors de l\'expulsion de l\'utilisateur.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
],
allowedMentions: { repliedUser: false }
if (!user || user.teamRole !== "owner") {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("🛠️ Expulsion de l'équipe")
.setDescription("Vous n'êtes pas administrateur de cette équipe.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
db.run(
`UPDATE users SET teamId = NULL, teamRole = NULL WHERE guildId = ? AND userId = ?`,
[message.guild.id, userToKick.id],
async (err) => {
if (err) {
return message.reply({
embeds: [
new EmbedBuilder()
.setTitle("🛠️ Expulsion de l'équipe")
.setDescription(
"Une erreur est survenue lors de l'expulsion de l'utilisateur.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle("🛠️ Expulsion de l'équipe")
.setDescription(`${userToKick.tag} a été expulsé de l'équipe.`)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
}
embedColor(message.author.id, message.guild.id).then(color => {
const embed = new EmbedBuilder()
.setTitle('🛠️ Expulsion de l\'équipe')
.setDescription(`${userToKick.tag} a été expulsé de l'équipe.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
});
});
},
);
},
};
};
+149 -83
View File
@@ -1,147 +1,213 @@
const { ButtonStyle, ButtonBuilder, ActionRowBuilder, EmbedBuilder } = require('discord.js');
const 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) {
if (!args[0]) {
return message.reply({
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 },
});
}
const userToPromote = message.mentions.users.first();
if (!userToPromote) {
return message.reply({
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) => {
if (err) reject(err);
resolve(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') {
return message.reply({
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) => {
if (err) reject(err);
resolve(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({
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 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) => {
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))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
],
allowedMentions: { repliedUser: false }
});
}
db.run(`UPDATE users SET teamRole = 'officier' WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], async (err) => {
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,
});
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({
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 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('👑 Transfere de la propriété de la team')
.setDescription(`${userToPromote.tag} a été promu au rang d'administrateur. Vous avez été rétrogradé au rang d'officier.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
sendMessage.edit({ embeds: [embed], components: [] });
});
});
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),
)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
const embed = new EmbedBuilder()
.setTitle("👑 Transfere de la propriété de la team")
.setDescription(
`${userToPromote.tag} a été promu au rang d'administrateur. Vous avez été rétrogradé au rang d'officier.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
sendMessage.edit({ embeds: [embed], components: [] });
},
);
},
);
});
},
};
};
+113 -66
View File
@@ -1,123 +1,170 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const 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) {
if (!args[0]) {
return message.reply({
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 },
});
}
const userToPromote = message.mentions.users.first();
if (!userToPromote) {
return message.reply({
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) => {
if (err) reject(err);
resolve(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') {
return message.reply({
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) => {
if (err) reject(err);
resolve(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({
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') {
return message.reply({
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) => {
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.')
.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 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.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
const embed = new EmbedBuilder()
.setTitle("🛡️ Promotion dans l'équipe")
.setDescription(
`${userToPromote.tag} a été promu au rang d'officier.`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
const embed = new EmbedBuilder()
.setTitle('🛡️ Promotion dans l\'équipe')
.setDescription(`${userToPromote.tag} a été promu au rang d'officier.`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
});
},
);
},
};
};
+122 -55
View File
@@ -1,113 +1,180 @@
const { EmbedBuilder } = require('discord.js');
const 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) => {
if (err) reject(err);
resolve(row.teamRole);
});
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() });
return 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 },
});
}
const team = await new Promise((resolve, reject) => {
db.get(`SELECT teamId FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row.teamId);
});
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) => {
if (err) reject(err);
resolve(row.bank);
});
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 },
});
}
},
};
};
+120 -69
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>',
permission: 0,
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) => {
if (err) reject(err);
resolve(row);
});
});
if (!team) {
const embed = new EmbedBuilder()
.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() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
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`)
.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)
}
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) => {
if (err) reject(err);
resolve(row);
},
);
});
if (!team) {
const embed = new EmbedBuilder()
.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(),
});
if (team.padlock < 5) {
db.run(`UPDATE teams SET padlock = padlock + 1 WHERE guildId =? AND Id =?`, [message.guild.id, teamID], (err) => {
if (err) {
console.log(`${err}`.red)
}
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
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 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`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else {
const embed = new EmbedBuilder()
.setTitle('Ajout de cadenas impossible')
.setDescription('`' + team.name + '` à le maximum de cadenas (`' + team.padlock + 1 + '` cadenas !)')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setImage()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
db.run(
`UPDATE teams SET reputation = reputation - 4 WHERE guildId =? AND Id =?`,
[message.guild.id, teamID],
(err) => {
if (err) {
console.log(`${err}`.red);
}
},
};
},
);
if (team.padlock < 5) {
db.run(
`UPDATE teams SET padlock = padlock + 1 WHERE guildId =? AND Id =?`,
[message.guild.id, teamID],
(err) => {
if (err) {
console.log(`${err}`.red);
}
},
);
const embed = new EmbedBuilder()
.setTitle("Ajout de cadenas réussi !")
.setDescription(
"Vous avez ajouter un cadenas à team `" +
team.name +
"`, cette team à maintement `" +
team.padlock +
1 +
"` cadenas !",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setImage()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else {
const embed = new EmbedBuilder()
.setTitle("Ajout de cadenas impossible")
.setDescription(
"`" +
team.name +
"` à le maximum de cadenas (`" +
team.padlock +
1 +
"` cadenas !)",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setImage()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
},
};
+153 -94
View File
@@ -1,94 +1,153 @@
const { EmbedBuilder } = require('discord.js');
const 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>',
permission: 0,
async execute(message, args, client) {
if (args.length == 0) {
const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible')
.setDescription('❌ Vous devez spécifier un montant à déposer.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (args[0] !== 'all' && isNaN(args[0])) {
const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible')
.setDescription('❌ Vous devez spécifier un montant valide à déposer.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else if (args[0] < 1) {
const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible')
.setDescription('❌ Vous devez déposer au moins 1 coin.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
const pocket = await new Promise((resolve, reject) => {
db.get(`SELECT pocket FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row.pocket);
});
});
let amout;
if (args[0] === 'all') {
amout = pocket;
} else if (args[0] > pocket) {
const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible')
.setDescription('❌ Vous n\'avez pas assez d\'argent sur vous pour déposer cette somme.\n\n💰 Vous avez actuellement **' + pocket + 'coins** sur vous.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else {
amout = args[0];
}
const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
if (!team) {
const embed = new EmbedBuilder()
.setTitle('Dépôt Impossible')
.setDescription('❌ Vous n\'êtes pas dans une team.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else {
db.run(`UPDATE users SET pocket = pocket - ?, teamDroper = teamDroper + ? WHERE guildId = ? AND userId = ?`, [amout, amout, message.guild.id, message.author.id]);
db.run(`UPDATE teams SET bank = bank + ? WHERE guildId = ? AND id = ?`, [amout, message.guild.id, team.id]);
const embed = new EmbedBuilder()
.setTitle('Dépôt Effectué')
.setDescription('💰 Vous avez déposé **' + amout + '** coins dans la banque de votre team.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
}
},
};
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>",
permission: 0,
async execute(message, args, client) {
if (args.length == 0) {
const embed = new EmbedBuilder()
.setTitle("Dépôt Impossible")
.setDescription("❌ Vous devez spécifier un montant à déposer.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (args[0] !== "all" && isNaN(args[0])) {
const embed = new EmbedBuilder()
.setTitle("Dépôt Impossible")
.setDescription("❌ Vous devez spécifier un montant valide à déposer.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else if (args[0] < 1) {
const embed = new EmbedBuilder()
.setTitle("Dépôt Impossible")
.setDescription("❌ Vous devez déposer au moins 1 coin.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
const pocket = await new Promise((resolve, reject) => {
db.get(
`SELECT pocket FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row.pocket);
},
);
});
let amout;
if (args[0] === "all") {
amout = pocket;
} else if (args[0] > pocket) {
const embed = new EmbedBuilder()
.setTitle("Dépôt Impossible")
.setDescription(
"❌ Vous n'avez pas assez d'argent sur vous pour déposer cette somme.\n\n💰 Vous avez actuellement **" +
pocket +
"coins** sur vous.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else {
amout = args[0];
}
const team = await new Promise((resolve, reject) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
if (!team) {
const embed = new EmbedBuilder()
.setTitle("Dépôt Impossible")
.setDescription("❌ Vous n'êtes pas dans une team.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else {
db.run(
`UPDATE users SET pocket = pocket - ?, teamDroper = teamDroper + ? WHERE guildId = ? AND userId = ?`,
[amout, amout, message.guild.id, message.author.id],
);
db.run(`UPDATE teams SET bank = bank + ? WHERE guildId = ? AND id = ?`, [
amout,
message.guild.id,
team.id,
]);
const embed = new EmbedBuilder()
.setTitle("Dépôt Effectué")
.setDescription(
"💰 Vous avez déposé **" +
amout +
"** coins dans la banque de votre team.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
},
};
+157 -122
View File
@@ -1,122 +1,157 @@
const { EmbedBuilder } = require('discord.js');
const 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: '',
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) => {
if (err) reject(err);
resolve(row);
});
});
if (!team) {
const embed = new EmbedBuilder()
.setTitle('🛡️ Informations de team')
.setDescription('<@' + member.id + '> n\'est actuellement dans aucune une team.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
} else {
const alliance = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM teams WHERE guildId = ? AND id = ?)`, [message.guild.id, message.guild.id, team.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
let Aname
if (alliance) {
Aname = alliance.name
}
else {
Aname = 'aucune alliance'
}
const memberlist = await new Promise((resolve, reject) => {
db.all(`SELECT userId, teamRole FROM users WHERE guildId = ? AND teamId = ?`, [message.guild.id, team.id], (err, rows) => {
if (err) reject(err);
resolve(rows);
});
});
let CadenaS = "🔓"
if (team.padlock == 5) {
CadenaS = "🔐🔐🔐🔐🔐"
}
if (team.padlock == 4) {
CadenaS = "🔐🔐🔐🔐"
}
if (team.padlock == 3) {
CadenaS = "🔐🔐🔐"
}
if (team.padlock == 2) {
CadenaS = "🔐🔐"
}
if (team.padlock == 1) {
CadenaS = "🔐"
}
//////////////////////////////////////////////////// TEAM DROPER ///////////////////////////////////////////////////////////////////
data = await new Promise((resolve, reject) => {
db.all(`SELECT userId, teamDroper AS coins FROM users WHERE teamId = ? ORDER BY coins DESC LIMIT 10`, [team.id], (err, rows) => {
if (err) reject(err);
resolve(rows);
});
});
let leaderboard = data.map((row, i) => {
let position;
switch (i) {
case 0:
position = ':first_place:';
break;
case 1:
position = ':second_place:';
break;
case 2:
position = ':third_place:';
break;
default:
position = `**${i + 1}.**`;
}
return `${position} <@${row.userId}> - \`${row.coins}\`coins donné(s)`;
}).join('\n');
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
const embed = new EmbedBuilder()
.setTitle('🛡️ Informations de `' + team.name + '`:')
.setDescription(`**Id:** \`${team.id}\`\n**Description:** \`${team.description}\`\n**Banque:** \`${team.bank}\`coins\n**Niveau:** \`${team.level}\`\n**Reputation:** \`${team.reputation}\`\n\n**Soldats:** \`${team.soldiers}\`\n**Soldats blessés:** \`${team.woundedSoldiers}\`\n**Niveau du camp:** \`${team.campLevel}\`\n**Tourelles:** \`${team.turrets}\`\n**Cadenas:** \`${CadenaS}\`\n\n\nAlliance : ${Aname}\n\n\n**Membres (\`${memberlist.length}\`):**\n${memberlist.map(member => `**${member.teamRole}:** <@${member.userId}>`).join('\n')}\n`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
const embedTopDonnateur = new EmbedBuilder()
.setTitle('**Les 10 meilleurs donnateurs de la team sont :**')
.setDescription(`${leaderboard}`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
const urlRegex1 = /(https?:\/\/[^\s]+)/g;
if (team.icon && urlRegex1.test(team.icon)) {
embed.setThumbnail(team.icon);
}
const urlRegex2 = /(https?:\/\/[^\s]+)/g;
if (team.banner && urlRegex2.test(team.banner)) {
embedTopDonnateur.setImage(team.banner);
}
return message.reply({ embeds: [embed, embedTopDonnateur], allowedMentions: { repliedUser: false } });
}
},
};
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: "",
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) => {
if (err) reject(err);
resolve(row);
},
);
});
if (!team) {
const embed = new EmbedBuilder()
.setTitle("🛡️ Informations de team")
.setDescription(
"<@" + member.id + "> n'est actuellement dans aucune une team.",
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
} else {
const alliance = await new Promise((resolve, reject) => {
db.get(
`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM teams WHERE guildId = ? AND id = ?)`,
[message.guild.id, message.guild.id, team.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
let Aname;
if (alliance) {
Aname = alliance.name;
} else {
Aname = "aucune alliance";
}
const memberlist = await new Promise((resolve, reject) => {
db.all(
`SELECT userId, teamRole FROM users WHERE guildId = ? AND teamId = ?`,
[message.guild.id, team.id],
(err, rows) => {
if (err) reject(err);
resolve(rows);
},
);
});
let CadenaS = "🔓";
if (team.padlock == 5) {
CadenaS = "🔐🔐🔐🔐🔐";
}
if (team.padlock == 4) {
CadenaS = "🔐🔐🔐🔐";
}
if (team.padlock == 3) {
CadenaS = "🔐🔐🔐";
}
if (team.padlock == 2) {
CadenaS = "🔐🔐";
}
if (team.padlock == 1) {
CadenaS = "🔐";
}
//////////////////////////////////////////////////// TEAM DROPER ///////////////////////////////////////////////////////////////////
data = await new Promise((resolve, reject) => {
db.all(
`SELECT userId, teamDroper AS coins FROM users WHERE teamId = ? ORDER BY coins DESC LIMIT 10`,
[team.id],
(err, rows) => {
if (err) reject(err);
resolve(rows);
},
);
});
let leaderboard = data
.map((row, i) => {
let position;
switch (i) {
case 0:
position = ":first_place:";
break;
case 1:
position = ":second_place:";
break;
case 2:
position = ":third_place:";
break;
default:
position = `**${i + 1}.**`;
}
return `${position} <@${row.userId}> - \`${row.coins}\`coins donné(s)`;
})
.join("\n");
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
const embed = new EmbedBuilder()
.setTitle("🛡️ Informations de `" + team.name + "`:")
.setDescription(
`**Id:** \`${team.id}\`\n**Description:** \`${team.description}\`\n**Banque:** \`${team.bank}\`coins\n**Niveau:** \`${team.level}\`\n**Reputation:** \`${team.reputation}\`\n\n**Soldats:** \`${team.soldiers}\`\n**Soldats blessés:** \`${team.woundedSoldiers}\`\n**Niveau du camp:** \`${team.campLevel}\`\n**Tourelles:** \`${team.turrets}\`\n**Cadenas:** \`${CadenaS}\`\n\n\nAlliance : ${Aname}\n\n\n**Membres (\`${memberlist.length}\`):**\n${memberlist.map((member) => `**${member.teamRole}:** <@${member.userId}>`).join("\n")}\n`,
)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
const embedTopDonnateur = new EmbedBuilder()
.setTitle("**Les 10 meilleurs donnateurs de la team sont :**")
.setDescription(`${leaderboard}`)
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
const urlRegex1 = /(https?:\/\/[^\s]+)/g;
if (team.icon && urlRegex1.test(team.icon)) {
embed.setThumbnail(team.icon);
}
const urlRegex2 = /(https?:\/\/[^\s]+)/g;
if (team.banner && urlRegex2.test(team.banner)) {
embedTopDonnateur.setImage(team.banner);
}
return message.reply({
embeds: [embed, embedTopDonnateur],
allowedMentions: { repliedUser: false },
});
}
},
};
+159 -110
View File
@@ -1,110 +1,159 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const db = require('../../fonctions/database.js');
const embedColor = require('../../fonctions/embedColor.js');
module.exports = {
aliases: ['tinvite'],
description: 'Invite un utilisateur à votre team.',
emote: '🛡️',
utilisation: '<@user>',
permission: 0,
async execute(message, args, client) {
if (!args[0]) {
return message.reply({
embeds: [
new EmbedBuilder()
.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() })
],
allowedMentions: { repliedUser: false }
});
}
const userToInvite = message.mentions.users.first();
if (!userToInvite) {
return message.reply({
embeds: [
new EmbedBuilder()
.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() })
],
allowedMentions: { repliedUser: false }
});
}
const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [message.guild.id, message.guild.id, userToInvite.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
if (team) {
return message.channel.reply('<@' + userToInvite.id + '> a déjà une team')
}
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
});
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.')
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
],
allowedMentions: { repliedUser: false }
});
}
embedColor(message.author.id, message.guild.id).then(color => {
const accept = new ButtonBuilder()
.setCustomId('accept')
.setLabel('Rejoindre la team')
.setStyle(ButtonStyle.Success);
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.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
(async () => {
const sentMessage = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } });
const filter = i => i.customId === 'accept' && i.user.id === userToInvite.id;
const collector = sentMessage.createMessageComponentCollector({ filter, time: 120000 });
collector.on('collect', async (interaction) => {
db.run(`UPDATE users SET teamId = ?, teamRole = ? WHERE guildId = ? AND userId = ?`, [user.teamId, 'membre', message.guild.id, userToInvite.id], (err) => {
if (err) {
return message.reply('Une erreur est survenue lors de l\'invitation de l\'utilisateur.');
}
const embed = new EmbedBuilder()
.setTitle('🛡️ Invitation à l\'équipe')
.setDescription(`<@${userToInvite.id}> rejoint l\'équipe.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
sentMessage.edit({ embeds: [embed], components: [], allowedMentions: { repliedUser: false } });
});
});
})();
});
},
};
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>",
permission: 0,
async execute(message, args, client) {
if (!args[0]) {
return message.reply({
embeds: [
new EmbedBuilder()
.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(),
}),
],
allowedMentions: { repliedUser: false },
});
}
const userToInvite = message.mentions.users.first();
if (!userToInvite) {
return message.reply({
embeds: [
new EmbedBuilder()
.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(),
}),
],
allowedMentions: { repliedUser: false },
});
}
const team = await new Promise((resolve, reject) => {
db.get(
`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`,
[message.guild.id, message.guild.id, userToInvite.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
if (team) {
return message.channel.reply(
"<@" + userToInvite.id + "> a déjà une team",
);
}
const user = await new Promise((resolve, reject) => {
db.get(
`SELECT * FROM users WHERE guildId = ? AND userId = ?`,
[message.guild.id, message.author.id],
(err, row) => {
if (err) reject(err);
resolve(row);
},
);
});
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.")
.setColor(await embedColor(message.author.id, message.guild.id))
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
}),
],
allowedMentions: { repliedUser: false },
});
}
embedColor(message.author.id, message.guild.id).then((color) => {
const accept = new ButtonBuilder()
.setCustomId("accept")
.setLabel("Rejoindre la team")
.setStyle(ButtonStyle.Success);
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.`,
)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
(async () => {
const sentMessage = await message.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
});
const filter = (i) =>
i.customId === "accept" && i.user.id === userToInvite.id;
const collector = sentMessage.createMessageComponentCollector({
filter,
time: 120000,
});
collector.on("collect", async (interaction) => {
db.run(
`UPDATE users SET teamId = ?, teamRole = ? WHERE guildId = ? AND userId = ?`,
[user.teamId, "membre", message.guild.id, userToInvite.id],
(err) => {
if (err) {
return message.reply(
"Une erreur est survenue lors de l'invitation de l'utilisateur.",
);
}
const embed = new EmbedBuilder()
.setTitle("🛡️ Invitation à l'équipe")
.setDescription(`<@${userToInvite.id}> rejoint l\'équipe.`)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
sentMessage.edit({
embeds: [embed],
components: [],
allowedMentions: { repliedUser: false },
});
},
);
});
})();
});
},
};
+143 -101
View File
@@ -1,101 +1,143 @@
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
const embedColor = require('../../fonctions/embedColor.js');
const db = require('../../fonctions/database.js');
module.exports = {
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) => {
if (err) {
reject(err);
} else {
if (row.teamId === null ) {
embedColor(message.author.id, message.guild.id).then(color => {
const embed = new EmbedBuilder()
.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() })
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) => {
if (err) {
reject(err);
} else {
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.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
});
} else {
resolve();
}
}
});
});
const embed = new EmbedBuilder()
.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() });
const confirmeButton = new ButtonBuilder()
.setCustomId('confirme')
.setLabel('✅')
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder()
.addComponents(confirmeButton);
const messageTeam = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } });
const filter = i => i.user.id === message.author.id;
const collector = messageTeam.createMessageComponentCollector({ filter, time: 60000 });
collector.on('collect', async i => {
if (i.customId === 'confirme') {
db.run(`UPDATE users SET teamId = NULL, teamRole = NULL WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], err => {
if (err) {
console.error(err);
return i.reply('Une erreur est survenue.');
}
embedColor(message.author.id, message.guild.id).then(color => {
const embed = new EmbedBuilder()
.setTitle('🛡️ Quitter une team')
.setDescription(`Vous avez quitté votre team.`)
.setColor(color)
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
return i.update({ embeds: [embed], components: [] });
});
});
}
});
}
};
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: "",
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) => {
if (err) {
reject(err);
} else {
if (row.teamId === null) {
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.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(),
});
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) => {
if (err) {
reject(err);
} else {
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.`,
)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
});
} else {
resolve();
}
}
},
);
});
const embed = new EmbedBuilder()
.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(),
});
const confirmeButton = new ButtonBuilder()
.setCustomId("confirme")
.setLabel("✅")
.setStyle(ButtonStyle.Primary);
const row = new ActionRowBuilder().addComponents(confirmeButton);
const messageTeam = await message.reply({
embeds: [embed],
components: [row],
allowedMentions: { repliedUser: false },
});
const filter = (i) => i.user.id === message.author.id;
const collector = messageTeam.createMessageComponentCollector({
filter,
time: 60000,
});
collector.on("collect", async (i) => {
if (i.customId === "confirme") {
db.run(
`UPDATE users SET teamId = NULL, teamRole = NULL WHERE userId = ? AND guildId = ?`,
[message.author.id, message.guild.id],
(err) => {
if (err) {
console.error(err);
return i.reply("Une erreur est survenue.");
}
embedColor(message.author.id, message.guild.id).then((color) => {
const embed = new EmbedBuilder()
.setTitle("🛡️ Quitter une team")
.setDescription(`Vous avez quitté votre team.`)
.setColor(color)
.setTimestamp()
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return i.update({ embeds: [embed], components: [] });
});
},
);
}
});
},
};
+94 -49
View File
@@ -1,84 +1,129 @@
const { EmbedBuilder } = require('discord.js');
const 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) => {
if (err) reject(err);
resolve(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) => {
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))
.setTimestamp()
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
], allowedMentions: { repliedUser: false }
});
}
resolve(parseInt(row.reputation));
});
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),
)
.setTimestamp()
.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() });
.setFooter({
text: `Demandé par ${message.author.tag}`,
iconURL: message.author.displayAvatarURL(),
});
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
return message.reply({
embeds: [embed],
allowedMentions: { repliedUser: false },
});
}
db.run(`UPDATE users SET lastTrep =? WHERE guildId =? AND userId =?`, [Date.now(), message.guild.id, message.author.id], (err) => {
if (err) {
console.log(`${err}`.red)
}
});
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)
}
});
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 } });
},
};
};
+2 -2
View File
@@ -1,3 +1,3 @@
{
"owners": ["1066067393123733595", "671763971803447298"]
}
"owners": ["1066067393123733595", "671763971803447298"]
}
+18 -12
View File
@@ -1,12 +1,18 @@
const { Events } = require('discord.js');
const 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]);
});
},
};
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,
]);
});
},
};
+12 -9
View File
@@ -1,9 +1,12 @@
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]);
},
};
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,
]);
},
};
+71 -45
View File
@@ -1,45 +1,71 @@
const { Message, Events } = require("discord.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 = {
name: Events.MessageCreate,
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) => {
if (err) reject(err);
resolve(row);
});
});
if (user.blacklist == true) { return }
const prefix = db.get(`SELECT value FROM config WHERE guildId = ? AND name = ?`, [message.guild.id, 'prefix'])?.value || '&';
if (message.content.startsWith(prefix)) {
const args = message.content.slice(prefix.length).trim().split(/ +/);
const commandName = args.shift()?.toLowerCase();
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.");
}
try {
command.execute(message, args, client);
console.log(`[${prefix}}] ${message.guild.name} | ${message.author.tag} | ${command.name}`.blue)
loggT(`[${prefix}] ${message.guild.name} | ${message.author.tag} | ${command.name}`)
} catch (error) {
console.error(error);
loggE(error)
message.reply("Erreur lors de l'exécution de la commande");
}
} else if (message.content === `<@!${client.user.id}>` || message.content === `<@${client.user.id}>`) {
message.reply(`Mon prefix est \`${prefix}\``);
}
}
};
const { Message, Events } = require("discord.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 = {
name: Events.MessageCreate,
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) => {
if (err) reject(err);
resolve(row);
},
);
});
if (user.blacklist == true) {
return;
}
const prefix =
db.get(`SELECT value FROM config WHERE guildId = ? AND name = ?`, [
message.guild.id,
"prefix",
])?.value || "&";
if (message.content.startsWith(prefix)) {
const args = message.content.slice(prefix.length).trim().split(/ +/);
const commandName = args.shift()?.toLowerCase();
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.",
);
}
try {
command.execute(message, args, client);
console.log(
`[${prefix}}] ${message.guild.name} | ${message.author.tag} | ${command.name}`
.blue,
);
loggT(
`[${prefix}] ${message.guild.name} | ${message.author.tag} | ${command.name}`,
);
} catch (error) {
console.error(error);
loggE(error);
message.reply("Erreur lors de l'exécution de la commande");
}
} else if (
message.content === `<@!${client.user.id}>` ||
message.content === `<@${client.user.id}>`
) {
message.reply(`Mon prefix est \`${prefix}\``);
}
},
};
+22 -9
View File
@@ -8,14 +8,20 @@ module.exports = {
async execute(message, client) {
if (message.channel.type === "DM") return;
if (message.author.bot) return;
const user = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
if (err) reject(err);
resolve(row);
});
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] });
+161 -117
View File
@@ -1,117 +1,161 @@
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('setPresence : ...')
client.user.setPresence({
activities: [{
name: '/azelie',
type: ActivityType.Streaming,
url: 'https://twitch.tv/tuturp33'
}],
status: 'online'
});
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]);
});
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 => {
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]);
} 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]);
}
});
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);
setInterval(async () => {
console.log('Bâtiment : ...')
const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM teams`, (err, row) => {
if (err) reject(err);
resolve(row);
});
});
if (team.location == 0) return
db.run(`UPDATE teams SET bank = bank + ?`, [team.location]);
console.log('Bâtiment : OK')
}, 1 * 60 * 1000)
//AntiCrash
process.on('unhandledRejection', (error) => {
if (error.code == "10064") return
if (error.code == "10008") return
console.log(' [antiCrash] :: Unhandled Rejection/Catch'.red);
console.log(`${error}`.grey);
loggE(error)
});
process.on("uncaughtException", (error, origin) => {
if (error.code == "10064") return
if (error.code == "10008") return
console.log(' [antiCrash] :: Uncaught Exception/Catch'.red);
console.log(`${error}`.grey);
console.log('Information supplémentaire:', origin);
loggE(error)
});
process.on('uncaughtExceptionMonitor', (error, origin) => {
if (error.code == "10064") return
if (error.code == "10008") return
console.log(' [antiCrash] :: Uncaught Exception Monitor/Catch'.red);
console.log(`${error}`.grey);
console.log('Information supplémentaire:', origin);
loggE(error)
});
process.on('beforeExit', (code) => {
if (error.code == "10064") return
if (error.code == "10008") return
console.log(' [antiCrash] :: Before Exit'.red);
console.log('Code de sortie:', code);
});
process.on('exit', (code) => {
if (error.code == "10064") return
if (error.code == "10008") return
console.log(' [antiCrash] :: Exit'.red);
console.log('Code de sortie:', code);
});
},
};
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("setPresence : ...");
client.user.setPresence({
activities: [
{
name: "/azelie",
type: ActivityType.Streaming,
url: "https://twitch.tv/tuturp33",
},
],
status: "online",
});
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,
]);
});
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) => {
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],
);
} 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],
);
}
});
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,
);
setInterval(
async () => {
console.log("Bâtiment : ...");
const team = await new Promise((resolve, reject) => {
db.get(`SELECT * FROM teams`, (err, row) => {
if (err) reject(err);
resolve(row);
});
});
if (team.location == 0) return;
db.run(`UPDATE teams SET bank = bank + ?`, [team.location]);
console.log("Bâtiment : OK");
},
1 * 60 * 1000,
);
//AntiCrash
process.on("unhandledRejection", (error) => {
if (error.code == "10064") return;
if (error.code == "10008") return;
console.log(" [antiCrash] :: Unhandled Rejection/Catch".red);
console.log(`${error}`.grey);
loggE(error);
});
process.on("uncaughtException", (error, origin) => {
if (error.code == "10064") return;
if (error.code == "10008") return;
console.log(" [antiCrash] :: Uncaught Exception/Catch".red);
console.log(`${error}`.grey);
console.log("Information supplémentaire:", origin);
loggE(error);
});
process.on("uncaughtExceptionMonitor", (error, origin) => {
if (error.code == "10064") return;
if (error.code == "10008") return;
console.log(" [antiCrash] :: Uncaught Exception Monitor/Catch".red);
console.log(`${error}`.grey);
console.log("Information supplémentaire:", origin);
loggE(error);
});
process.on("beforeExit", (code) => {
if (error.code == "10064") return;
if (error.code == "10008") return;
console.log(" [antiCrash] :: Before Exit".red);
console.log("Code de sortie:", code);
});
process.on("exit", (code) => {
if (error.code == "10064") return;
if (error.code == "10008") return;
console.log(" [antiCrash] :: Exit".red);
console.log("Code de sortie:", code);
});
},
};
+85 -85
View File
@@ -1,85 +1,85 @@
const sqlite3 = require('sqlite3').verbose();
let db = new sqlite3.Database('./db.sqlite');
db.run(`CREATE TABLE IF NOT EXISTS config (
guildId TEXT,
name TEXT,
value TEXT,
PRIMARY KEY (guildId, name)
)`);
db.run(`CREATE TABLE IF NOT EXISTS users (
guildId TEXT,
userId TEXT,
pocket INTEGER DEFAULT 0,
bank INTEGER DEFAULT 0,
reputation INTEGER DEFAULT 0,
lvl INTERGER DEFAULT 0,
xp INTERGER DEFAULT 0,
objet INTERGER DEFAULT 0,
key INTERGER DEFAULT 0,
buyer BOOLEAN DEFAULT FALSE,
owner BOOLEAN DEFAULT FALSE,
whitelist BOOLEAN DEFAULT FALSE,
blacklist BOOLEAN DEFAULT FALSE,
antiRob INTEGER DEFAULT 0,
lastRob INTEGER DEFAULT 0,
lastRecolt INTEGER DEFAULT 0,
lastWork INTEGER DEFAULT 0,
lastDaily INTEGER DEFAULT 0,
lastRep INTERGER DEFAULT 0,
lastTrep INTERGER DEFAULT 0,
lastArep INTERGER DEFAULT 0,
lastHack INTERGER DEFAULT 0,
lastKill INTERGER DEFAULT 0,
lastBraquage INTERGER DEFAULT 0,
job TEXT,
teamId TEXT,
teamRole TEXT,
teamDroper INTERGER DEFAULT 0,
embed TEXT,
PRIMARY KEY (guildId, userId)
)`);
db.run(`CREATE TABLE IF NOT EXISTS teams (
guildId TEXT,
id TEXT,
name TEXT,
description TEXT,
icon TEXT,
banner TEXT,
reputation INTERGER DEFAULT 0,
bank INTEGER DEFAULT 0,
location INTERGER DEFAULT 0,
level INTEGER DEFAULT 1,
padlock INTEGER DEFAULT 5,
soldiers INTEGER DEFAULT 0,
woundedSoldiers INTEGER DEFAULT 0,
campLevel INTEGER DEFAULT 1,
turrets INTEGER DEFAULT 0,
alliancesId TEXT,
PRIMARY KEY (guildId, id)
)`);
db.run(`CREATE TABLE IF NOT EXISTS alliances (
guildId TEXT,
id TEXT,
creator TEXT,
name TEXT,
description TEXT,
icon TEXT,
banner TEXT,
reputation INTERGER DEFAULT 0,
bank INTEGER DEFAULT 0,
PRIMARY KEY (guildId, id)
)`);
db.run(`CREATE TABLE IF NOT EXISTS rolePermission (
guildId TEXT,
roleId TEXT,
permission INTEGER,
PRIMARY KEY (guildId, permission)
)`);
module.exports = db;
const sqlite3 = require("sqlite3").verbose();
let db = new sqlite3.Database("./db.sqlite");
db.run(`CREATE TABLE IF NOT EXISTS config (
guildId TEXT,
name TEXT,
value TEXT,
PRIMARY KEY (guildId, name)
)`);
db.run(`CREATE TABLE IF NOT EXISTS users (
guildId TEXT,
userId TEXT,
pocket INTEGER DEFAULT 0,
bank INTEGER DEFAULT 0,
reputation INTEGER DEFAULT 0,
lvl INTERGER DEFAULT 0,
xp INTERGER DEFAULT 0,
objet INTERGER DEFAULT 0,
key INTERGER DEFAULT 0,
buyer BOOLEAN DEFAULT FALSE,
owner BOOLEAN DEFAULT FALSE,
whitelist BOOLEAN DEFAULT FALSE,
blacklist BOOLEAN DEFAULT FALSE,
antiRob INTEGER DEFAULT 0,
lastRob INTEGER DEFAULT 0,
lastRecolt INTEGER DEFAULT 0,
lastWork INTEGER DEFAULT 0,
lastDaily INTEGER DEFAULT 0,
lastRep INTERGER DEFAULT 0,
lastTrep INTERGER DEFAULT 0,
lastArep INTERGER DEFAULT 0,
lastHack INTERGER DEFAULT 0,
lastKill INTERGER DEFAULT 0,
lastBraquage INTERGER DEFAULT 0,
job TEXT,
teamId TEXT,
teamRole TEXT,
teamDroper INTERGER DEFAULT 0,
embed TEXT,
PRIMARY KEY (guildId, userId)
)`);
db.run(`CREATE TABLE IF NOT EXISTS teams (
guildId TEXT,
id TEXT,
name TEXT,
description TEXT,
icon TEXT,
banner TEXT,
reputation INTERGER DEFAULT 0,
bank INTEGER DEFAULT 0,
location INTERGER DEFAULT 0,
level INTEGER DEFAULT 1,
padlock INTEGER DEFAULT 5,
soldiers INTEGER DEFAULT 0,
woundedSoldiers INTEGER DEFAULT 0,
campLevel INTEGER DEFAULT 1,
turrets INTEGER DEFAULT 0,
alliancesId TEXT,
PRIMARY KEY (guildId, id)
)`);
db.run(`CREATE TABLE IF NOT EXISTS alliances (
guildId TEXT,
id TEXT,
creator TEXT,
name TEXT,
description TEXT,
icon TEXT,
banner TEXT,
reputation INTERGER DEFAULT 0,
bank INTEGER DEFAULT 0,
PRIMARY KEY (guildId, id)
)`);
db.run(`CREATE TABLE IF NOT EXISTS rolePermission (
guildId TEXT,
roleId TEXT,
permission INTEGER,
PRIMARY KEY (guildId, permission)
)`);
module.exports = db;
+51 -37
View File
@@ -1,37 +1,51 @@
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) => {
if (err) reject(err);
resolve(row);
});
});
let embedColor = user.embed;
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';
}
return embedColor;
}
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) => {
if (err) reject(err);
resolve(row);
},
);
});
let embedColor = user.embed;
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";
}
return embedColor;
};
+13 -9
View File
@@ -1,15 +1,19 @@
const db = require('./database.js');
const db = require("./database.js");
module.exports = async function getPermissionLevel(serverId, user) {
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) => {
if (err) reject(err);
resolve(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;
}
};
+11 -7
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) => {
if (err) reject(err);
resolve(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 : "&";
};
+35 -35
View File
@@ -1,35 +1,35 @@
const fs = require('fs');
const path = require('path');
module.exports = function loadCommands(client, dir) {
let count = 0;
fs.readdirSync(path.join(__dirname, dir)).forEach((file) => {
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')) {
try {
delete require.cache[require.resolve(filePath)];
const command = require(filePath);
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;
}
if (!command.permission) command.permission = 0;
client.commands.set(fileName, command);
if (command.aliases) {
command.aliases.forEach((alias) => {
client.commands.set(alias, command);
});
}
count++;
} catch (error) {
console.error(`Failed to load file: ${filePath}`);
console.error(error);
}
}
});
return count;
}
const fs = require("fs");
const path = require("path");
module.exports = function loadCommands(client, dir) {
let count = 0;
fs.readdirSync(path.join(__dirname, dir)).forEach((file) => {
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")) {
try {
delete require.cache[require.resolve(filePath)];
const command = require(filePath);
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;
}
if (!command.permission) command.permission = 0;
client.commands.set(fileName, command);
if (command.aliases) {
command.aliases.forEach((alias) => {
client.commands.set(alias, command);
});
}
count++;
} catch (error) {
console.error(`Failed to load file: ${filePath}`);
console.error(error);
}
}
});
return count;
};
+22 -22
View File
@@ -1,22 +1,22 @@
const fs = require('fs');
const path = require('path');
module.exports = function loadEvents(client, dir) {
let count = 0;
fs.readdirSync(path.join(__dirname, dir)).forEach((file) => {
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')) {
delete require.cache[require.resolve(filePath)];
const event = require(filePath);
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 {
console.error(`Event ${event.name} does not have an execute method.`);
}
}
});
return count;
}
const fs = require("fs");
const path = require("path");
module.exports = function loadEvents(client, dir) {
let count = 0;
fs.readdirSync(path.join(__dirname, dir)).forEach((file) => {
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")) {
delete require.cache[require.resolve(filePath)];
const event = require(filePath);
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 {
console.error(`Event ${event.name} does not have an execute method.`);
}
}
});
return count;
};
+28 -28
View File
@@ -1,4 +1,4 @@
const fs = require("fs")
const fs = require("fs");
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////
@@ -7,32 +7,32 @@ const fs = require("fs")
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function saveLOGE(LOG) {
try {
let data = fs.readFileSync('logs/ERROR.txt', 'utf8');
const log = data.split('\n');
log.push(...LOG);
data = log.join('\n');
fs.writeFileSync('logs/ERROR.txt', data);
} catch (err) {
console.log(err);
}
try {
let data = fs.readFileSync("logs/ERROR.txt", "utf8");
const log = data.split("\n");
log.push(...LOG);
data = log.join("\n");
fs.writeFileSync("logs/ERROR.txt", data);
} catch (err) {
console.log(err);
}
}
module.exports = function loggE(erreur) {
const config = require("./config.json");
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ TIME /////////////////////////////////////////////////////////////////////////////
const d = new Date()
var jours = d.getDate().toString().padStart(2, "0")
var mois = d.getMonth().toString().padStart(2, "0") + 1
var année = d.getFullYear().toString().padStart(2, "0")
var heures = d.getHours().toString().padStart(2, "0")
var minutes = d.getMinutes().toString().padStart(2, "0")
var secondes = d.getSeconds().toString().padStart(2, "0")
var milliseconds = d.getMilliseconds().toString().padStart(3, "0")
const time = ` ${jours}/${mois}/${année} =>> ${heures}h ${minutes}m ${secondes}s ${milliseconds}ms `
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ CODE DE LOG ///////////////////////////////////////////////////////////////////////
const text = erreur
const ERROR = `[ERROR] || ${time} || ${text}`
const LOG = [];
LOG.push(ERROR);
saveLOGE(LOG);
}
const config = require("./config.json");
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ TIME /////////////////////////////////////////////////////////////////////////////
const d = new Date();
var jours = d.getDate().toString().padStart(2, "0");
var mois = d.getMonth().toString().padStart(2, "0") + 1;
var année = d.getFullYear().toString().padStart(2, "0");
var heures = d.getHours().toString().padStart(2, "0");
var minutes = d.getMinutes().toString().padStart(2, "0");
var secondes = d.getSeconds().toString().padStart(2, "0");
var milliseconds = d.getMilliseconds().toString().padStart(3, "0");
const time = ` ${jours}/${mois}/${année} =>> ${heures}h ${minutes}m ${secondes}s ${milliseconds}ms `;
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ CODE DE LOG ///////////////////////////////////////////////////////////////////////
const text = erreur;
const ERROR = `[ERROR] || ${time} || ${text}`;
const LOG = [];
LOG.push(ERROR);
saveLOGE(LOG);
};
+39 -40
View File
@@ -1,4 +1,4 @@
const fs = require("fs")
const fs = require("fs");
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////
@@ -7,45 +7,44 @@ const fs = require("fs")
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function saveLOGT(LOG) {
try {
let data = fs.readFileSync('logs/TEXT.txt', 'utf8');
const log = data.split('\n');
log.push(...LOG);
data = log.join('\n');
fs.writeFileSync('logs/TEXT.txt', data);
} catch (err) {
console.log(err);
}
try {
let data = fs.readFileSync("logs/TEXT.txt", "utf8");
const log = data.split("\n");
log.push(...LOG);
data = log.join("\n");
fs.writeFileSync("logs/TEXT.txt", data);
} catch (err) {
console.log(err);
}
}
module.exports = function loggT(msg) {
const config = require("./config.json");
if (config.test == true) {
return
}
if (!msg == "\n" || !msg == "\n\n") {
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ TIME /////////////////////////////////////////////////////////////////////////////
const d = new Date()
var jours = d.getDate().toString().padStart(2, "0")
var mois = d.getMonth().toString().padStart(2, "0")
var année = d.getFullYear().toString().padStart(2, "0")
var heures = d.getHours().toString().padStart(2, "0")
var minutes = d.getMinutes().toString().padStart(2, "0")
var secondes = d.getSeconds().toString().padStart(2, "0")
var milliseconds = d.getMilliseconds().toString().padStart(3, "0")
const time = ` ${jours}/${mois}/${année} =>> ${heures}h ${minutes}m ${secondes}s ${milliseconds}ms `
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ CODE DE LOG ///////////////////////////////////////////////////////////////////////
const text = msg
const MSG_T = `[TEXT] || ${time} || ${text}`
const LOG = [];
LOG.push(MSG_T);
saveLOGT(LOG);
}
else {
const MSG_T = `\n\n`
const LOG = [];
LOG.push(MSG_T);
saveLOGT(LOG);
}
}
const config = require("./config.json");
if (config.test == true) {
return;
}
if (!msg == "\n" || !msg == "\n\n") {
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ TIME /////////////////////////////////////////////////////////////////////////////
const d = new Date();
var jours = d.getDate().toString().padStart(2, "0");
var mois = d.getMonth().toString().padStart(2, "0");
var année = d.getFullYear().toString().padStart(2, "0");
var heures = d.getHours().toString().padStart(2, "0");
var minutes = d.getMinutes().toString().padStart(2, "0");
var secondes = d.getSeconds().toString().padStart(2, "0");
var milliseconds = d.getMilliseconds().toString().padStart(3, "0");
const time = ` ${jours}/${mois}/${année} =>> ${heures}h ${minutes}m ${secondes}s ${milliseconds}ms `;
//*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/ CODE DE LOG ///////////////////////////////////////////////////////////////////////
const text = msg;
const MSG_T = `[TEXT] || ${time} || ${text}`;
const LOG = [];
LOG.push(MSG_T);
saveLOGT(LOG);
} else {
const MSG_T = `\n\n`;
const LOG = [];
LOG.push(MSG_T);
saveLOGT(LOG);
}
};
+19 -19
View File
@@ -1,19 +1,19 @@
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');
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`)
client.login(process.env.TOKEN);
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");
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`);
client.login(process.env.TOKEN);