gaber-elsayed

tickets system

Jan 10th, 2020
980
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.29 KB | None | 0 0
  1. client.on("message", async message => {
  2. const db = require('quick.db');
  3. if (message.author.bot) return;
  4. if (message.channel.type !== 'text') {
  5.  
  6. let active = await db.fetch(`support_${message.author.id}`);
  7.  
  8. let guild = client.guilds.get('654597015271112706');
  9.  
  10. let channel, found = true;
  11.  
  12. try {
  13. if (active) client.channels.get(active.channelID).guild;
  14. } catch (e) {
  15. found = false;
  16. }
  17.  
  18. if (!active || !found) {
  19.  
  20. active = {};
  21.  
  22. channel = await guild.createChannel(`${message.author.username}-${message.author.discriminator}-support`, 'text', [{id: '654597015271112706'}])
  23. channel.setParent('656504302055063571');
  24.  
  25. let author = message.author;
  26. let embed = new RichEmbed()
  27. const newChannel = new RichEmbed()
  28. .setColor(0x36393e)
  29. .setAuthor(author.tag, author.displayAvatarURL)
  30. .setFooter('Support Ticket Created')
  31. .addField('User', author)
  32. .addField('ID', author.id)
  33.  
  34. await channel.send(newChannel);
  35.  
  36. const newTicket = new RichEmbed()
  37. .setColor(0x36393e)
  38. .setAuthor(`Hello, ${author.tag}`, author.displayAvatarURL)
  39. .setFooter('Support Ticket Created')
  40.  
  41. await author.send(newTicket);
  42.  
  43. active.channelID = channel.id;
  44. active.targetID = author.id;
  45.  
  46. }
  47.  
  48.  
  49.  
  50. channel = client.channels.get(active.channelID);
  51.  
  52. const dm = new RichEmbed()
  53. .setColor(0x36393e)
  54. .setAuthor(`Thank you, ${message.author.tag}`, message.author.displayAvatarURL)
  55. .setFooter(`Ýour message has been sent -- A staff member will be in contact soon`)
  56.  
  57. await message.author.send(dm);
  58.  
  59. let embed = new RichEmbed()
  60. .setColor(0x36393e)
  61. .setAuthor(message.author.tag, message.author.displayAvatarURL)
  62. .setDescription(message.content)
  63. .setFooter(`Message Received -- ${message.author.tag}`)
  64.  
  65. await channel.send(embed);
  66.  
  67. db.set(`support_${message.author.id}`, active);
  68. db.set(`supportChanel_${channel.id}`, message.author.id);
  69.  
  70. }
  71.  
  72. let support = await db.fetch(`supportChannel_${message.channel.id}`);
  73.  
  74. if (support) {
  75.  
  76. support = await db.fetch(`support_${support}`);
  77.  
  78. let supportUser = client.user.get(support.targetID);
  79. if (!supportUser) return message.channel.delete();
  80.  
  81. if (message.content.toLowerCase() === '?complete') {
  82.  
  83. const complete = new RichEmbed()
  84. .setColor(0x36393e)
  85. .setAuthor(`Hey, ${supportUser.tag}`, supportUser.displayAvatarURL)
  86. .setFooter('Ticket Closed -- Gaming House')
  87. .setDescription('*Your ticket has been marked as **completed**. If you with to reopen this, or create a new one, please send a message in the bot DM*')
  88.  
  89. supportUser.send(complete);
  90.  
  91. message.channel.delete();
  92.  
  93. db.delete(`support_${support.targetID}`);
  94.  
  95. }
  96.  
  97. const embed = new RichEmbed()
  98. .setColor(0x36393e)
  99. .setAuthor(message.author.tag, message.author.iconURL)
  100. .setFooter(`Message Received -- Gaming House`)
  101. .setDescription(message.content)
  102.  
  103. client.users.get(support.targetID).send(embed)
  104.  
  105. message.delete(1000);
  106.  
  107. embed.setFooter(`Message Sent -- ${supportUser.tag}`).setDescription(message.content);
  108.  
  109. return message.channel.send(embed);
  110.  
  111. }
Advertisement
Add Comment
Please, Sign In to add comment