Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const yourID = "374987612060123149";
- const setupCMD = "+react"
- let initialMessage = `**React to the messages below to receive the associated role. If you would like to remove the role, simply remove your reaction!**`;
- const roles = ["🎮MEMBERS🎮", "BOTS", "`🎼AOH~DJ🎼`", "DSDJ"];
- const reactions = ["💻", "🖌", "😃", "🆕"];
- if (roles.length !== reactions.length) throw "Roles list and reactions list are not the same length!";
- function generateMessages(){
- var messages = [];
- messages.push(initialMessage);
- for (let role of roles) messages.push(`React below to get the **"${role}"** role!`);
- return messages;
- }
- bot.on("message", message => {
- if (message.author.id == yourID && message.content.toLowerCase() == setupCMD){
- var toSend = generateMessages();
- let mappedArray = [[toSend[0], false], ...toSend.slice(1).map( (message, idx) => [message, reactions[idx]])];
- for (let mapObj of mappedArray){
- message.channel.send(mapObj[0]).then( sent => {
- if (mapObj[1]){
- sent.react(mapObj[1]);
- }
- });
- }
- }
- })
- bot.on('raw', event => {
- if (event.t === 'MESSAGE_REACTION_ADD' || event.t == "MESSAGE_REACTION_REMOVE"){
- let channel = bot.channels.get(event.d.channel_id);
- let message = channel.fetchMessage(event.d.message_id).then(msg=> {
- let user = msg.guild.members.get(event.d.user_id);
- if (msg.author.id == bot.user.id && msg.content != initialMessage){
- var re = `\\*\\*"(.+)?(?="\\*\\*)`;
- var role = msg.content.match(re)[1];
- if (user.id != bot.user.id){
- var roleObj = msg.guild.roles.find(r => r.name === role);
- var memberObj = msg.guild.members.get(user.id);
- if (event.t === "MESSAGE_REACTION_ADD"){
- memberObj.addRole(roleObj)
- } else {
- memberObj.removeRole(roleObj);
- }
- }
- }
- })
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement