Advertisement
Guest User

Untitled

a guest
Jan 31st, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //Settings!
  2. const adminId = "";
  3. const setupCMD = "@initrolereactions"
  4. let initialMessage = `**React to the reactions below to assign your country!**`;
  5.  
  6. const botToken = "";
  7.  
  8. //Load up the bot...
  9. const Discord = require('discord.js');
  10. const mysql = require('mysql2');
  11. const chalk = require('chalk');
  12. const fs = require('fs');
  13. const settings = require('./settings.json');
  14. const bot = new Discord.Client();
  15.  
  16. bot.login(botToken);
  17.  
  18. const con = mysql.createConnection({
  19.     host: settings.mysqlHost,
  20.     user: settings.mysqlUser,
  21.     password: settings.mysqlPass,
  22.     database: settings.mysqlDB
  23. });
  24.  
  25. const roles = [];
  26. const reactions = [];
  27.  
  28. bot.on("message", message => {
  29.     if (message.author.id == adminId && message.content.toLowerCase() == setupCMD) {
  30.         con.query(`SELECT * FROM countries`, (err, rows) => {
  31.             if (err) console.log(err);
  32.  
  33.             for (let row of rows) {
  34.                 roles.push(row.rolename);
  35.                 reactions.push(row.reaction);
  36.             }
  37.            
  38.             message.channel.send(initialMessage).then( sent => {
  39.                 for (let reaction of reactions) {
  40.                     sent.react(reaction);
  41.                 }
  42.             });
  43.         });
  44.     }
  45. })
  46.  
  47. bot.on('messageReactionAdd', (reaction, user) => {
  48.     if (reaction.message.author.id == bot.user.id) {
  49.         let channel = bot.channels.get(reaction.message.channel.id);
  50.         let message = channel.fetchMessage(reaction.message.id).then(msg=> {
  51.             if (user.id != bot.user.id) {
  52.                 var emoji = reaction.emoji.id;
  53.                 if (emoji == null) emoji = reaction.emoji.name;
  54.  
  55.                 var arr = JSON.parse(fs.readFileSync('./countries.json', 'utf8'));
  56.                 for (let row of arr) {
  57.                     if (row.reaction == emoji) {
  58.                         var role = row.rolename;
  59.                         var roleObj = msg.guild.roles.find(r => r.name === role);
  60.                         var memberObj = msg.guild.members.get(user.id);
  61.  
  62.                         if (roleObj) {
  63.                             memberObj.addRole(roleObj).catch(console.error);
  64.                         } else {
  65.                             msg.guild.createRole({
  66.                                 name: role
  67.                             }).then(role => memberObj.addRole(role))
  68.                               .catch(console.error);
  69.                         }
  70.  
  71.                     }
  72.                 }
  73.             }
  74.         });
  75.     }
  76. });
  77.  
  78. bot.on('messageReactionRemove', (reaction, user) => {
  79.     if (reaction.message.author.id == bot.user.id) {
  80.         let channel = bot.channels.get(reaction.message.channel.id);
  81.         let message = channel.fetchMessage(reaction.message.id).then(msg=> {
  82.             if (user.id != bot.user.id) {
  83.                 var emoji = reaction.emoji.id;
  84.                 if (emoji == null) emoji = reaction.emoji.name;
  85.  
  86.                 var arr = JSON.parse(fs.readFileSync('./countries.json', 'utf8'));
  87.                 for (let row of arr) {
  88.                     if (row.reaction == emoji) {
  89.                         var role = row.rolename;
  90.                         var roleObj = msg.guild.roles.find(r => r.name === role);
  91.                         var memberObj = msg.guild.members.get(user.id);
  92.  
  93.                         if (user.id != bot.user.id){
  94.                             var roleObj = msg.guild.roles.find(r => r.name === role);
  95.                             var memberObj = msg.guild.members.get(user.id);
  96.  
  97.                             memberObj.removeRole(roleObj).catch(console.error);
  98.                         }
  99.                     }
  100.                 }
  101.             }
  102.         });
  103.     }
  104. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement