djskage
Version:
A Discord.js extension for utility commands
96 lines (95 loc) • 4.09 kB
JavaScript
;
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);
}
},
};