首页 > 解决方案 > 使用 switch 语句添加对消息的反应

问题描述

我计划在我的不和谐机器人中添加多个反应命令(因为它是为了好玩而创建的,所以我希望人们可以通过它找到有趣的东西)并且我希望将它变成 switch 语句,这样我就可以正确地看到哪个是where,没有大量的 if 语句。下面是我的代码当前在 if 语句中的样子,以及我在 switch 语句中使用的东西,虽然不完全,但有些工作。(虽然有不同的包含和表情符号,因为我目前拥有的东西很尴尬)

if (message.content.includes('test')) {
        message.react("")
    switch (message.content.toLowerCase()) {
        case 'test':
            message.react("")
            break;
}

这有点奏效,尽管大写,但对仅包含“测试”一词的任何内容都有反应,但对于这个机器人,我希望它能够检测到消息中的任何位置,所以我决定尝试:

    switch (message.content.includes()) {
        case 'test': 
            message.react("")
            break;

但这最终根本不起作用

任何建议如何使用 switch 语句,或者我应该坚持使用 else if 语句,尽管想要大量这些?

标签: node.jsswitch-statementdiscorddiscord.js

解决方案


类似的东西?

const reactToMessage = message => {
  const messageTriggers = {
    'cat': () => {
      message.react('')
    },
    'dog': () => {
      message.react('')
    },
    'cow': () => {
      message.react('')
    }
  }

  Object.keys(messageTriggers).forEach(trigger => {
    message.toLowerCase().includes(trigger) && messageTriggers[trigger]()
  })
}

// Usage
reactToMessage('Cat and dog goes to Cow!')

推荐阅读