用不和谐的.js标记单词



我正在尝试制作我的discord bot,以便每当用户键入某些单词时,它都会在控制台中进行标记。如果第一个单词包含被设置为flag的单词,则该代码可以完全正常工作;你是一个;它不会检测到,而只是";n***";因此,当说出多个应该标记的单词时,标记也会出现问题。

client.flags = new Discord.Collection();
const flagFiles = fs.readdirSync('./flag/').filter(file => file.endsWith('.js'));
for(const file  of flagFiles){
const flag = require(`./flag/${file}`);
client.flags.set(flag.name, flag);
}

client.on("message", function(message){
console.log("Channel:" + color.blue(message.channel) + " " + "Author:" + color.blue(message.author) + " " + "Message:" + color.blue(message.content))
if (message.author.bot) return;
const flagwords = ["spam","Spam","Nig", "nig", "N19", "n19"];
const args1 = message.content.slice(flagwords).split(/ +/);
const msg = args1.shift().toLowerCase();

if (msg.includes("spam") || msg == "spam" || msg == "spam" || msg.includes("spam")) {
client.flags.get("spam").execute(message, args1); 
}
if (msg.includes("nig") || msg == "nig" || msg == "nig" || msg.includes("nig")) {
client.flags.get("nigga").execute(message, args1); 
}
if (msg.includes("n19") || msg == "n19" || msg == "n19" || msg.includes("n19")) {
client.flags.get("nigga").execute(message, args1); 
}
});

当用户发送消息时,使用正则表达式查找所有匹配项。

试试这样的东西:

let message = "niggers, nigger spam 1234. niga N19 nig"
const flagWords = [/spam/g, /Spam/g, /Nig/g, /nig/g, /N19/g, /n19/g];
flagWords.forEach(checkMessage);
function checkMessage(item, index) {
if (message.match(item) != null) console.log(`Message: '${message}' found: '${message.match(item)}'`);
}

最新更新