Advertisement
ala89

TUTO DEV #10 - CREER UN BOT DISCORD : SYSTEME DE TICKETS

Aug 8th, 2020
7,001
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ticket.js
  2. const config = require('../config.json'),
  3.     fs = require('fs'),
  4.     Discord = require('discord.js')
  5.  
  6. module.exports = {
  7.     run: async (message, args, client) => {
  8.         if (Object.values(client.db.tickets).some(ticket => ticket.author === message.author.id)) return message.channel.send('Vous avez déjà un ticket d\'ouvert.')
  9.         const channel = await message.guild.channels.create(`ticket ${message.author.username}`, {
  10.             type: 'text',
  11.             parent: config.ticket.category,
  12.             permissionOverwrites: [{
  13.                 id: message.guild.id,
  14.                 deny: 'VIEW_CHANNEL'
  15.             }, {
  16.                 id: message.author.id,
  17.                 allow: 'VIEW_CHANNEL'
  18.             }, ...config.ticket.roles.map(id => ({
  19.                 id,
  20.                 allow: 'VIEW_CHANNEL'
  21.             }))]
  22.         })
  23.         client.db.tickets[channel.id] = {
  24.             author: message.author.id
  25.         }
  26.         fs.writeFileSync('./db.json', JSON.stringify(client.db))
  27.         channel.send(new Discord.MessageEmbed()
  28.             .setDescription(`Bonjour ${message.member}, bienvenue dans votre ticket. Nous allons nous occuper de vous.`))
  29.         message.channel.send(`Votre ticket ${channel} a été créé !`)
  30.     },
  31.     name: 'ticket',
  32.     guildOnly: true
  33. }
  34.  
  35. // close.js
  36. const fs = require('fs')
  37.  
  38. module.exports = {
  39.     run: async (message, args, client) => {
  40.         const channel = message.mentions.channels.first() || message.channel
  41.         if (!client.db.tickets[channel.id]) return message.channel.send('Ce salon n\'est pas un ticket.')
  42.         if (!message.member.hasPermission('MANAGE_MESSAGES') && client.db.tickets[channel.id].author !== message.author.id) return message.channel.send('Vous n\'avez pas la permission de fermer ce ticket.')
  43.         delete client.db.tickets[channel.id]
  44.         fs.writeFileSync('./db.json', JSON.stringify(client.db))
  45.         await message.channel.send(`Le ticket ${channel.name} a été fermé !`)
  46.         channel.delete()
  47.     },
  48.     name: 'close',
  49.     guildOnly: true
  50. }
  51.  
  52. // db.json
  53. {"warns":{},"tickets":{}}
  54.  
  55. // config.json
  56. {
  57.     "token": "votre token",
  58.     "prefix": "!",
  59.     "greeting": {
  60.         "channel": "718970110164992041",
  61.         "role": "718970160647635056"
  62.     },
  63.     "reactionRole": {
  64.         "721812281347932311": {
  65.             "emojis": [{
  66.                 "id": "719563468008718348",
  67.                 "roles": "722404495371534358"
  68.             }]
  69.         },
  70.         "721812680763244596": {
  71.             "removable": true,
  72.             "emojis": [{
  73.                 "name": "💻",
  74.                 "roles": ["722088168458813584", "722088234963828747"]
  75.             }, {
  76.                 "name": "🎮",
  77.                 "roles": "722088255402672139"
  78.             }]
  79.         }
  80.     },
  81.     "cooldown": {
  82.         "723998402395767288": 1e4,
  83.         "723998419986808883": 3e4
  84.     },
  85.     "ticket": {
  86.         "category": "741691177807380552",
  87.         "roles": ["741690852719460463", "741690932164034670"]
  88.     }
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement