javascript - 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 })
})
}})
解决方案
rudeWords
是一个数组,而不是一个字符串,所以你不能通过检查它们是否相等来进行比较message.content
,rudeWords
相反,你需要使用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 })
})
}})
推荐阅读
- java - 无法从通用超类中识别子类
- typescript - 类型“字符串”不可分配给类型
- php - PHP/Mysqli 缓存 mysql 主机?不尊重低TTL
- excel - 在 Excel VBA 中从网站问题中解析赔率
- powershell - Powershell检查是否有任何浏览器打开了特定的url
- django - 将 i18n_patterns 与 API 一起使用的问题
- android-source - 如何在设备树中添加引导 jar 位置?
- angular - ApplicationRef.tick 与 setTimeout
- javascript - 正则表达式仅在字符出现 4 次时才查找字符
- linux - 如何创建 LIRC 配置文件?