Advertisement
ala89

TUTO DEV #8 - CREER UN BOT DISCORD : TEMPBAN ET TEMPMUTE

Jul 8th, 2020 (edited)
3,955
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // tempban.js
  2. const parseDuration = require('parse-duration'),
  3.     humanizeDuration = require('humanize-duration')
  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 duration = parseDuration(args[1])
  14.         if (!duration) return message.channel.send('Veuillez indiquer une durée valide.')
  15.         const reason = args.slice(2).join(' ') || 'Aucune raison fournie'
  16.         await member.ban({reason})
  17.         message.channel.send(`${member.user.tag} a été banni pendant ${humanizeDuration(duration, {language: 'fr'})} !`)
  18.         setTimeout(() => {
  19.             message.guild.members.unban(member)
  20.             message.channel.send(`${member.user.tag} a été débanni.`)
  21.         }, duration)
  22.     },
  23.     name: 'tempban',
  24.     guildOnly: true
  25. }
  26.  
  27. // tempmute.js
  28. const parseDuration = require('parse-duration'),
  29.     humanizeDuration = require('humanize-duration')
  30.  
  31. module.exports = {
  32.     run: async (message, args) => {
  33.         if (!message.member.hasPermission('MANAGE_MESSAGES')) 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 à mute.')
  36.         if (member.id === message.guild.ownerID) return message.channel.send('Vous ne pouvez mute 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 mute ce membre.')
  38.         if (!member.manageable) return message.channel.send('Le bot ne peut pas mute ce membre.')
  39.         const duration = parseDuration(args[1])
  40.         if (!duration) return message.channel.send('Veuillez indiquer une durée valide.')
  41.         const reason = args.slice(2).join(' ') || 'Aucune raison fournie.'
  42.         let muteRole = message.guild.roles.cache.find(role => role.name === 'Muted')
  43.         if (!muteRole) {
  44.             muteRole = await message.guild.roles.create({
  45.                 data: {
  46.                     name: 'Muted',
  47.                     permissions: 0
  48.                 }
  49.             })
  50.             message.guild.channels.cache.forEach(channel => channel.createOverwrite(muteRole, {
  51.                 SEND_MESSAGES: false,
  52.                 CONNECT: false,
  53.                 ADD_REACTIONS: false
  54.             }))
  55.         }
  56.         await member.roles.add(muteRole)
  57.         message.channel.send(`${member} a été mute pendant ${humanizeDuration(duration, {language: 'fr'})} !`)
  58.         setTimeout(() => {
  59.             if (member.deleted || !member.manageable) return
  60.             member.roles.remove(muteRole)
  61.             message.channel.send(`${member} a été unmute.`)
  62.         }, duration)
  63.     },
  64.     name: 'tempmute',
  65.     guildOnly: true
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement