Advertisement
Guest User

Reaction

a guest
Dec 18th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const yourID = "374987612060123149";
  2. const setupCMD = "+react"
  3. let initialMessage = `**React to the messages below to receive the associated role. If you would like to remove the role, simply remove your reaction!**`;
  4. const roles = ["🎮MEMBERS🎮", "BOTS", "`🎼AOH~DJ🎼`", "DSDJ"];
  5. const reactions = ["💻", "🖌", "😃", "🆕"];
  6.  
  7.  
  8.  
  9. if (roles.length !== reactions.length) throw "Roles list and reactions list are not the same length!";
  10.  
  11.  
  12. function generateMessages(){
  13.     var messages = [];
  14.     messages.push(initialMessage);
  15.     for (let role of roles) messages.push(`React below to get the **"${role}"** role!`);
  16.     return messages;
  17. }
  18.  
  19.  
  20. bot.on("message", message => {
  21.     if (message.author.id == yourID && message.content.toLowerCase() == setupCMD){
  22.         var toSend = generateMessages();
  23.         let mappedArray = [[toSend[0], false], ...toSend.slice(1).map( (message, idx) => [message, reactions[idx]])];
  24.         for (let mapObj of mappedArray){
  25.             message.channel.send(mapObj[0]).then( sent => {
  26.                 if (mapObj[1]){
  27.                   sent.react(mapObj[1]);  
  28.                 }
  29.             });
  30.         }
  31.     }
  32. })
  33.  
  34.  
  35. bot.on('raw', event => {
  36.     if (event.t === 'MESSAGE_REACTION_ADD' || event.t == "MESSAGE_REACTION_REMOVE"){
  37.        
  38.         let channel = bot.channels.get(event.d.channel_id);
  39.         let message = channel.fetchMessage(event.d.message_id).then(msg=> {
  40.         let user = msg.guild.members.get(event.d.user_id);
  41.        
  42.         if (msg.author.id == bot.user.id && msg.content != initialMessage){
  43.        
  44.             var re = `\\*\\*"(.+)?(?="\\*\\*)`;
  45.             var role = msg.content.match(re)[1];
  46.        
  47.             if (user.id != bot.user.id){
  48.                 var roleObj = msg.guild.roles.find(r => r.name === role);
  49.                 var memberObj = msg.guild.members.get(user.id);
  50.                
  51.                 if (event.t === "MESSAGE_REACTION_ADD"){
  52.                     memberObj.addRole(roleObj)
  53.                 } else {
  54.                     memberObj.removeRole(roleObj);
  55.                 }
  56.             }
  57.         }
  58.         })
  59.  
  60.     }  
  61. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement