105 lines
2.6 KiB
JavaScript
Executable File
105 lines
2.6 KiB
JavaScript
Executable File
const Command = require("../../src/structures/Command");
|
|
const { MessageEmbed } = require("discord.js");
|
|
|
|
module.exports = class Help extends Command {
|
|
constructor() {
|
|
super({
|
|
name: "help",
|
|
description:
|
|
"View a list of available commands, or view information on a specific command.",
|
|
aliases: ["h"],
|
|
module: "General",
|
|
cooldown: 0,
|
|
guildOnly: false,
|
|
developerOnly: false
|
|
});
|
|
}
|
|
|
|
async command(ctx) {
|
|
if (!ctx.args.length) {
|
|
const commands = [
|
|
[
|
|
"General",
|
|
ctx.client.commands
|
|
.filter(command => command.module == "General")
|
|
.map(command => `**${command.name}** - ${command.description}`)
|
|
.join("\n")
|
|
]
|
|
];
|
|
|
|
if (ctx.isDeveloper)
|
|
commands.push([
|
|
"Developers",
|
|
ctx.client.commands
|
|
.filter(command => command.module == "Developers")
|
|
.map(command => command.name)
|
|
.join(", ")
|
|
]);
|
|
|
|
return ctx.send({
|
|
embed: {
|
|
fields: commands.map(group => {
|
|
return new Object({
|
|
name: group[0],
|
|
value: group[1]
|
|
});
|
|
}),
|
|
color: 0xff873f
|
|
}
|
|
});
|
|
} else {
|
|
const command = ctx.client.commands.find(
|
|
c =>
|
|
c.name == ctx.args[0].toLowerCase() ||
|
|
(c.aliases && c.aliases.includes(ctx.args[0].toLowerCase()))
|
|
);
|
|
|
|
let fields = [
|
|
{
|
|
name: "Module",
|
|
value: command.module,
|
|
inline: true
|
|
},
|
|
{
|
|
name: "Aliases",
|
|
value:
|
|
command.aliases.length == 0
|
|
? "No aliases"
|
|
: command.aliases.join(", "),
|
|
inline: true
|
|
},
|
|
{
|
|
name: "Cooldown",
|
|
value: command.cooldown == 0 ? "No cooldown" : `${command.cooldown}s`,
|
|
inline: true
|
|
},
|
|
{
|
|
name: "Server only?",
|
|
value: command.guildOnly ? "Yes" : "No",
|
|
inline: true
|
|
},
|
|
{
|
|
name: "Developers only?",
|
|
value: command.developerOnly ? "Yes" : "No",
|
|
inline: true
|
|
}
|
|
];
|
|
|
|
if (!command)
|
|
return ctx.send(
|
|
`That command couldn't be found. See the \`help\` command for valid commands.`
|
|
);
|
|
|
|
let embed = new MessageEmbed()
|
|
.setTitle(command.name)
|
|
.setDescription(command.description)
|
|
.setColor(0xff873f);
|
|
fields.forEach(i => {
|
|
embed.addField(i.name, i.value, i.inline);
|
|
});
|
|
|
|
return ctx.send(embed);
|
|
}
|
|
}
|
|
};
|