首页 > 解决方案 > Discord bot:使用拼写错误的命令时响应“未知命令”

问题描述

我想让我的 discord.js 机器人响应

未知命令,使用 c!help 获取可用命令”当执行类似 c!hep(拼写错误)或未实现的不同类型命令(如 c!youtube)或只是像 c!rgoiw 这样的随机字母时。

如果他们的消息与任何可用的命令不匹配,基本上只是一个响应。

我没有任何特定的代码,我只是使用const PREFIX = 'c!';withlet args = message.content.substring(PREFIX.length).split(" ")并将所有命令设置在一个switch(args[0]){块中。

我对编码一无所知,到目前为止,我所做的一切一旦写出来就很容易解释了,但是我不知道从头开始写它时要做什么。

还没有在网上看到任何关于未知命令响应的线程,所以我假设这可能是不可能的。谢谢

const PREFIX = 'c!';

bot.on('message', message=>{

let args = message.content.substring(PREFIX.length).split(" ")

switch(args[0]){
        case 'example':
        break;
//Code to respond to the prefix with no matching case
  }

})

标签: discord.js

解决方案


https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch

默认条款;如果提供,则如果表达式的值不匹配任何 case 子句,则执行此子句。

例子:

switch (expr) {
  case 'Oranges':
    console.log('Oranges are $0.59 a pound.');
    break;
  case 'Mangoes':
  case 'Papayas':
    console.log('Mangoes and papayas are $2.79 a pound.');
    // expected output: "Mangoes and papayas are $2.79 a pound."
    break;
  default:
    console.log('Sorry, we are out of ' + expr + '.');
}

如上所示,如果没有匹配项(转换为您的用例 - 如果没有识别到​​命令),则执行下找到的命令default

换句话说,您的代码应该是

switch(args[0]){
        case 'example':
        break;
        default: console.log(`Unknown command, use c!help for available  commands`);
  }
})

推荐阅读