feat: add utility flags to member object (#53)

This commit is contained in:
Jan
2022-05-07 19:40:10 +02:00
committed by GitHub
parent bed039f357
commit fcd09890e4
+30
View File
@@ -39,6 +39,27 @@ export class Member {
return this.client.servers.get(this._id.server);
}
/**
* Whether the client has a higher rank than this member.
*/
get inferior() {
return (this.server?.member?.ranking ?? Infinity) < this.ranking;
}
/**
* Whether the client can kick this user.
*/
get kickable() {
return this.server?.havePermission('KickMembers') && this.inferior;
}
/**
* Whether the client can ban this user.
*/
get bannable() {
return this.server?.havePermission('BanMembers') && this.inferior;
}
constructor(client: Client, data: MemberI) {
this.client = client;
this._id = data._id;
@@ -183,6 +204,15 @@ export class Member {
...permission.map((x) => Permission[x]),
);
}
/**
* Checks whether the target member has a higher rank than this member.
* @param target The member to compare against
* @returns Whether this member is inferior to the target
*/
@computed inferiorTo(target: Member) {
return target.ranking < this.ranking;
}
}
export default class Members extends Collection<string, Member> {