Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 阻止某些通道中的消息discord.js_Javascript_Node.js_Discord_Discord.js - Fatal编程技术网

Javascript 阻止某些通道中的消息discord.js

Javascript 阻止某些通道中的消息discord.js,javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,我想阻止某些频道中的某些消息,但使用我现在拥有的代码,单词在Discord上的每个频道中都被阻止。我只想在数据库中的通道中阻止这些单词。有办法做到这一点吗 if (message.content.includes('discord.gg/'||'discordapp.com/invite/'||'discord.me/'||'discord.com/')) return blacklist.set(message.author.id, 'blacklisted'); 你可以做点什

我想阻止某些频道中的某些消息,但使用我现在拥有的代码,单词在Discord上的每个频道中都被阻止。我只想在数据库中的通道中阻止这些单词。有办法做到这一点吗

  if (message.content.includes('discord.gg/'||'discordapp.com/invite/'||'discord.me/'||'discord.com/')) 
    return blacklist.set(message.author.id, 'blacklisted');

你可以做点什么

let forbiddenWords = ["discord.gg", "discordapp.com/invite"];
let forbiddenChannels = ["a channel id", "another one"];

for (var i = 0; i < forbiddenWords.length; i++) {
    if (message.content.includes(forbiddenWords[i])) {
        if (forbiddenChannels.includes(message.channel.id)) {
            return blacklist.set(message.author.id, 'blacklisted');
        }
    }
}
让禁止的词语=[“discord.gg”,“discordapp.com/invite”];
让禁止频道=[“一个频道id”,“另一个”];
for(var i=0;i
您需要做的是检查消息来自的频道是否确实是您要阻止这些单词的频道。您可以使用参数来实现这一点

if (message.channel.id === "your id here") {
    // the rest of your code
}
编辑:

如果要阻止多个通道,应使用

let YourDatabaseForChannels = ["Your channel", "Your other channel"];

if (YourDatabaseForChannels.includes(message.channel.id)) {
    // the rest of your code
}

什么数据库?还有,为什么不直接查询数据库并检查数据库中是否有
message.channel.id
?您需要将
bankeddenConnels.includes[message.channel.id]
更改为
bankeddenConnels.includes(message.channel.id)
您应该使用
数组.prototype.some()
而不是
for
循环。不太确定。也许OP想知道哪些单词被屏蔽了,而不仅仅是第一个被屏蔽的单词。我想OP想屏蔽几个频道。