首页 > 解决方案 > Discord.JS 删除包含某个单词的消息

问题描述

所以我也在尝试添加审核我的机器人,因为我的服务器完全是 SFW,所以我也在尝试制作它,以便我的机器人将删除包含 NSFW 单词的消息,这是我的代码。我不确定它是否正确但它不起作用所以我想它不是

message.content.includes === ("<Insert NSFW message or word here>")
message.delete(1)

顺便说一句,我仍在寻求帮助

标签: javascriptdiscorddiscord.js

解决方案


到目前为止,你做得很好,

首先,您应该创建一个要审查的 NSFW 单词数组

前任:

const noNoWords = ["sex", "condum"];

完成此操作后,您应该通过数组查看消息内容是否包含 NSFW 字样

前任:

const noNoWords = ["sex", "condum"];

client.on("message", message => {
    var content = message.content;

    for (var i = 0; i < noNoWords.length; i++) {
        if (content.includes(noNoWords[i])){  
            message.delete();
            break
        }
    }
}

这很有效,但如果人们输入 CAPS,它不会检测到,或者如果人们输入空格,比如 this。为了解决这个问题,我们需要删除所有特殊字符并使字符串小写。

前任:

var stringToCheck = content;
stringToCheck.replace(/\s+/g, '').toLowerCase();

然后你插入它,它应该看起来像这样:)

const noNoWords = ["sex", "condum"];

client.on("message", message => {
    var content = message.content;
    var stringToCheck = content.replace(/\s+/g, '').toLowerCase();

    for (var i = 0; i < noNoWords.length; i++) {
        if (content.includes(noNoWords[i])){  
            message.delete();
            break
        }
    }
}

推荐阅读