Advertisement
Guest User

Discord-auto+Role=by%mirage

a guest
Jan 22nd, 2019
1,669
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var Discord = require('discord.js');
  2. var client = new Discord.Client();
  3. var prefix = "-" ; // البرفكس
  4.  
  5. var stopReacord = true;
  6. var reactionRoles = [];
  7. var definedReactionRole = null;
  8.  
  9. client.on("message", async message => {
  10.     const args = message.content.slice(prefix.length).trim().split(/ +/g);
  11.     const command = args.shift().toLowerCase();
  12.     if(message.author.bot) return;
  13.     if(message.content.indexOf(prefix) !== 0) return;
  14.     if (command == "autoc") {
  15.       if(!message.channel.guild) return message.reply(`**this ~~command~~ __for servers only__**`);
  16.       if(!message.member.hasPermission("ADMINISTRATOR")) return message.channel.send("sorry you can't do this");
  17.       if(!args[0] || args[1]) return message.channel.send(`\`\`\`${prefix}autoC <role-name>\`\`\``);
  18.       var role = message.guild.roles.find( role => { return role.name == args[0] });
  19.       if(!role) return message.channel.send(`no role with name ${definedRoleName} found, make sure you entered correct name`);
  20.       if(definedReactionRole != null  || !stopReacord) return message.channel.send("another reaction role request is running");
  21.       message.channel.send(`now go and add reaction in the message you want for role ${role.name}`);
  22.       definedReactionRole = role;
  23.       stopReacord = false;
  24.     }    
  25. })
  26. client.on('raw', raw => {
  27.   if (!['MESSAGE_REACTION_ADD', 'MESSAGE_REACTION_REMOVE'].includes(raw.t)) return;
  28.   var channel = client.channels.get(raw.d.channel_id);
  29.   if (channel.messages.has(raw.d.message_id)) return;
  30.   channel.fetchMessage(raw.d.message_id).then(message => {
  31.     var reaction = message.reactions.get( (raw.d.emoji.id ? `${raw.d.emoji.name}:${raw.d.emoji.id}` : raw.d.emoji.name) );
  32.     if (raw.t === 'MESSAGE_REACTION_ADD') return client.emit('messageReactionAdd', reaction, client.users.get(raw.d.user_id));
  33.     if (raw.t === 'MESSAGE_REACTION_REMOVE') return client.emit('messageReactionRemove', reaction, client.users.get(raw.d.user_id));
  34.   });
  35. });
  36. client.on('messageReactionAdd', (reaction, user) => {
  37.     if(user.id == client.user.id) return;
  38.     if(!stopReacord) {
  39.       var done = false;
  40.       reactionRoles[reaction.message.id] = { role: definedReactionRole, message_id: reaction.message.id, emoji: reaction.emoji};
  41.       stopReacord =  true;
  42.       definedReactionRole = null;
  43.       reaction.message.react(reaction.emoji.name)
  44.       .catch(err => {done = true; reaction.message.channel.send(`sorry i can't use this emoji but the reaction role done! anyone react will get the role!`)})
  45.      if(done) reaction.remove(user);
  46.    } else {
  47.      var request = reactionRoles[reaction.message.id];
  48.      if(!request) return;
  49.      if(request.emoji.name != reaction.emoji.name) return reaction.remove(user);
  50.      reaction.message.guild.members.get(user.id).addRole(request.role);
  51.    }
  52. })
  53. client.on('messageReactionRemove', (reaction, user) => {
  54.  if(user.id == client.user.id) return;
  55.  if(!stopReacord) return;
  56.  let request = reactionRoles[reaction.message.id];
  57.  if(!request) return;
  58.  reaction.message.guild.members.get(user.id).removeRole(request.role);
  59. });
  60.  
  61. client.login("     "); // حط توكن البوت داخل
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement