Client.addMemberToRoles is now functional and prevents duplicate roles

This commit is contained in:
Chris Talman
2016-01-12 14:52:37 -08:00
committed by abalabahaha
parent 8a8ba51c2b
commit 51a8feb562

View File

@@ -658,7 +658,21 @@ export default class InternalClient {
var roleIDS = roles[0].server.memberMap[member.id].roles.map(r => r.id);
if(roles.any(role => !role.server.memberMap[member.id])) {
var currentMemberRoles = roles[0].server.memberMap[member.id].roles;
for (var i = 0; i < roles.length; i++) {
var alreadyHasRole = currentMemberRoles.some(function(currentValue) {
if (currentValue.id === roles[i].id) {
return true;
};
});
if (!alreadyHasRole) {
roleIDS.push(roles[i].id);
};
};
if (roles.some(function(role) {
return !role.server.memberMap[member.id];
})) {
return Promise.reject(new Error("Role does not exist on same server as member"));
}