UNPKG

djskage

Version:

A Discord.js extension for utility commands

96 lines (95 loc) 4.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const discord_js_1 = require("discord.js"); const __1 = require(".."); module.exports = { name: "help", aliases: [], description: "Shows a list of available commands", usage: "help [command?]", execute: async (kage, client, message, args) => { try { const cmds = kage.getCommands(); const opt = kage.getOptions(); const total = cmds.length; if (args && args.length > 0) { const commandName = args[0].toLowerCase(); const command = cmds.find((cmd) => cmd.name === commandName || (cmd.aliases && cmd.aliases.includes(commandName))); if (command) { const aliasesText = command.aliases && command.aliases.length > 0 ? `\n> **Aliases:** ${command.aliases.join(", ")}` : ""; const usageText = command.usage ? `\n> **Usage:** ${command.usage}` : ""; const em = new discord_js_1.EmbedBuilder() .setTitle(`Help - ${command.name}`) //@ts-ignore .setColor(opt.customisation.embedColor) .setDescription(`> **Description:** ${command.description || "No description"}${aliasesText}${usageText}`) .setFooter({ text: `Djskage v0.2.0`, }); return message.reply({ embeds: [em], allowedMentions: { repliedUser: false }, }); } else { return message.reply(`Command "${commandName}" not found.`); } } const em = new discord_js_1.EmbedBuilder() .setTitle("Help - Command List") //@ts-ignore .setColor(opt.customisation.embedColor) .setDescription(`**Total Commands:** ${total}\n*To see more info about a command, use \`${opt.prefix}help <command>\`*`) .setFooter({ text: `Djskage v0.2.0`, }); const fields = []; for (let i = 0; i < cmds.length; i++) { const cmd = cmds[i]; if (!cmd) continue; let commandText = `**${cmd.name}**`; if (cmd.aliases && cmd.aliases.length > 0) { commandText += ` *|| ${cmd.aliases.join(" | ")}*`; } commandText += `\n> ${cmd.description || "No description"}`; commandText += `\n> Usage: \`${opt.prefix}djk ${cmd.usage}\``; fields.push(commandText); } const chunkedFields = []; for (let i = 0; i < fields.length; i += 5) { chunkedFields.push(fields.slice(i, i + 5).join("\n")); } chunkedFields.forEach((chunk, index) => { em.addFields({ name: index === 0 ? "Commands" : "\u200B", value: chunk, }); }); const sbtn = new discord_js_1.ButtonBuilder() .setLabel("Source") .setStyle(5) .setURL("https://www.npmjs.com/package/djskage") .setEmoji("💻"); const ibtn = new discord_js_1.ButtonBuilder() .setLabel("Support") .setStyle(5) .setURL("https://discord.gg/tXyDfSGf24") .setEmoji("💬"); const ar = new discord_js_1.ActionRowBuilder().addComponents(sbtn, ibtn); return message.reply({ embeds: [em], components: [ar], allowedMentions: { repliedUser: false }, }); } catch (e) { __1.Logger.error("Error in help command", e); } }, };