const discord = require('discord.js'); const client = new discord.Client(); const { token, prefix, ServerID } = require('./config.json'); client.on("ready", () => { console.log("I am ready to recieve and Send Mails :D!"); client.user.setActivity("Watching My DM's :D") }); client.on("message", async message => { if(message.author.bot) return; let args = message.content.slice(prefix.length).split(' '); let command = args.shift().toLowerCase(); if(message.guild){ if(command === "setup") { if(!message.member.hasPermission("ADMINISTRATOR")) { return message.channel.send("You need to have Admin Permissions to setup the Modmail system! :man_facepalming: "); } let role = message.guild.roles.cache.find((x) => x.name === "Support Team"); let everyone = message.guild.roles.cache.find((x) => x.name === "@everyone"); if(!role){ role = await message.guild.roles.create({ data: { name: "Support Team", color: "GREEN" }, reason: "Role needed for ModMail System" }) } await message.guild.channels.create('MODMAIL', { type: "category", topic: "All the mail will be here :D", permissionOverwrites: [ { id: role.id, allow: ["VIEW_CHANNEL", "SEND_MESSAGES", "READ_MESSAGE_HISTORY"] }, { id: everyone.id, deny: ["VIEW_CHANNEL", "SEND_MESSAGES", "READ_MESSAGE_HISTORY"] } ] }); return message.channel.send("Setup is Completed :D") }else if(!message.guild){ const guild = await client.guilds.cache.get(ServerID); if(!guild) return; const main = guild.channels.cache.find((x) => x.name === message.author.id) const category = guild.channels.cache.find((x) => x.name === "MODMAIL") if(!main){ let mx = await guild.channels.create(message.author.id, { type: "text", parent: category.id, topic: "This mail is created for helping **" + message.author.tag + " **" }); let sembed = new discord.MessageEmbed() .setAuthor("Main opened") .setColor("GREEN") .setThumbnail(client.user.displayAvatarURL()) .setDescription("Conversation is now starting, you will be contacted by the Support Team soon :yawning_face: ") message.author.send(sembed) let eembed = new discord.MessageEmbed() .setAuthor("Details", message.author.displayAvatarURL({dynamic: true})) .setColor("BLUE") .setThumbnail(message.author.displayAvatarURL({dynamic: true})) .setDescription(message.content) .addField("Name", message.author.username) .addField("Account Creation Date", message.author.createAt) .addField("Direct Contact", "No(It means this mail was opened by a person who isn't on the support team"); if (err){ return console.error() } return message.channel.send(eembed) } let xembed = new discord.MessageEmbed() .setColor("YELLOW") .setFooter(message.author.tag, message.author.displayAvatarURL({dynamic: true})) .setDescription(message.content) main.send(xembed) } else if(message.channel.parentID) { const category = message.guild.channels.cache.find((x) => x.name === "MODMAIL") if(message.channel.parentID=== category.id) { let member = message.guild.members.cache.get(message.channel.name) if(!member) return message.channel.send("Unable To Send Message :cry: "); let lembed = new discord.MessageEmbed() .setColor("GREEN") .setFooter(message.author.username, message.author.displayAvatarURL({dynamic: true})) .setDescription(message.content); return member.send(lembed) } } } }); client.login(token)