refactor: remove _roles from pseudo-managers (#5721)

This commit is contained in:
Jan
2021-06-01 23:35:11 +02:00
committed by GitHub
parent 7b85a7259f
commit 53d952a4ce
2 changed files with 14 additions and 34 deletions

View File

@@ -26,23 +26,13 @@ class GuildEmojiRoleManager {
Object.defineProperty(this, 'client', { value: emoji.client });
}
/**
* The filtered collection of roles of the guild emoji
* @type {Collection<Snowflake, Role>}
* @private
* @readonly
*/
get _roles() {
return this.guild.roles.cache.filter(role => this.emoji._roles.includes(role.id));
}
/**
* The cache of roles belonging to this emoji
* @type {Collection<Snowflake, Role>}
* @readonly
*/
get cache() {
return this._roles;
return this.guild.roles.cache.filter(role => this.emoji._roles.includes(role.id));
}
/**
@@ -62,7 +52,7 @@ class GuildEmojiRoleManager {
resolvedRoles.push(resolvedRole);
}
const newRoles = [...new Set(resolvedRoles.concat(...this._roles.values()))];
const newRoles = [...new Set(resolvedRoles.concat(...this.cache.values()))];
return this.set(newRoles);
}
@@ -83,7 +73,7 @@ class GuildEmojiRoleManager {
resolvedRoleIDs.push(roleID);
}
const newRoles = this._roles.keyArray().filter(id => !resolvedRoleIDs.includes(id));
const newRoles = this.cache.keyArray().filter(id => !resolvedRoleIDs.includes(id));
return this.set(newRoles);
}
@@ -108,7 +98,7 @@ class GuildEmojiRoleManager {
clone() {
const clone = new this.constructor(this.emoji);
clone._patch(this._roles.keyArray().slice());
clone._patch(this.cache.keyArray().slice());
return clone;
}

View File

@@ -21,24 +21,14 @@ class GuildMemberRoleManager {
Object.defineProperty(this, 'client', { value: member.client });
}
/**
* The filtered collection of roles of the member
* @type {Collection<Snowflake, Role>}
* @private
* @readonly
*/
get _roles() {
const everyone = this.guild.roles.everyone;
return this.guild.roles.cache.filter(role => this.member._roles.includes(role.id)).set(everyone.id, everyone);
}
/**
* The roles of this member
* @type {Collection<Snowflake, Role>}
* @readonly
*/
get cache() {
return this._roles;
const everyone = this.guild.roles.everyone;
return this.guild.roles.cache.filter(role => this.member._roles.includes(role.id)).set(everyone.id, everyone);
}
/**
@@ -47,7 +37,7 @@ class GuildMemberRoleManager {
* @readonly
*/
get hoist() {
const hoistedRoles = this._roles.filter(role => role.hoist);
const hoistedRoles = this.cache.filter(role => role.hoist);
if (!hoistedRoles.size) return null;
return hoistedRoles.reduce((prev, role) => (!prev || role.comparePositionTo(prev) > 0 ? role : prev));
}
@@ -58,7 +48,7 @@ class GuildMemberRoleManager {
* @readonly
*/
get color() {
const coloredRoles = this._roles.filter(role => role.color);
const coloredRoles = this.cache.filter(role => role.color);
if (!coloredRoles.size) return null;
return coloredRoles.reduce((prev, role) => (!prev || role.comparePositionTo(prev) > 0 ? role : prev));
}
@@ -69,7 +59,7 @@ class GuildMemberRoleManager {
* @readonly
*/
get highest() {
return this._roles.reduce((prev, role) => (role.comparePositionTo(prev) > 0 ? role : prev), this._roles.first());
return this.cache.reduce((prev, role) => (role.comparePositionTo(prev) > 0 ? role : prev), this.cache.first());
}
/**
@@ -107,7 +97,7 @@ class GuildMemberRoleManager {
resolvedRoles.push(resolvedRole);
}
const newRoles = [...new Set(resolvedRoles.concat(...this._roles.values()))];
const newRoles = [...new Set(resolvedRoles.concat(...this.cache.values()))];
return this.set(newRoles, reason);
} else {
roleOrRoles = this.guild.roles.resolveID(roleOrRoles);
@@ -118,7 +108,7 @@ class GuildMemberRoleManager {
await this.client.api.guilds[this.guild.id].members[this.member.id].roles[roleOrRoles].put({ reason });
const clone = this.member._clone();
clone._roles = [...this._roles.keys(), roleOrRoles];
clone._roles = [...this.cache.keys(), roleOrRoles];
return clone;
}
}
@@ -138,7 +128,7 @@ class GuildMemberRoleManager {
resolvedRoles.push(resolvedRole);
}
const newRoles = this._roles.filter(role => !resolvedRoles.includes(role.id));
const newRoles = this.cache.filter(role => !resolvedRoles.includes(role.id));
return this.set(newRoles, reason);
} else {
roleOrRoles = this.guild.roles.resolveID(roleOrRoles);
@@ -149,7 +139,7 @@ class GuildMemberRoleManager {
await this.client.api.guilds[this.guild.id].members[this.member.id].roles[roleOrRoles].delete({ reason });
const clone = this.member._clone();
const newRoles = this._roles.filter(role => role.id !== roleOrRoles);
const newRoles = this.cache.filter(role => role.id !== roleOrRoles);
clone._roles = [...newRoles.keys()];
return clone;
}
@@ -177,7 +167,7 @@ class GuildMemberRoleManager {
clone() {
const clone = new this.constructor(this.member);
clone.member._roles = [...this._roles.keyArray()];
clone.member._roles = [...this.cache.keyArray()];
return clone;
}