Я создаю клиент со свойством unknownCommandResponse, установленным на false:
const client = new CommandoClient({
commandPrefix: '$',
unknownCommandResponse: false,
owner: '291048060845424640',
disableEveryone: true
});
Но когда я пытаюсь $kasopdkoakwdokapowkdo, он отвечает:
Unknown command. Use $help or @Mysticonomy#2670 help to view the command list.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Это был правильный способ сделать это до 18 января: они решили сделать ответы бота «неизвестная команда» и «ошибка» переопределяемыми, разрешив пользовательские команды, которые будут выполняться вместо них.
Это изменение может быть еще недостаточно задокументировано, но оно было перенесено в ветку master с этот коммит пользователем Gawdl3y. Эта тема взята из Эта проблема, а также указана в столбце "Готово" проекта "Важные вещи" [ссылка на сайт].
Если вы хотите, чтобы он работал как раньше, вам нужно будет использовать предыдущую версию; вы не сможете обновить библиотеку, чтобы добавить новые функции, не обновив и эту часть кода.
С этим обновлением вы можете создать новую команду, расширив класс Command (как обычно), а затем добавив два свойства, установленные для true: unknown и hidden.
Если вам нужен пример, вы можете посмотреть непосредственно на unknown-command по умолчанию автором изменения:
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.',
examples: ['unknown-command kickeverybodyever'],
unknown: true,
hidden: true
});
}
run(msg) {
return msg.reply(
`Unknown command. Use ${msg.anyUsage(
'help',
msg.guild ? undefined : null,
msg.guild ? undefined : null
)} to view the command list.`
);
}
};
Не забудьте не загружать значение по умолчанию unknown-command: оно будет загружено по умолчанию с помощью CommandoRegistry.registerDefaultCommands(), если вы явно не укажете ему не делать этого.
Чтобы избежать этого, добавьте unknownCommand: false к параметрам при загрузке этих команд.
client.registry.registerDefaultCommands({
unknownCommand: false
});
В порядке. Я посмотрел на тот, что в документах. Как мне создать свою собственную неизвестную команду?
Вы должны создать новую команду, как если бы она была обычной, просто добавьте unknown: true и hidden: true к ее параметрам.
Но затем он говорит мне, что неизвестная команда уже зарегистрирована.
О, извините, я неправильно понял. Я отредактировал свой ответ, чтобы объяснить это.
Он говорит мне, что неизвестная команда уже зарегистрирована, но я почти уверен, что не зарегистрировал ее.