mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-16 19:43:29 +01:00
support new guild member role endpoints for cleaner role updates (#901)
* support new roles endpoints * use promise chaining * properties man * Update RESTMethods.js * Update RESTMethods.js * Update RESTMethods.js * Update RESTMethods.js
This commit is contained in:
committed by
Schuyler Cebulskie
parent
8b7ef0c850
commit
638e51a18c
@@ -328,6 +328,23 @@ class RESTMethods {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
addMemberRole(member, role) {
|
||||||
|
return this.rest.makeRequest('put', Constants.Endpoints.guildMemberRole(member.guild.id, member.id, role.id))
|
||||||
|
.then(() => {
|
||||||
|
if (!member._roles.includes(role.id)) member._roles.push(role.id);
|
||||||
|
return member;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
removeMemberRole(member, role) {
|
||||||
|
return this.rest.makeRequest('delete', Constants.Endpoints.guildMemberRole(member.guild.id, member.id, role.id))
|
||||||
|
.then(() => {
|
||||||
|
const index = member._roles.indexOf(role.id);
|
||||||
|
if (index >= 0) member._roles.splice(index, 1);
|
||||||
|
return member;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
sendTyping(channelID) {
|
sendTyping(channelID) {
|
||||||
return this.rest.makeRequest('post', `${Constants.Endpoints.channel(channelID)}/typing`, true);
|
return this.rest.makeRequest('post', `${Constants.Endpoints.channel(channelID)}/typing`, true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -314,7 +314,8 @@ class GuildMember {
|
|||||||
* @returns {Promise<GuildMember>}
|
* @returns {Promise<GuildMember>}
|
||||||
*/
|
*/
|
||||||
addRole(role) {
|
addRole(role) {
|
||||||
return this.addRoles([role]);
|
if (!(role instanceof Role)) role = this.guild.roles.get(role);
|
||||||
|
return this.client.rest.methods.addMemberRole(this, role);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -339,7 +340,8 @@ class GuildMember {
|
|||||||
* @returns {Promise<GuildMember>}
|
* @returns {Promise<GuildMember>}
|
||||||
*/
|
*/
|
||||||
removeRole(role) {
|
removeRole(role) {
|
||||||
return this.removeRoles([role]);
|
if (!(role instanceof Role)) role = this.guild.roles.get(role);
|
||||||
|
return this.client.rest.methods.removeMemberRole(this, role);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -106,6 +106,7 @@ const Endpoints = exports.Endpoints = {
|
|||||||
guildIntegrations: (guildID) => `${Endpoints.guild(guildID)}/integrations`,
|
guildIntegrations: (guildID) => `${Endpoints.guild(guildID)}/integrations`,
|
||||||
guildMembers: (guildID) => `${Endpoints.guild(guildID)}/members`,
|
guildMembers: (guildID) => `${Endpoints.guild(guildID)}/members`,
|
||||||
guildMember: (guildID, memberID) => `${Endpoints.guildMembers(guildID)}/${memberID}`,
|
guildMember: (guildID, memberID) => `${Endpoints.guildMembers(guildID)}/${memberID}`,
|
||||||
|
guildMemberRole: (guildID, memberID, roleID) => `${Endpoints.guildMember(guildID, memberID)}/roles/${roleID}}`,
|
||||||
stupidInconsistentGuildEndpoint: (guildID) => `${Endpoints.guildMember(guildID, '@me')}/nick`,
|
stupidInconsistentGuildEndpoint: (guildID) => `${Endpoints.guildMember(guildID, '@me')}/nick`,
|
||||||
guildChannels: (guildID) => `${Endpoints.guild(guildID)}/channels`,
|
guildChannels: (guildID) => `${Endpoints.guild(guildID)}/channels`,
|
||||||
guildEmojis: (guildID) => `${Endpoints.guild(guildID)}/emojis`,
|
guildEmojis: (guildID) => `${Endpoints.guild(guildID)}/emojis`,
|
||||||
|
|||||||
Reference in New Issue
Block a user