ala89

TUTO DEV #13 - CREER UN BOT DISCORD : COMMAND LOGS ET SAY

Sep 18th, 2020
1,167
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ban.js
  2. const Discord = require('discord.js'),
  3.     config = require('../config.json')
  4.  
  5. module.exports = {
  6.     run: async (message, args) => {
  7.         if (!message.member.hasPermission('BAN_MEMBERS')) return message.channel.send('Vous n\'avez pas la permission d\'utiliser cette commande.')
  8.         const member = message.mentions.members.first()
  9.         if (!member) return message.channel.send('Veuillez mentionner le membre à bannir.')
  10.         if (member.id === message.guild.ownerID) return message.channel.send('Vous ne pouvez pas bannir le propriétaire du serveur.')
  11.         if (message.member.roles.highest.comparePositionTo(member.roles.highest) < 1 && message.author.id !== message.guild.ownerID) return message.channel.send('Vous ne pouvez pas Bannir ce membre.')
  12.         if (!member.bannable) return message.channel.send('Le bot ne peut pas bannir ce membre.')
  13.         const reason = args.slice(1).join(' ') || 'Aucune raison fournie'
  14.         await member.ban({reason})
  15.         message.channel.send(`${member.user.tag} a été banni !`)
  16.         message.guild.channels.cache.get(config.logs).send(new Discord.MessageEmbed()
  17.             .setAuthor(`[BAN] ${member.user.tag}`, member.user.displayAvatarURL())
  18.             .addField('Utilisateur', member, true)
  19.             .addField('Modérateur', message.author, true)
  20.             .addField('Raison', reason, true)
  21.             .addField('Durée', '∞', true))
  22.     },
  23.     name: 'ban',
  24.     guildOnly: true
  25. }
  26.  
  27. // kick.js
  28. const Discord = require('discord.js'),
  29.     config = require('../config.json')
  30.  
  31. module.exports = {
  32.     run: async (message, args) => {
  33.         if (!message.member.hasPermission('KICK_MEMBERS')) return message.channel.send('Vous n\'avez pas la permission d\'utiliser cette commande.')
  34.         const member = message.mentions.members.first()
  35.         if (!member) return message.channel.send('Veuillez mentionner le membre à exclure.')
  36.         if (member.id === message.guild.ownerID) return message.channel.send('Vous ne pouvez pas exclure le propriétaire du serveur.')
  37.         if (message.member.roles.highest.comparePositionTo(member.roles.highest) < 1 && message.author.id !== message.guild.ownerID) return message.channel.send('Vous ne pouvez pas exclure ce membre.')
  38.         if (!member.kickable) return message.channel.send('Le bot ne peut pas exclure ce membre.')
  39.         const reason = args.slice(1).join(' ') || 'Aucune raison fournie'
  40.         await member.kick(reason)
  41.         message.channel.send(`${member.user.tag} a été exclu !`)
  42.         message.guild.channels.cache.get(config.logs).send(new Discord.MessageEmbed()
  43.             .setAuthor(`[KICK] ${member.user.tag}`, member.user.displayAvatarURL())
  44.             .addField('Utilisateur', member, true)
  45.             .addField('Modérateur', message.author, true)
  46.             .addField('Raison', reason, true))
  47.     },
  48.     name: 'kick',
  49.     guildOnly: true,
  50.     help: {
  51.         description: 'Exclue un membre du serveur.',
  52.         syntax: '<@membre> [raison]'
  53.     }
  54. }
  55.  
  56. // mute.js
  57. const Discord = require('discord.js'),
  58.     config = require('../config.json')
  59.  
  60. module.exports = {
  61.     run: async (message, args) => {
  62.         if (!message.member.hasPermission('MANAGE_MESSAGES')) return message.channel.send('Vous n\'avez pas la permission d\'utiliser cette commande.')
  63.         const member = message.mentions.members.first()
  64.         if (!member) return message.channel.send('Veuillez mentionner le membre à mute.')
  65.         if (member.id === message.guild.ownerID) return message.channel.send('Vous ne pouvez mute le propriétaire du serveur.')
  66.         if (message.member.roles.highest.comparePositionTo(member.roles.highest) < 1 && message.author.id !== message.guild.ownerID) return message.channel.send('Vous ne pouvez pas mute ce membre.')
  67.         if (!member.manageable) return message.channel.send('Le bot ne peut pas mute ce membre.')
  68.         const reason = args.slice(1).join(' ') || 'Aucune raison fournie.'
  69.         let muteRole = message.guild.roles.cache.find(role => role.name === 'Muted')
  70.         if (!muteRole) {
  71.             muteRole = await message.guild.roles.create({
  72.                 data: {
  73.                     name: 'Muted',
  74.                     permissions: 0
  75.                 }
  76.             })
  77.             message.guild.channels.cache.forEach(channel => channel.createOverwrite(muteRole, {
  78.                 SEND_MESSAGES: false,
  79.                 CONNECT: false,
  80.                 ADD_REACTIONS: false
  81.             }))
  82.         }
  83.         await member.roles.add(muteRole)
  84.         message.channel.send(`${member} a été mute !`)
  85.         message.guild.channels.cache.get(config.logs).send(new Discord.MessageEmbed()
  86.             .setAuthor(`[MUTE] ${member.user.tag}`, member.user.displayAvatarURL())
  87.             .addField('Utilisateur', member, true)
  88.             .addField('Modérateur', message.author, true)
  89.             .addField('Raison', reason, true)
  90.             .addField('Durée', '∞', true))
  91.     },
  92.     name: 'mute',
  93.     guildOnly: true
  94. }
  95.  
  96. // unmute.js
  97. const Discord = require('discord.js'),
  98.     config = require('../config.json')
  99.  
  100. module.exports = {
  101.     run: async (message, args) => {
  102.         if (!message.member.hasPermission('MANAGE_MESSAGES')) return message.channel.send('Vous n\'avez pas la permission d\'utiliser cette commande.')
  103.         const member = message.mentions.members.first()
  104.         if (!member) return message.channel.send('Veuillez mentionner le membre à unmute.')
  105.         if (member.id === message.guild.ownerID) return message.channel.send('Vous ne pouvez unmute le propriétaire du serveur.')
  106.         if (message.member.roles.highest.comparePositionTo(member.roles.highest) < 1 && message.author.id !== message.guild.ownerID) return message.channel.send('Vous ne pouvez pas unmute ce membre.')
  107.         if (!member.manageable) return message.channel.send('Le bot ne peut pas unmute ce membre.')
  108.         const reason = args.slice(1).join(' ') || 'Aucune raison fournie.'
  109.         const muteRole = message.guild.roles.cache.find(role => role.name === 'Muted')
  110.         if (!muteRole) return message.channel.send('Il n\'y a pas de muterole.')
  111.         await member.roles.remove(muteRole)
  112.         message.channel.send(`${member} a été unmute !`)
  113.         message.guild.channels.cache.get(config.logs).send(new Discord.MessageEmbed()
  114.             .setAuthor(`[UNMUTE] ${member.user.tag}`, member.user.displayAvatarURL())
  115.             .addField('Utilisateur', member, true)
  116.             .addField('Modérateur', message.author, true)
  117.             .addField('Raison', reason, true))
  118.     },
  119.     name: 'unmute',
  120.     guildOnly: true
  121. }
  122.  
  123. // tempmute.js
  124. const parseDuration = require('parse-duration'),
  125.     humanizeDuration = require('humanize-duration'),
  126.     Discord = require('discord.js'),
  127.     config = require('../config.json')
  128.  
  129. module.exports = {
  130.     run: async (message, args) => {
  131.         if (!message.member.hasPermission('MANAGE_MESSAGES')) return message.channel.send('Vous n\'avez pas la permission d\'utiliser cette commande.')
  132.         const member = message.mentions.members.first()
  133.         if (!member) return message.channel.send('Veuillez mentionner le membre à mute.')
  134.         if (member.id === message.guild.ownerID) return message.channel.send('Vous ne pouvez mute le propriétaire du serveur.')
  135.         if (message.member.roles.highest.comparePositionTo(member.roles.highest) < 1 && message.author.id !== message.guild.ownerID) return message.channel.send('Vous ne pouvez pas mute ce membre.')
  136.         if (!member.manageable) return message.channel.send('Le bot ne peut pas mute ce membre.')
  137.         const duration = parseDuration(args[1])
  138.         if (!duration) return message.channel.send('Veuillez indiquer une durée valide.')
  139.         const reason = args.slice(2).join(' ') || 'Aucune raison fournie.'
  140.         let muteRole = message.guild.roles.cache.find(role => role.name === 'Muted')
  141.         if (!muteRole) {
  142.             muteRole = await message.guild.roles.create({
  143.                 data: {
  144.                     name: 'Muted',
  145.                     permissions: 0
  146.                 }
  147.             })
  148.             message.guild.channels.cache.forEach(channel => channel.createOverwrite(muteRole, {
  149.                 SEND_MESSAGES: false,
  150.                 CONNECT: false,
  151.                 ADD_REACTIONS: false
  152.             }))
  153.         }
  154.         await member.roles.add(muteRole)
  155.         message.channel.send(`${member} a été mute pendant ${humanizeDuration(duration, {language: 'fr'})} !`)
  156.         message.guild.channels.cache.get(config.logs).send(new Discord.MessageEmbed()
  157.             .setAuthor(`[MUTE] ${member.user.tag}`, member.user.displayAvatarURL())
  158.             .addField('Utilisateur', member, true)
  159.             .addField('Modérateur', message.author, true)
  160.             .addField('Raison', reason, true)
  161.             .addField('Durée', humanizeDuration(duration, {language: 'fr'}), true))
  162.         setTimeout(() => {
  163.             if (member.deleted || !member.manageable) return
  164.             member.roles.remove(muteRole)
  165.             message.channel.send(`${member} a été unmute.`)
  166.         }, duration)
  167.     },
  168.     name: 'tempmute',
  169.     guildOnly: true
  170. }
  171.  
  172. // tempban.js
  173. const parseDuration = require('parse-duration'),
  174.     humanizeDuration = require('humanize-duration'),
  175.     Discord = require('discord.js'),
  176.     config = require('../config.json')
  177.  
  178. module.exports = {
  179.     run: async (message, args) => {
  180.         if (!message.member.hasPermission('BAN_MEMBERS')) return message.channel.send('Vous n\'avez pas la permission d\'utiliser cette commande.')
  181.         const member = message.mentions.members.first()
  182.         if (!member) return message.channel.send('Veuillez mentionner le membre à bannir.')
  183.         if (member.id === message.guild.ownerID) return message.channel.send('Vous ne pouvez pas bannir le propriétaire du serveur.')
  184.         if (message.member.roles.highest.comparePositionTo(member.roles.highest) < 1 && message.author.id !== message.guild.ownerID) return message.channel.send('Vous ne pouvez pas Bannir ce membre.')
  185.         if (!member.bannable) return message.channel.send('Le bot ne peut pas bannir ce membre.')
  186.         const duration = parseDuration(args[1])
  187.         if (!duration) return message.channel.send('Veuillez indiquer une durée valide.')
  188.         const reason = args.slice(2).join(' ') || 'Aucune raison fournie'
  189.         await member.ban({reason})
  190.         message.channel.send(`${member.user.tag} a été banni pendant ${humanizeDuration(duration, {language: 'fr'})} !`)
  191.         message.guild.channels.cache.get(config.logs).send(new Discord.MessageEmbed()
  192.             .setAuthor(`[BAN] ${member.user.tag}`, member.user.displayAvatarURL())
  193.             .addField('Utilisateur', member, true)
  194.             .addField('Modérateur', message.author, true)
  195.             .addField('Raison', reason, true)
  196.             .addField('Durée', humanizeDuration(duration, {language: 'fr'}), true))
  197.         setTimeout(() => {
  198.             message.guild.members.unban(member)
  199.             message.channel.send(`${member.user.tag} a été débanni.`)
  200.         }, duration)
  201.     },
  202.     name: 'tempban',
  203.     guildOnly: true
  204. }
  205.  
  206. // warn.js
  207. const fs = require('fs'),
  208.     Discord = require('discord.js'),
  209.     config = require('../config.json')
  210.  
  211. module.exports = {
  212.     run: async (message, args, client) => {
  213.         if (!message.member.hasPermission('MANAGE_MESSAGES')) return message.channel.send('Vous n\'avez pas la permission d\'utiliser cette commande.')
  214.         const member = message.mentions.members.first()
  215.         if (!member) return message.channel.send('Veuillez mentionner le membre à warn.')
  216.         if (member.id === message.guild.ownerID) return message.channel.send('Vous ne pouvez pas warn le propriétaire du serveur.')
  217.         if (message.member.roles.highest.comparePositionTo(member.roles.highest) < 1 && message.author.id !== message.guild.ownerID) return message.channel.send('Vous ne pouvez pas warn ce membre.')
  218.         const reason = args.slice(1).join(' ')
  219.         if (!reason) return message.channel.send('Veuillez indiquer une raison.')
  220.         if (!client.db.warns[member.id]) client.db.warns[member.id] = []
  221.         client.db.warns[member.id].unshift({
  222.             reason,
  223.             date: Date.now(),
  224.             mod: message.author.id
  225.         })
  226.         fs.writeFileSync('./db.json', JSON.stringify(client.db))
  227.         message.channel.send(`${member} a été warn pour ${reason} !`)
  228.         message.guild.channels.cache.get(config.logs).send(new Discord.MessageEmbed()
  229.             .setAuthor(`[WARN] ${member.user.tag}`, member.user.displayAvatarURL())
  230.             .addField('Utilisateur', member, true)
  231.             .addField('Modérateur', message.author, true)
  232.             .addField('Raison', reason, true))
  233.     },
  234.     name: 'warn',
  235.     guildOnly: true
  236. }
  237.  
  238. // unwarn.js
  239. const fs = require('fs'),
  240.     Discord = require('discord.js'),
  241.     config = require('../config.json')
  242.  
  243. module.exports = {
  244.     run: async (message, args, client) => {
  245.         if (!message.member.hasPermission('MANAGE_MESSAGES')) return message.channel.send('Vous n\'avez pas la permission d\'utiliser cette commande.')
  246.         const member = message.mentions.members.first()
  247.         if (!member) return message.channel.send('Veuillez mentionner le membre à unwarn.')
  248.         if (!client.db.warns[member.id]) return message.channel.send('Ce membre n\'a aucun warn.')
  249.         const warnIndex = parseInt(args[1], 10) - 1
  250.         if (warnIndex < 0 || !client.db.warns[member.id][warnIndex]) return message.channel.send('Ce warn n\'existe pas.')
  251.         const { reason } = client.db.warns[member.id].splice(warnIndex, 1)[0]
  252.         if (!client.db.warns[member.id].length) delete client.db.warns[member.id]
  253.         fs.writeFileSync('./db.json', JSON.stringify(client.db))
  254.         message.channel.send(`${member} a été unwarn pour ${reason} !`)
  255.         message.guild.channels.cache.get(config.logs).send(new Discord.MessageEmbed()
  256.             .setAuthor(`[UNWARN] ${member.user.tag}`, member.user.displayAvatarURL())
  257.             .addField('Utilisateur', member, true)
  258.             .addField('Modérateur', message.author, true)
  259.             .addField('Warn supprimé', reason, true))
  260.     },
  261.     name: 'unwarn',
  262.     guildOnly: true
  263. }
  264.  
  265. // lock.js
  266. const fs = require('fs'),
  267.     Discord = require('discord.js'),
  268.     config = require('../config.json')
  269.  
  270. module.exports = {
  271.     run: (message, args, client) => {
  272.         if (!message.member.hasPermission('MANAGE_CHANNELS')) return message.channel.send('Vous n\'avez pas la permission d\'utiliser cette commande.')
  273.         const channel = message.mentions.channels.first() || message.channel
  274.         if (client.db.lockedChannels.includes(channel.id)) return message.channel.send('Ce salon est déjà vérrouillé.')
  275.         client.db.lockedChannels.push(channel.id)
  276.         fs.writeFileSync('./db.json', JSON.stringify(client.db))
  277.         message.channel.send('Ce salon a été verrouillé !')
  278.         message.guild.channels.cache.get(config.logs).send(new Discord.MessageEmbed()
  279.             .setAuthor(`[LOCK] ${channel.name}`)
  280.             .addField('Salon', channel, true)
  281.             .addField('Modérateur', message.author, true))
  282.     },
  283.     name: 'lock',
  284.     guildOnly: true
  285. }
  286.  
  287. // unlock.js
  288. const fs = require('fs'),
  289.     Discord = require('discord.js'),
  290.     config = require('../config.json')
  291.  
  292. module.exports = {
  293.     run: (message, args, client) => {
  294.         if (!message.member.hasPermission('MANAGE_CHANNELS')) return message.channel.send('Vous n\'avez pas la permission d\'utiliser cette commande.')
  295.         const channel = message.mentions.channels.first() || message.channel
  296.         if (!client.db.lockedChannels.includes(channel.id)) return message.channel.send('Ce salon n\'est pas vérrouillé.')
  297.         client.db.lockedChannels.splice(client.db.lockedChannels.indexOf(channel.id), 1)
  298.         fs.writeFileSync('./db.json', JSON.stringify(client.db))
  299.         message.channel.send('Ce salon a été déverrouillé !')
  300.         message.guild.channels.cache.get(config.logs).send(new Discord.MessageEmbed()
  301.             .setAuthor(`[UNLOCK] ${channel.name}`)
  302.             .addField('Salon', channel, true)
  303.             .addField('Modérateur', message.author, true))
  304.     },
  305.     name: 'unlock',
  306.     guildOnly: true
  307. }
  308.  
  309. // say.js
  310. const config = require('../config.json')
  311.  
  312. module.exports = {
  313.     run: (message, args) => {
  314.         if (!message.member.hasPermission('MANAGE_GUILD')) return message.channel.send('Vous n\'avez pas la permission d\'utiliser cette commande.')
  315.         if (!args[0]) return message.channel.send('Veuillez indiquer du texte à envoyer.')
  316.         message.delete()
  317.         message.channel.send(message.content.trim().slice(`${config.prefix}say`.length))
  318.     },
  319.     name: 'say',
  320.     guildOnly: true
  321. }
RAW Paste Data