Add guild member nickname setting n stuff

This commit is contained in:
Amish Shah
2016-08-27 18:55:03 +01:00
parent 8a1bfe559d
commit 6293f28ad9
6 changed files with 100 additions and 4 deletions

View File

@@ -100,9 +100,18 @@ class Guild {
_updateMember(member, data) {
const oldMember = cloneObject(member);
member._roles = data.roles;
member.nickname = data.nick;
if (this.client.ws.status === Constants.Status.READY) {
if (data.roles) {
member._roles = data.roles;
} else {
member.nickname = data.nick;
}
const notSame = (
member.nickname !== oldMember.nickname &&
!arraysEqual(member._roles, oldMember._roles)
);
if (this.client.ws.status === Constants.Status.READY && notSame) {
/**
* Emitted whenever a Guild Member changes - i.e. new role, removed role, nickname
*
@@ -113,6 +122,10 @@ class Guild {
*/
this.client.emit(Constants.Events.GUILD_MEMBER_UPDATE, this, oldMember, member);
}
return {
old: oldMember,
mem: member,
};
}
_removeMember(guildMember) {

View File

@@ -132,6 +132,60 @@ class GuildMember {
return this.user.id;
}
/**
* Mute/unmute a user
* @param {Boolean} mute whether or not the member should be muted
* @returns {Promise<GuildMember, Error>}
*/
setMute(mute) {
return this.edit({ mute });
}
/**
* Deafen/undeafen a user
* @param {Boolean} deaf whether or not the member should be deafened
* @returns {Promise<GuildMember, Error>}
*/
setDeaf(deaf) {
return this.edit({ deaf });
}
/**
* Moves the Guild Member to the given channel.
* @param {ChannelResolvable} channel the channel to move the member to
* @returns {Promise<GuildMember, Error>}
*/
setVoiceChannel(channel) {
return this.edit({ channel });
}
/**
* Sets the Roles applied to the member.
* @param {Collection<String, Role>|Array<Role>} roles the roles to apply
* @returns {Promise<GuildMember, Error>}
*/
setRoles(roles) {
return this.edit({ roles });
}
/**
* Set the nickname for the Guild Member
* @param {String} nick the nickname for the Guild Member
* @returns {Promise<GuildMember, Error>}
*/
setNickname(nick) {
return this.edit({ nick });
}
/**
* Edit a Guild Member
* @param {GuildmemberEditData} data the data to edit the member with
* @returns {Promise<GuildMember, Error>}
*/
edit(data) {
return this.client.rest.methods.updateGuildMember(this, data);
}
/**
* Deletes any DM's with this Guild Member
* @returns {Promise<DMChannel>}