首页 > 解决方案 > 有没有办法按照“如果消息包含,请执行此操作”的方式做一些事情

问题描述

我正在创建一个 Discord 机器人,如果有人使用前缀和未知命令,我想回复。“包含”功能是什么?

switch(message.content){
          case '$status':
              message.reply('Online and ready to go!');
            break;
            case 'ping':
                message.reply('Pong!');
              break;
              case '$help':
                  message.reply('$status - reply \'Online and ready to go!\'');
                  message.reply('$despacito - reply with despacito');
                break;
                case '$despacito':
                    message.reply('https://pbs.twimg.com/media/D-KIbiaWsAAV1-2.jpg');
                  break;
                  default: 
                  console.log('not recognized:' + message.content); 

我想If *contains* '$', message.reply('Uh oh, looks like that's not a valid command.')在 console.log 之后添加该功能。

标签: javascriptdiscord.js

解决方案


您的代码的当前编写方式,而不是使用which 将在字符串中的任何位置String.includes()搜索您的前缀,您可以使用它来查看消息是否以前缀开头String.startsWith()

// const prefix = '$';

default:
  if (message.content.startsWith(prefix)) {
    return message.channel.send('Unknown command.')
      .catch(console.error);
  }

推荐阅读