mirror of
https://github.com/danbulant/discord.js
synced 2026-07-07 20:20:55 +00:00
Attempted add/remove from roles
This commit is contained in:
parent
d2147304c8
commit
de19475ae0
2 changed files with 87 additions and 1 deletions
|
|
@ -301,6 +301,28 @@ export default class Client extends EventEmitter {
|
||||||
return this.removeMemberFromRole(member, role, callback);
|
return this.removeMemberFromRole(member, role, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//def addMemberToRole
|
||||||
|
addMemberToRoles(member, roles, callback = (/*err*/) => {}) {
|
||||||
|
return this.internal.addMemberToRoles(member, roles)
|
||||||
|
.then(callback, errCB(callback));
|
||||||
|
}
|
||||||
|
|
||||||
|
// def addUserToRole
|
||||||
|
addUserToRoles(member, roles, callback = (/*err*/) => {}) {
|
||||||
|
return this.addMemberToRoles(member, roles, callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
// def removeMemberFromRole
|
||||||
|
removeMemberFromRoles(member, roles, callback = (/*err*/) => {}) {
|
||||||
|
return this.internal.removeMemberFromRoles(member, roles)
|
||||||
|
.then(callback, errCB(callback));
|
||||||
|
}
|
||||||
|
|
||||||
|
// def removeUserFromRole
|
||||||
|
removeUserFromRoles(member, roles, callback = (/*err*/) => {}) {
|
||||||
|
return this.removeMemberFromRoles(member, roles, callback);
|
||||||
|
}
|
||||||
|
|
||||||
// def createInvite
|
// def createInvite
|
||||||
createInvite(chanServ, options, callback = (/*err, invite*/) => {}) {
|
createInvite(chanServ, options, callback = (/*err, invite*/) => {}) {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -588,6 +588,36 @@ export default class InternalClient {
|
||||||
.end();
|
.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//def addMemberToRole
|
||||||
|
addMemberToRoles(member, roles) {
|
||||||
|
member = this.resolver.resolveUser(member);
|
||||||
|
|
||||||
|
if (!member) {
|
||||||
|
return Promise.reject(new Error("member not in server"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Array.isArray(roles) || roles.length === 0) {
|
||||||
|
return Promise.reject(new Error("invalid array of roles"));
|
||||||
|
}
|
||||||
|
|
||||||
|
var roleIDS = roles[0].server.memberMap[member.id].roles.map(r => r.id);
|
||||||
|
|
||||||
|
for(var role of roles) {
|
||||||
|
if (!role.server.memberMap[member.id]) {
|
||||||
|
return Promise.reject(new Error("member not in server"));
|
||||||
|
}
|
||||||
|
roleIDS.concat(role.id);
|
||||||
|
}
|
||||||
|
|
||||||
|
return request
|
||||||
|
.patch(Endpoints.SERVER_MEMBERS(role.server.id) + "/" + member.id)
|
||||||
|
.set("authorization", this.token)
|
||||||
|
.send({
|
||||||
|
roles: roleIDS
|
||||||
|
})
|
||||||
|
.end();
|
||||||
|
}
|
||||||
|
|
||||||
//def removeMemberFromRole
|
//def removeMemberFromRole
|
||||||
removeMemberFromRole(member, role) {
|
removeMemberFromRole(member, role) {
|
||||||
member = this.resolver.resolveUser(member);
|
member = this.resolver.resolveUser(member);
|
||||||
|
|
@ -605,7 +635,7 @@ export default class InternalClient {
|
||||||
for (var item in roleIDS) {
|
for (var item in roleIDS) {
|
||||||
if (roleIDS[item] === role.id) {
|
if (roleIDS[item] === role.id) {
|
||||||
roleIDS.splice(item, 1);
|
roleIDS.splice(item, 1);
|
||||||
//missing break?
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -616,7 +646,41 @@ export default class InternalClient {
|
||||||
roles: roleIDS
|
roles: roleIDS
|
||||||
})
|
})
|
||||||
.end();
|
.end();
|
||||||
|
}
|
||||||
|
|
||||||
|
//def removeMemberFromRoles
|
||||||
|
removeMemberFromRoles(member, roles) {
|
||||||
|
member = this.resolver.resolveUser(member);
|
||||||
|
|
||||||
|
if (!member) {
|
||||||
|
return Promise.reject(new Error("member not in server"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Array.isArray(roles) || roles.length === 0) {
|
||||||
|
return Promise.reject(new Error("invalid array of roles"));
|
||||||
|
}
|
||||||
|
|
||||||
|
var roleIDS = roles[0].server.memberMap[member.id].roles.map(r => r.id);
|
||||||
|
|
||||||
|
for(var role of roles) {
|
||||||
|
if (!role.server.memberMap[member.id]) {
|
||||||
|
return Promise.reject(new Error("member not in server"));
|
||||||
|
}
|
||||||
|
for (var item in roleIDS) {
|
||||||
|
if (roleIDS[item] === role.id) {
|
||||||
|
roleIDS.splice(item, 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return request
|
||||||
|
.patch(Endpoints.SERVER_MEMBERS(role.server.id) + "/" + member.id)
|
||||||
|
.set("authorization", this.token)
|
||||||
|
.send({
|
||||||
|
roles: roleIDS
|
||||||
|
})
|
||||||
|
.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
// def createInvite
|
// def createInvite
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue