首页 > 解决方案 > Discord.js V12 粗鲁的话过滤器不起作用

问题描述

所以我像粗鲁的词过滤器一样添加,每当有人说那个词(小写或大写)时,它都会删除他们的消息并回复一些东西,然后回复会在几秒钟内被删除。

这是我当前的代码,但是当我在聊天中写下任何粗鲁的话时,它不会读取rudeWords并且不会做任何事情。

client.on('message', message => {
    if (message.author.bot) return;
    let rudeWords = ["kys", "kill yourself"];
    if (message.content.toLowerCase() === rudeWords) {
        message.delete()
        message.reply('do not use that word here, thank you.').then(msg => {
        msg.delete({ timeout: 3000 })
    })
}})

标签: javascriptbotsdiscorddiscord.js

解决方案


rudeWords是一个数组,而不是一个字符串,所以你不能通过检查它们是否相等来进行比较message.contentrudeWords相反,你需要使用includes()

client.on('message', message => {
    if (message.author.bot) return;
    let rudeWords = ["kys", "kill yourself"];
    if (rudeWords.includes(message.content.toLowerCase())) {
        message.delete()
        message.reply('do not use that word here, thank you.').then(msg => {
        msg.delete({ timeout: 3000 })
    })
}})

推荐阅读