繁体   English   中英

discord.js 响应句子中的特定单词

[英]discord.js respond to specific words in sentence

所以我正在尝试向我的不和谐机器人添加一个帮助检测器,它会自动响应某些东西。 例如,如果有人I want help with login它应该自动响应,但如果有人说I want help它应该什么都不做,所以它只在检测到句子包含帮助和登录并且我试图制作代码时才响应为此,但它根本没有响应,这是代码:

let help_words2 = ["help", "problems", "problem", "error", "issue"]
let help_words = ["psutil", "pyinstaller"]
if (message.content.toLowerCase().includes(help_words) && message.content.toLowerCase().includes(help_words2)) {
    const embed = new MessageEmbed()
    .setAuthor(`I'm here to help ${message.author.tag}!`,'https://img.icons8.com/fluency/48/000000/help.png',`${client.config.links.website}`)
    .setDescription(`**I think you need help with python and before asking more questions make sure to check out these pages/channels**\n\n> <#905804981368664075>\n> <#905224439736705087>`)
    message.channel.send(embed)
}

我也尝试使用 .indexOf() 而不是 .includes() 但是当我使用它时,它会响应输入的每条消息,这不是我想要的。 我在控制台中也没有收到任何错误或任何错误。 所以问题是,我将如何让不和谐机器人响应句子中的特定单词

您正在尝试检查整个阵列。 该函数会自动将其转换为字符串,这意味着您实际上是在执行以下操作:

message.content.toLowerCase().includes("psutil,pyinstaller")

我认为您想要的是检查消息是否包含数组中的任何内容。 你可以使用Array.prototype.some来做到这一点:

if (help_words.some(w => message.content.toLowerCase().includes(w)) &&
help_words2.some(w => message.content.toLowerCase().includes(w))) {
 //rest of your code
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM