discord.js v13 | nolobx.js : Update roles

Viewed 20

So I'm making a roblox/discord command that updates the users roles depending on their rank int he group. I'm having 2 issues currently. 1. removing the proper roles. 2. Shows the removed roles twice.

update.js command:

 Reg.findOne({
            discorduserID: member.id,
        }, async (err, database) => {
            if (err) console.log(err)
            if (database == null) {
               //user not found embed part.
            } else if (database.Robloxuser != null) {

                let UserId = parseInt(database.Robloxid)
                let group = 10180496
                rbx.getRankNameInGroup(group, UserId).then(async function (rankName) {
                    let groupRank = `${rankName}`
                    console.log(groupRank)
                    let addedRoles = ['None'];
                    let removedRoles = ['None'];
               
                    let roles = [
                        'Verified',
                        'Full Permissions',
                        'Guest',
                        'Player',
                        'Administrator',
                        'Developer',
                        'Head Developer',
                        'High Command',
                        'Co-Owner',
                        'Owner',
                        'Group Holder'
];
                    let color = chalk.hex('#85c3cf').bold
                    for (let i = 0; i < roles.length; i++) {

                        //finders
                        let grouprole = guild.roles.cache.find(role => role.name === groupRank);
                        let fullpermsrole = guild.roles.cache.find(role => role.name === 'Full Permissions');
                        let playerrole = guild.roles.cache.find(role => role.name === 'Player');
                        let adminro = guild.roles.cache.find(role => role.name === 'Administrator');
                        let devro = guild.roles.cache.find(role => role.name === 'Developer');
                        let headro = guild.roles.cache.find(role => role.name === 'Head Of Staff');
                        let headdevro = guild.roles.cache.find(role => role.name === 'Head Developer');
                        let coowner = guild.roles.cache.find(role => role.name === 'Co Owner');

                        //checkers
                        let checkcoowner = member.roles.cache.some(role => role.name === 'Co Owner');
                        let checkheaddevro = member.roles.cache.some(role => role.name === 'Head Developer');
                        let checkheadro = member.roles.cache.some(role => role.name === 'Head Of Staff');
                        let checkfull = member.roles.cache.some(role => role.name === 'Full Permissions');
                        let checkplayer = member.roles.cache.some(role => role.name === 'Player');
                        let checkadminro = member.roles.cache.some(role => role.name === 'Administrator');
                        let checkdevro = member.roles.cache.some(role => role.name === 'Developer');
                        let checkhas = member.roles.cache.some(role => role.name === groupRank);
                        let checkroles = member.roles.cache.some(role => role.name === roles[i]);
                        if(!checkhas && groupRank === roles[i]) {
                            if (addedRoles.includes('None')) addedRoles.shift();
                            addedRoles.push(groupRank);
                            if (grouprole == headro && !checkadminro) {
                                addedRoles.push(adminro);
                                member.roles.add(adminro);
                            }
                            if (grouprole == headdevro && !checkdevro) {
                                addedRoles.push(devro);
                                member.roles.add(devro);
                            }
                            if (grouprole == devro && !checkadminro) {
                                addedRoles.push(adminro);
                                member.roles.add(adminro);
                            }
                            if (grouprole == adminro && !checkfull) {
                                addedRoles.push(fullpermsrole);
                                member.roles.add(fullpermsrole);
                            }
                            else member.roles.add(grouprole);
     
                        }
                        console.log("Group rank is:" + color(groupRank))
                        console.log("Current role is:" + color(roles[i]))
                        console.log("User Has role:" + color(checkroles))
                        console.log("Boolean:" + color(groupRank != roles[i] && checkroles))
                        if (groupRank != roles[i] && checkroles) {
                        if (removedRoles.includes('None')) removedRoles.shift();
                        if(checkheadro && grouprole != headro) {
                            if(checkdevro && grouprole != devro) removedRoles.push(devro), member.roles.remove(devro);
                            if(checkadminro && grouprole !== adminro) removedRoles.push(adminro), member.roles.remove(adminro);
                            if (checkfull && grouprole !== adminro) removedRoles.push(fullpermsrole), member.roles.remove(fullpermsrole);

                            removedRoles.push(headro)
                            member.roles.remove(headro);
                        }
                        if(checkheaddevro && grouprole != headdevro) {
                            if(checkdevro && grouprole != devro) removedRoles.push(devro), member.roles.remove(devro);
                                if(checkadminro && grouprole !== adminro) removedRoles.push(adminro), member.roles.remove(adminro);
                                if (checkfull && grouprole !== adminro) removedRoles.push(fullpermsrole), member.roles.remove(fullpermsrole);
                            removedRoles.push(headdevro)
                            member.roles.remove(headdevro);
                        }
                        if(checkdevro && grouprole != devro) {
                            if(checkadminro && grouprole !== adminro) removedRoles.push(adminro), member.roles.remove(adminro);
                            if (checkfull && grouprole !== adminro) removedRoles.push(fullpermsrole), member.roles.remove(fullpermsrole);
                            removedRoles.push(devro) 
                            member.roles.remove(devro);
                        }
                        if(checkadminro && grouprole != adminro) {
                            if(checkfull && grouprole !== headro || headdevro || devro || adminro) removedRoles.push(fullpermsrole), member.roles.remove(fullpermsrole);
                            removedRoles.push(adminro)
                            member.roles.remove(adminro);
                        }
                
                if(checkplayer && grouprole != playerrole) removedRoles.push(playerrole), member.roles.remove(playerrole);
                        }                           

                    }
                    console.log(chalk.green(`Roles added to ${member.username}.`), chalk.hex('#05a769').bold(`${addedRoles.join(', ')}`), chalk.hex('#05a769').bold(`${removedRoles.join(', ')}`))
//embed send part

                }).catch(async function (err) {
      
                    console.log(chalk.red(err))
                    return;
                })

No errors are showing up on the terminal. And sometimes it'll add a role and not show it on added roles field.

example 1 example

0 Answers
Related