如何让我的 discord.js 聊天机器人回复句子中的单词

How to make my discord.js chat bot reply to a word in a sentence

我正在尝试设置聊天回复机器人来帮助管理游戏 Discord 服务器。我有一个要回复的单词列表,可以让他回复他们没问题。我遇到的问题是其中一个词是 ESP,所以当有人要输入单词 response 时,它​​会在单词 response 中选择 esp 并在我不希望他输入时回复。另一个例子是工作黑客。当有人在聊天中输入 hacksaw ridge 时,他会回复该内容。我希望它只查找单词 esp 以及其他一些作弊术语,而不是在较长单词的中间查找它。

let cheater = ["cheating", "cheater", "aim_bot", 'esp', "hack"]

client.on('messageCreate', (message) => {
  if (message.author.bot) return false;

  if (cheater.some(w => message.content.toLowerCase().includes(w))) {
      message.reply('if you think someone is cheating report it here <#976517390701563955>');
  }

})

如有任何帮助,我们将不胜感激 谢谢

其中一种解决方法其实很简单,如果你想让你的机器人只对完整的词做出反应,你可以使用:

if(message.content.toLowerCase().includes(` ${your_variable} `)) {
  // your code
}

而不是代码中的内容

您需要寻找 Array.prototype.some() 才能在您的 array 中找到 message。要做到这一点。

client.on('messageCreate', async(message) => {
   if (message.author.bot) return false;
   let messages = ["cheating", "cheater", "aim_bot", 'esp', "hack"]

   if(messages.some(element => message.content.toLowerCase().includes(element))) {
      message.reply("if you think someone is cheating report it here <#976517390701563955>")
   }
})