Advertisement
n3k4a

Untitled

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