我有一个事件处理程序,当我执行我的机器人时它只工作一次。这应该阻止任何网站链接到特定频道,并将 message.content 发送到另一个允许链接的频道,但这仅在有人第一次发送链接时有效 进入我的公会(服务器)。
Obs:我在索引文件中有一个事件/命令处理程序。
有什么办法可以解决这个问题并每次都阻止链接吗?
module.exports = {
name: 'message',
execute(message) {
console.log('\x1b[31m', `${message.author.tag}`,'\x1b[0m', `in`, '\x1b[34m', `#${message.channel.name}: `, '\x1b[33m', `${message.content}`, '\x1b[0m');
//bloquear links
if (message.channel.id === '390214264495013890'){
function is_url(str) {
const regexp = /^(?:(?:https?|ftp):\/\/)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?$/;
if(regexp.test(str)) {
return true;
} else {
return false;
}
}
if(is_url(message.content) === true) {
message.delete()
message.channel.id ="804920613696307240"
message.reply(`You can not send link on Zip-Zop! ?\n${message.content}`)
}
}
},
};
/*This is my Event handler into index file
const eventFiles = fs.readdirSync('./events').filter(file => file.endsWith('.js'));
for (const file of eventFiles) {
const event = require(`./events/${file}`);
if (event.once) {
client.once(event.name, (...args) => event.execute(...args, client));
} else {
client.on(event.name, (...args) => event.execute(...args, client));
}
}*/
答案 0 :(得分:0)
我发现 message.channel.id ="CHANNELID"
导致了这个问题。我暂时删除了这一行和 message.reply
行。