Files
bot-discord-coins/commands/bot control/help.js
T
2024-06-24 00:32:05 +02:00

292 lines
10 KiB
JavaScript

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 },
});
});
},
};