diff --git a/commands/util/unknown-command.js b/commands/util/unknown-command.js new file mode 100644 index 00000000..f6f10906 --- /dev/null +++ b/commands/util/unknown-command.js @@ -0,0 +1,29 @@ +const Command = require('../../structures/Command'); +const meant = require('meant'); +const { stripIndents } = require('common-tags'); + +module.exports = class UnknownCommandCommand extends Command { + constructor(client) { + super(client, { + name: 'unknown-command', + group: 'util', + memberName: 'unknown-command', + description: 'Displays help information for when an unknown command is used.', + unknown: true, + hidden: true, + guarded: true + }); + } + + run(msg) { + const commands = this.client.registry.commands.map(c => c.name); + const command = msg.content.match(this.client.dispatcher._commandPatterns[this.client.commandPrefix])[2]; + const didYouMean = meant(command, commands); + const inGuild = msg.guild ? undefined : null; + return msg.reply(stripIndents` + Unknown command. Use ${msg.anyUsage('help', inGuild, inGuild)} to view the command list. + + ${didYouMean && didYouMean.length ? `Did You Mean:\n${didYouMean.join('\n')}` : ''} + `); + } +}; diff --git a/package.json b/package.json index ae3dbac9..63982644 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xiao", - "version": "111.0.3", + "version": "111.1.0", "description": "Your personal server companion.", "main": "Xiao.js", "scripts": { @@ -44,6 +44,7 @@ "dotenv": "^8.2.0", "gifencoder": "^2.0.1", "mathjs": "^6.6.1", + "meant": "^1.0.1", "moment": "^2.24.0", "moment-duration-format": "^2.3.2", "moment-timezone": "^0.5.28",