Skip to content

Commit c85f18c

Browse files
WhatCatsalmeidx
andauthored
feat: optimize role manager cache getter (#11239)
Co-authored-by: Almeida <github@almeidx.dev>
1 parent 9723cc5 commit c85f18c

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

packages/discord.js/src/managers/GuildEmojiRoleManager.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,15 @@ class GuildEmojiRoleManager extends DataManager {
3535
* @readonly
3636
*/
3737
get cache() {
38-
return this.guild.roles.cache.filter(role => this.emoji._roles.includes(role.id));
38+
const cache = new Collection();
39+
for (const roleId of this.emoji._roles) {
40+
const role = this.guild.roles.cache.get(roleId);
41+
if (role !== undefined) {
42+
cache.set(roleId, role);
43+
}
44+
}
45+
46+
return cache;
3947
}
4048

4149
/**

packages/discord.js/src/managers/GuildMemberRoleManager.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,17 @@ class GuildMemberRoleManager extends DataManager {
3737
* @readonly
3838
*/
3939
get cache() {
40-
const everyone = this.guild.roles.everyone;
41-
return this.guild.roles.cache.filter(role => this.member._roles.includes(role.id)).set(everyone.id, everyone);
40+
const cache = new Collection();
41+
cache.set(this.guild.id, this.guild.roles.everyone);
42+
43+
for (const roleId of this.member._roles) {
44+
const role = this.guild.roles.cache.get(roleId);
45+
if (role !== undefined) {
46+
cache.set(roleId, role);
47+
}
48+
}
49+
50+
return cache;
4251
}
4352

4453
/**

0 commit comments

Comments
 (0)