mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-18 04:23:31 +01:00
Add GuildMember.highestRole/kickable/bannable
This commit is contained in:
@@ -114,6 +114,14 @@ class GuildMember {
|
|||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The role of the member with the highest position.
|
||||||
|
* @type {Role}
|
||||||
|
*/
|
||||||
|
get highestRole() {
|
||||||
|
return this.roles.reduce((prev, role) => !prev || role.position > prev.position ? role : prev);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether this member is muted in any way
|
* Whether this member is muted in any way
|
||||||
* @type {boolean}
|
* @type {boolean}
|
||||||
@@ -167,6 +175,30 @@ class GuildMember {
|
|||||||
return new EvaluatedPermissions(this, permissions);
|
return new EvaluatedPermissions(this, permissions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether the member is kickable by the client user.
|
||||||
|
* @type {boolean}
|
||||||
|
*/
|
||||||
|
get kickable() {
|
||||||
|
if (this.id === this.guild.ownerID) return false;
|
||||||
|
if (this.id === this.client.user.id) return false;
|
||||||
|
const clientMember = this.member(this.client.member);
|
||||||
|
if (!clientMember.hasPermission(Constants.PermissionFlags.KICK_MEMBERS)) return false;
|
||||||
|
return clientMember.highestRole.position > this.highestRole.positon;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether the member is bannable by the client user.
|
||||||
|
* @type {boolean}
|
||||||
|
*/
|
||||||
|
get bannable() {
|
||||||
|
if (this.id === this.guild.ownerID) return false;
|
||||||
|
if (this.id === this.client.user.id) return false;
|
||||||
|
const clientMember = this.member(this.client.member);
|
||||||
|
if (!clientMember.hasPermission(Constants.PermissionFlags.BAN_MEMBERS)) return false;
|
||||||
|
return clientMember.highestRole.position > this.highestRole.positon;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns `channel.permissionsFor(guildMember)`. Returns evaluated permissions for a member in a guild channel.
|
* Returns `channel.permissionsFor(guildMember)`. Returns evaluated permissions for a member in a guild channel.
|
||||||
* @param {ChannelResolvable} channel Guild channel to use as context
|
* @param {ChannelResolvable} channel Guild channel to use as context
|
||||||
|
|||||||
Reference in New Issue
Block a user