mirror of
https://github.com/arthur-pbty/xiao.git
synced 2026-06-03 23:36:43 +02:00
Better help command
This commit is contained in:
+12
-22
@@ -1,7 +1,6 @@
|
||||
const { Command } = require('discord.js-commando');
|
||||
const { MessageEmbed } = require('discord.js');
|
||||
const { stripIndents } = require('common-tags');
|
||||
const { util: { disambiguation } } = require('discord.js-commando');
|
||||
|
||||
module.exports = class HelpCommand extends Command {
|
||||
constructor(client) {
|
||||
@@ -16,7 +15,7 @@ module.exports = class HelpCommand extends Command {
|
||||
{
|
||||
key: 'command',
|
||||
prompt: 'Which command would you like to view the help for?',
|
||||
type: 'string',
|
||||
type: 'command',
|
||||
default: ''
|
||||
}
|
||||
]
|
||||
@@ -24,29 +23,12 @@ module.exports = class HelpCommand extends Command {
|
||||
}
|
||||
|
||||
async run(msg, { command }) {
|
||||
const commands = this.client.registry.findCommands(command, false, msg);
|
||||
if (command) {
|
||||
if (commands.length === 1) {
|
||||
const data = commands[0];
|
||||
return msg.say(stripIndents`
|
||||
__Command **${data.name}**__${data.nsfw ? ' (NSFW)' : ''}${data.guildOnly ? ' (Usable only in servers)' : ''}
|
||||
${data.description} ${data.details ? `\n_${data.details}_` : ''}
|
||||
|
||||
**Format**: ${msg.anyUsage(`${data.name} ${data.format || ''}`)}
|
||||
**Aliases**: ${data.aliases.join(', ') || 'None'}
|
||||
**Group**: ${data.group.name} (\`${data.groupID}:${data.memberName}\`)
|
||||
`);
|
||||
} else if (commands.length > 15) {
|
||||
return msg.say('Multiple commands found. Please be more specific.');
|
||||
} else if (commands.length > 1) {
|
||||
return msg.say(disambiguation(commands, 'commands'));
|
||||
}
|
||||
return msg.say(`Could not identify command. Use ${msg.usage(null)} to view a list of commands.`);
|
||||
} else {
|
||||
if (!command) {
|
||||
const embed = new MessageEmbed()
|
||||
.setTitle('Command List')
|
||||
.setDescription(`Use ${msg.usage('<command>')} to view detailed information about a command.`)
|
||||
.setColor(0x00AE86);
|
||||
.setColor(0x00AE86)
|
||||
.setFooter(`${this.client.registry.commands.size} Commands`);
|
||||
for (const group of this.client.registry.groups.values()) {
|
||||
embed.addField(`❯ ${group.name}`, group.commands.map(cmd => cmd.name).join(', ') || 'None');
|
||||
}
|
||||
@@ -59,5 +41,13 @@ module.exports = class HelpCommand extends Command {
|
||||
return msg.reply('Failed to send DM. You probably have DMs disabled.');
|
||||
}
|
||||
}
|
||||
return msg.say(stripIndents`
|
||||
__Command **${command.name}**__${command.guildOnly ? ' (Usable only in servers)' : ''}
|
||||
${command.description}${command.details ? `\n_${command.details}_` : ''}
|
||||
|
||||
**Format**: ${msg.anyUsage(`${command.name} ${command.format || ''}`)}
|
||||
**Aliases**: ${command.aliases.join(', ') || 'None'}
|
||||
**Group**: ${command.group.name} (\`${command.groupID}:${command.memberName}\`)
|
||||
`);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user