Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // index.js
- const Discord = require('discord.js'),
- client = new Discord.Client({
- fetchAllMembers: true,
- partials: ['MESSAGE', 'REACTION']
- }),
- config = require('./config.json'),
- fs = require('fs')
- client.login(config.token)
- client.commands = new Discord.Collection()
- fs.readdir('./commands', (err, files) => {
- if (err) throw err
- files.forEach(file => {
- if (!file.endsWith('.js')) return
- const command = require(`./commands/${file}`)
- client.commands.set(command.name, command)
- })
- })
- client.on('message', message => {
- if (message.type !== 'DEFAULT' || message.author.bot) return
- const args = message.content.trim().split(/ +/g)
- const commandName = args.shift().toLowerCase()
- if (!commandName.startsWith(config.prefix)) return
- const command = client.commands.get(commandName.slice(config.prefix.length))
- if (!command) return
- command.run(message, args, client)
- })
- client.on('guildMemberAdd', member => {
- member.guild.channels.cache.get(config.greeting.channel).send(`${member}`, new Discord.MessageEmbed()
- .setDescription(`${member} a rejoint le serveur. Nous sommes désormais ${member.guild.memberCount} ! 🎉`)
- .setColor('#00ff00'))
- member.roles.add(config.greeting.role)
- })
- client.on('guildMemberRemove', member => {
- member.guild.channels.cache.get(config.greeting.channel).send(new Discord.MessageEmbed()
- .setDescription(`${member.user.tag} a quitté le serveur... 😢`)
- .setColor('#ff0000'))
- })
- client.on('messageReactionAdd', (reaction, user) => {
- if (!reaction.message.guild || user.bot) return
- const reactionRoleElem = config.reactionRole[reaction.message.id]
- if (!reactionRoleElem) return
- const prop = reaction.emoji.id ? 'id' : 'name'
- const emoji = reactionRoleElem.emojis.find(emoji => emoji[prop] === reaction.emoji[prop])
- if (emoji) reaction.message.guild.member(user).roles.add(emoji.roles)
- else reaction.users.remove(user)
- })
- client.on('messageReactionRemove', (reaction, user) => {
- if (!reaction.message.guild || user.bot) return
- const reactionRoleElem = config.reactionRole[reaction.message.id]
- if (!reactionRoleElem || !reactionRoleElem.removable) return
- const prop = reaction.emoji.id ? 'id' : 'name'
- const emoji = reactionRoleElem.emojis.find(emoji => emoji[prop] === reaction.emoji[prop])
- if (emoji) reaction.message.guild.member(user).roles.remove(emoji.roles)
- })
- // config.json
- {
- "token": "votre token",
- "prefix": "!",
- "greeting": {
- "channel": "718970110164992041",
- "role": "718970160647635056"
- },
- "reactionRole": {
- "721812281347932311": {
- "emojis": [{
- "id": "719563468008718348",
- "roles": "722404495371534358"
- }]
- },
- "721812680763244596": {
- "removable": true,
- "emojis": [{
- "name": "💻",
- "roles": ["722088168458813584", "722088234963828747"]
- }, {
- "name": "🎮",
- "roles": "722088255402672139"
- }]
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement