Advertisement
Guest User

Untitled

a guest
Aug 24th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const Discord = require('discord.js');
  2. const tools = require('./functions.js');
  3. const client = new Discord.Client();
  4.  
  5. const prefix = '!';
  6. const ownerID = '317620976688955392';
  7.  
  8. const db = require('quick.db');
  9.  
  10. client.on('message', async message => {
  11.     if (message.author.bot) return;
  12.  
  13.     if (message.channel.type !== 'text') {
  14.  
  15.         let active = await db.get(`support_${message.author.id}`);
  16.  
  17.         let guild = client.guilds.get('593548352373915679');
  18.  
  19.         let channel, found = true;
  20.  
  21.         try {
  22.             if (active) client.channels.get(active.channelID)
  23.         } catch (e) {
  24.             found = false;
  25.         }
  26.  
  27.         if (!active || !found) {
  28.  
  29.             active = {};
  30.            
  31.             channel = await guild.createChannel(`${message.author.username}-${message.author.discriminator}`)
  32.             .then(channel => {
  33.               let category = guild.channels.find(c => c.name == "Support" && c.type == "category");
  34.          
  35.               if (!category) throw new Error("Category channel does not exist");
  36.               channel.setParent('596017375560728616');
  37.             }).catch(console.error);
  38.            
  39.  
  40.             let author = message.author;
  41.  
  42.             const newChannel = new Discord.MessageEmbed()
  43.                 .setColor(0x36393e)
  44.                 .setAuthor(author.tag, author.displayAvatarURL())
  45.                 .setFooter('Support Ticket Created')
  46.                 .addField('User', author)
  47.                 .addField('ID', author.id)
  48.  
  49.             await channel.send(newChannel);
  50.  
  51.             const newTicket = new Discord.MessageEmbed()
  52.                 .setColor(0x36393e)
  53.                 .setAuthor(`Hello ${author.tag}`, author.displayAvatarURL())
  54.                 .setFooter('Support Ticket Created')
  55.  
  56.             await author.send(newTicket);
  57.  
  58.             active.channelID = channel.id;
  59.             active.targetID = author.tag;
  60.         }
  61.  
  62.         channel = client.channels.get(active.channelID);
  63.  
  64.         const dm = new Discord.MessageEmbed()
  65.         .setColor(0x36393e)
  66.         .setAuthor(`Thank you, ${message.author.tag}`, message.author.displayAvatarURL())
  67.         .setFooter(`Your message has been sent -- A staff member will be in contact soon`)
  68.  
  69.         await message.author.send(dm);
  70.  
  71.         const embed = new Discord.MessageEmbed()
  72.             .setColor(0x36393)
  73.             .setAuthor(message.author.tag, message.author.displayAvatarURL())
  74.             .setDescription(message.content)
  75.             .setFooter(`Message Recieved -- ${message.author.tag}`)
  76.  
  77.         await message.author.send(embed);
  78.  
  79.         db.set(`support_${message.author.id}`, active);
  80.         db.set(`supportChannel_${channel.id}`, message.author.id);
  81.         return;
  82.     }
  83.  
  84.     let support = await db.get(`supportChannel_${message.channel.id}`);
  85.  
  86.     if (support) {
  87.  
  88.         support = await db.get(`support_${support}`);
  89.  
  90.         let supportUser = client.users.get(support.targetID);
  91.         if (!supportUser) return message.channel.delete();
  92.  
  93.         if (message.content.toLowerCase() === '!complete') {
  94.             const complete = new Discord.MessageEmbed()
  95.                 .setColor(0x39363e)
  96.                 .setAuthor(`Hey ${supportUser.tag}`, supportUser.displayAvatarURL())
  97.                 .setFooter('Ticket Closed -- ')
  98.                 .setDescription('*Your ticket has been marked as **complete**. If you wish to reopen this, or create a new one, please send a message to the bot.*')
  99.    
  100.             supportUser.send(complete);
  101.  
  102.             message.channel.delete();
  103.  
  104.             db.delete(`support_${support,targetID}`);
  105.         }
  106.  
  107.         const embed = new Discord.MessageEmbed()
  108.             .setColor(0x36393e)
  109.             .setAuthor(message.author.tag, message.author.displayAvatarURL())
  110.             .setFooter(`Message Recieved -- `)
  111.             .setDescription(message.content)
  112.  
  113.         client.users.get(support.targetID).send(embed)
  114.  
  115.         message.delete({timeout: 1000});
  116.  
  117.         embed.setFooter(`Message Sent -- ${supportUser.tag}`).setDescription(message.content);
  118.  
  119.         return message.channel.send(embed);
  120.  
  121.     }
  122.  
  123.     let args = message.content.slice(prefix.length).trim().split(' ');
  124.     let cmd = args.shift().toLowerCase();
  125.  
  126.     if (message.author.bot) return;
  127.     if (!message.content.startsWith(prefix)) return;
  128.  
  129.     try {
  130.  
  131.         delete require.cache[require.resolve(`./commands/${cmd}.js`)];
  132.  
  133.         let ops = {
  134.             ownerID: ownerID
  135.         }
  136.  
  137.         let commandFile = require(`./commands/${cmd}.js`);
  138.         commandFile.run(client, message, args, tools, ops);
  139.     } catch (e) {
  140.         console.log(e.stack);
  141.     }
  142.  
  143. });
  144.  
  145. client.on('ready', () => console.log('Bot Launched!'));
  146.  
  147. client.login('insert token here');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement