Discord.js V12 粗鲁的话过滤器不起作用

2022-01-10 00:00:00 discord bots javascript discord.js

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

so I am adding like a rude words filter, whenever someone says that word (lowercase or uppercase) it deletes their message and replies back with something and then the reply gets deleted in a few seconds.

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

Here's my current code, but it doesn't read the rudeWords and doesn't do anything when I write any of the rude words in the chat.

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 })
    })
}})

推荐答案

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

rudeWords is an array, not a string so you can't compare message.content to rudeWords by checking if they're equal, instead, you need to use 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 })
    })
}})

相关文章