mirror of
https://github.com/danbulant/discord.js
synced 2026-06-08 17:21:31 +00:00
refactor(GuildMember#manageable): refactored kickable and bannable (#2211)
* refactor(GuildMember#manageable): merged kickable and bannable code * hydar suggestion
This commit is contained in:
parent
4122db0275
commit
36555c1cea
1 changed files with 13 additions and 10 deletions
|
|
@ -259,17 +259,24 @@ class GuildMember extends Base {
|
||||||
return new Permissions(this.roles.map(role => role.permissions)).freeze();
|
return new Permissions(this.roles.map(role => role.permissions)).freeze();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether the member is manageable in terms of role hierarchy by the client user
|
||||||
|
* @type {boolean}
|
||||||
|
* @readonly
|
||||||
|
*/
|
||||||
|
get manageable() {
|
||||||
|
if (this.user.id === this.guild.ownerID) return false;
|
||||||
|
if (this.user.id === this.client.user.id) return false;
|
||||||
|
return this.guild.me.highestRole.comparePositionTo(this.highestRole) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether the member is kickable by the client user
|
* Whether the member is kickable by the client user
|
||||||
* @type {boolean}
|
* @type {boolean}
|
||||||
* @readonly
|
* @readonly
|
||||||
*/
|
*/
|
||||||
get kickable() {
|
get kickable() {
|
||||||
if (this.user.id === this.guild.ownerID) return false;
|
return this.manageable && this.guild.me.permissions.has(Permissions.FLAGS.KICK_MEMBERS);
|
||||||
if (this.user.id === this.client.user.id) return false;
|
|
||||||
const clientMember = this.guild.member(this.client.user);
|
|
||||||
if (!clientMember.permissions.has(Permissions.FLAGS.KICK_MEMBERS)) return false;
|
|
||||||
return clientMember.highestRole.comparePositionTo(this.highestRole) > 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -278,11 +285,7 @@ class GuildMember extends Base {
|
||||||
* @readonly
|
* @readonly
|
||||||
*/
|
*/
|
||||||
get bannable() {
|
get bannable() {
|
||||||
if (this.user.id === this.guild.ownerID) return false;
|
return this.manageable && this.guild.me.permissions.has(Permissions.FLAGS.BAN_MEMBERS);
|
||||||
if (this.user.id === this.client.user.id) return false;
|
|
||||||
const clientMember = this.guild.member(this.client.user);
|
|
||||||
if (!clientMember.permissions.has(Permissions.FLAGS.BAN_MEMBERS)) return false;
|
|
||||||
return clientMember.highestRole.comparePositionTo(this.highestRole) > 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue