messageCreate.js (8488B)
1 const client = require(".."); 2 const { EmbedBuilder, ChannelType } = require("discord.js"); 3 const Utils = require("../util/functions/function"); 4 const domains = require("../util/Data/domains.json"); 5 client.on("messageCreate", async message => { 6 if (message.author.bot || !message.guild) return; 7 const data = {}; 8 const guildDB = await client.data.getGuild(message.guild.id); 9 if (!guildDB) return; 10 const userDB = await client.data.getUser(message.author?.id); 11 if (!userDB) return; 12 data.Guild = guildDB; 13 data.User = userDB; 14 if (!guildDB) await client.data.CreateGuild(message.guild.id); 15 if (message.content.match(new RegExp(`^<@!?${client.user.id}>( |)$`))) { 16 const _ = new EmbedBuilder() 17 .addFields( 18 { 19 name: "Prefix/Usage", 20 value: "Run `/help` to start using the bot", 21 inline: true, 22 }, 23 { 24 name: ":link: **Invite Me**", 25 value: `[Click Here](${Utils.inviteLink(client)})`, 26 inline: true, 27 }, 28 { 29 name: "<:support1:867093614403256350> **Need Help ?**", 30 value: `Join our [Support Server](https://discord.gg/SbQHChmGcp)`, 31 inline: true, 32 }, 33 { 34 name: "<:YouTube:841186450497339412> **Video Guide**", 35 value: `[How to use Slash Coammands](https://youtu.be/YSKDu1gKntY)`, 36 inline: true, 37 }, 38 { 39 name: `<:nyx_description:897379659665264650> Documentation`, 40 value: `[Click here](${client.docs})`, 41 inline: true, 42 }, 43 { 44 name: "<a:donate:896985486260846614> **Support us**", 45 value: `[KoFi](https://ko-fi.com/cathteam)`, 46 inline: true, 47 }, 48 { 49 name: "<a:booster:896527475063025704> **Premium**", 50 value: `You can either boost the support server or subscribe to developer's team [Ko-Fi](https://ko-fi.com/cathteam).\n Another option would be to gift a nitro subscription to one of the developers.`, 51 inline: false, 52 } 53 ) 54 .setTitle(client.user.username) 55 56 .setThumbnail(client.user.displayAvatarURL({ dynamic: true })) 57 .setURL(client.web) 58 .setFooter({ 59 text: `Made by ${client.author}`, 60 iconURL: client.user.displayAvatarURL({ dynamic: true }), 61 }) 62 .setTimestamp() 63 .setColor(client.color); 64 try { 65 const m = await message.reply({ 66 embeds: [_], 67 components: Utils.buttons(client), 68 }); 69 setTimeout(() => m.delete(), 15000); 70 } catch (_) {} 71 } 72 if (data.User?.Blacklist) return; 73 try { 74 if ( 75 domains.iplogger.includes( 76 message.content 77 .toLowerCase() 78 .match( 79 /(https|http):\/\/([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+~-]*[\w.,@?^=%&:/~+~-])+/g 80 )?.[0] 81 .replace(/(https|http):\/\/+/g, "") 82 .match(/\s*([^)]+?)\s*\/+/g, "")[0] 83 .slice(0, -1) 84 ) || 85 domains.scam.includes( 86 message.content 87 .toLowerCase() 88 .match( 89 /(https|http):\/\/([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+~-]*[\w.,@?^=%&:/~+~-])+/g 90 )?.[0] 91 .replace(/(https|http):\/\/+/g, "") 92 .match(/\s*([^)]+?)\s*\/+/g, "")[0] 93 .slice(0, -1) 94 ) || 95 domains.ngrok.includes( 96 message.content 97 .toLowerCase() 98 .match( 99 /(https|http):\/\/([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+~-]*[\w.,@?^=%&:/~+~-])+/g 100 )?.[0] 101 .replace(/(https|http):\/\/+/g, "") 102 .match(/\s*([^)]+?)\s*\/+/g, "")[0] 103 .slice(0, -1) 104 ) 105 ) { 106 const _ = new EmbedBuilder() 107 .setTitle(`Scam/IP Grabber detected`) 108 .setTimestamp() 109 .setColor(client.color) 110 .addFields( 111 { 112 name: "User", 113 value: `${message.author.tag} (${message.author.id})`, 114 inline: true, 115 }, 116 { 117 name: "Scam/IP Logger URL", 118 value: `||https://${message.content 119 .toLowerCase() 120 .match( 121 /(https|http):\/\/([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+~-]*[\w.,@?^=%&:/~+~-])+/g 122 )?.[0] 123 .replace(/(https|http):\/\/+/g, "") 124 .match(/\s*([^)]+?)\s*\/+/g, "")[0] 125 .slice(0, -1)}||`, 126 inline: true, 127 } 128 ) 129 .setFooter({ 130 text: `Tactical Protection by ${client.author}`, 131 icon_url: client.user.displayAvatarURL({ dynamic: true }), 132 }); 133 message.channel.send({ 134 embeds: [_], 135 }); 136 client.channels.cache.get(client.config.ScamLinkLog).send({ 137 embeds: [ 138 _.addFields( 139 { 140 name: "Message", 141 value: message.content, 142 inline: false, 143 }, 144 { 145 name: "Guild", 146 value: message.guild ? message.guild.name : "None", 147 inline: true, 148 } 149 ), 150 ], 151 }); 152 message.delete().catch(() => {}); 153 } 154 } catch (_) {} 155 156 if ( 157 message?.content.startsWith(data.Guild.Prefix) || 158 message?.content.toLowerCase().startsWith("c.") 159 ) { 160 const embed = new EmbedBuilder() 161 .setTitle(`Message commands are now disabled`) 162 .setDescription( 163 `Please enable **Use Application Commands** in the channel settings to get access to slash commands, we have discontinued message commands\n\nUse \`/help\` to see more info` 164 ) 165 .setColor(client.color) 166 .setThumbnail(message.guild.iconURL({ dynamic: true })) 167 .addFields( 168 { 169 name: ":link: **Invite Me**", 170 value: `[Click Here](${Utils.inviteLink(client.user.id)})`, 171 inline: true, 172 }, 173 { 174 name: "<:support1:867093614403256350> **Need Help ?**", 175 value: `Join our [Support Server](https://discord.gg/SbQHChmGcp)`, 176 inline: true, 177 }, 178 { 179 name: "<:YouTube:841186450497339412> **Video Guide**", 180 value: `[How to use Slash Coammands](https://youtu.be/YSKDu1gKntY)`, 181 inline: true, 182 }, 183 { 184 name: `<:nyx_description:897379659665264650> Documentation`, 185 value: `[Click here](${client.docs})`, 186 inline: true, 187 }, 188 { 189 name: "<a:donate:896985486260846614> **Support us**", 190 value: `[KoFi](https://ko-fi.com/cathteam)`, 191 inline: true, 192 }, 193 { 194 name: "<a:booster:896527475063025704> **Premium**", 195 value: `You can either boost support server or subscribe to developer's team [Ko-Fi](https://ko-fi.com/cathteam) or gift a nitro to one of the developer team.`, 196 inline: false, 197 } 198 ) 199 .setURL(client.web) 200 .setFooter({ 201 text: `Requested by ${message.author.tag}`, 202 iconURL: message.author.displayAvatarURL({ dynamic: true }), 203 }) 204 .setThumbnail( 205 "https://raw.githubusercontent.com/night0721/cath.exe/main/util/assets/images/nyx_logo_transparent.webp" 206 ) 207 .setTimestamp(); 208 message.reply({ 209 embeds: [embed], 210 components: Utils.buttons(client), 211 }); 212 } 213 }); 214 client.on("messageCreate", async message => { 215 if (message.channel.type === ChannelType.DM && !message.author.bot) { 216 if (message.attachments && message?.content) { 217 message.attachments.map(e => 218 client.channels.cache.get(client.config.DMLog).send({ 219 content: `\`${message.author.tag}(${message.author.id})\`: ${ 220 message.content + e.url 221 }`, 222 }) 223 ); 224 } else { 225 message.attachments.map(e => 226 client.channels.cache.get(client.config.DMLog).send({ 227 content: `\`${message.author.tag}(${message.author.id})\`: ${e.url}`, 228 }) 229 ); 230 } 231 if (message.content) { 232 client.channels.cache.get(client.config.DMLog).send({ 233 embeds: [ 234 new EmbedBuilder() 235 .setDescription(message.content) 236 .setColor(client.color) 237 .setAuthor({ 238 name: message.author.tag, 239 iconURL: message.author.displayAvatarURL({ dynamic: true }), 240 }), 241 ], 242 }); 243 } 244 } 245 });