diff --git a/Shared/progression.js b/Shared/progression.js index c74f7f0..467bec1 100644 --- a/Shared/progression.js +++ b/Shared/progression.js @@ -56,6 +56,12 @@ exports.RankUp = async function(client, member, level) { member = guild.members.get(user.id); } + //BUGFIX: level 0 and lower can't have a rank + if (level < process.env.RANK_1_THRESHOLD) { + removeRankRoles(guild, member); + return ""; + } + //Snapping the level variable if (level < process.env.RANK_2_THRESHOLD) { level = process.env.RANK_1_THRESHOLD; @@ -78,17 +84,8 @@ exports.RankUp = async function(client, member, level) { return ""; } - //the ranks as roles - let ranks = [ - guild.roles.find(role => role.name === process.env.RANK_1), - guild.roles.find(role => role.name === process.env.RANK_2), - guild.roles.find(role => role.name === process.env.RANK_3) - ] - - //remove all existing roles - for(let i = 0; i < ranks.length; i++) { - member.removeRole(ranks[i].id); - } + //remove all ranks + removeRankRoles(guild, member); //this will enable the new rooms member.addRole(levelRole); @@ -96,3 +93,17 @@ exports.RankUp = async function(client, member, level) { //return the result return "rankUp"; } + +function removeRankRoles(guild, member) { + //the ranks as roles + let ranks = [ + guild.roles.find(role => role.name === process.env.RANK_1), + guild.roles.find(role => role.name === process.env.RANK_2), + guild.roles.find(role => role.name === process.env.RANK_3) + ]; + + //remove all existing roles + for(let i = 0; i < ranks.length; i++) { + member.removeRole(ranks[i].id); + } +} \ No newline at end of file