const Discord = require("discord.js"); const fetch = require("cross-fetch"); module.exports = async(nooder, message) => { //if (message.member.hasPermission("MANAGE_MESSAGES")) return; const unix = Math.floor(new Date().getTime() / 1000); nooder.database.get(`SELECT bool FROM antiscam WHERE guildID = ?`, message.guild.id, async(err, row) => { if (!row || !row.bool) return; if (row.bool === '0') return; const regex = new RegExp(/(?:[A-z0-9](?:[A-z0-9-]{0,61}[A-z0-9])?\.)+[A-z0-9][A-z0-9-]{0,61}[A-z0-9]/gi); let role = message.guild.roles.cache.find(role => role.name === "Muted"); const guild = nooder.guilds.cache.get(message.guild.id); const member = guild.members.cache.get(message.author.id); if (message.content.match(regex)) { let data = await fetch("https://XXXXXXXXX", { method: "post", body: JSON.stringify({ message: message.content }), headers: { "Content-Type": "application/json", "User-Agent": "Nooder Anti-phishing (Tazhys#0001 / 622890595614195722)", }, }).then(res => res.json()) if (data.match) { const phishEmbed = new Discord.MessageEmbed() .setAuthor(`Scam/Phish Prevented`, nooder.icons.erroricon) .setDescription(`${message.author} tried sending a phishing/scam link!`) .setFooter(`User ID: ${message.author.id}`) .setColor("RED") message.channel.send(phishEmbed).then(msg => msg.delete({ timeout: 620 })) if (role) { member.roles.add(role.id) } nooder.database.get(`SELECT * FROM modlog WHERE guildID = ?`, [message.guild.id], (err, res) => { if (res) { const moderationChannel = message.guild.channels.cache.find(c => c.id === res.channelID) const phishMod = new Discord.MessageEmbed() .setAuthor(`Member Alert | Phishing Detected`, message.author.displayAvatarURL()) .addField(`Member/User`, `${message.author.tag} [\`${message.author.id}\`]`, true) .addField(`Incident Date`, ``, true) .addField(`Message Content`, `[\`${message.content}\`]`) .setFooter(`${message.guild.name} is protected by Nooder Anti-Phishing!`) .setColor("YELLOW") moderationChannel.send(phishMod) if (!role) { const muteRoleMissing = new Discord.MessageEmbed() .setDescription(`${nooder.emoji.error} There was an error whilst trying to mute this member. "Muted" role was not found.`) .setColor("RED") return message.channel.send(muteRoleMissing).then(m => m.delete({ timeout: 820 })) } } else if (!res) { return; } }) } } }) }