我正在制作discord.js机器人,我很好奇如何添加聊天过滤器。正如在用户说f***
,它将自动删除。
你可以用一系列单词来做到这一点,
var profanities = ["test1", "test2", "..."];
然后在你的bot.on消息处理程序中,或者你如何使用它来处理消息,
bot.on('message', async message => {
let msg = message.content.toLowerCase();
let Admin = message.guild.roles.find('name', "Admin"); // Change this to meet what you want
let General = message.guild.channels.find(`name`, "general"); // All text channels are lowecase. Change this to meet what you want
for (x = 0; x < profanities.length; x++) {
if(message.member.roles.has(Admin.id) || message.channel.id === General.id) return; // if you changed the name of the variables above, change these too.
if (msg.includes(profanities[x])){
await message.reply("You cannot say that here!")
message.delete()
// Your code here
return;
}
}
});
编辑:这是非常基本的,它不会寻找替代字母,如$,@或数字/空格,除非你直接编码,你可以有一个单词列表,然后控制台记录每个单词的替代字母。
client.on('message', message => {
message.delete(message.content.replace(/asshole/gi))
.catch(console.error);
});
这只是一个例子,您可以使用文本数组。