From 03c4b603843dbb32df31b5aea7e57e9cbf760805 Mon Sep 17 00:00:00 2001 From: MarkusRost <37275477+Markus-Rost@users.noreply.github.com> Date: Thu, 7 Oct 2021 18:28:12 +0200 Subject: [PATCH] GuildMemberRoleManager: add role that sets the role icon/emoji (#6768) Co-authored-by: Almeida --- src/managers/GuildMemberRoleManager.js | 11 +++++++++++ typings/index.d.ts | 1 + 2 files changed, 12 insertions(+) diff --git a/src/managers/GuildMemberRoleManager.js b/src/managers/GuildMemberRoleManager.js index f5dd801da..08b78f909 100644 --- a/src/managers/GuildMemberRoleManager.js +++ b/src/managers/GuildMemberRoleManager.js @@ -47,6 +47,17 @@ class GuildMemberRoleManager extends DataManager { return hoistedRoles.reduce((prev, role) => (!prev || role.comparePositionTo(prev) > 0 ? role : prev)); } + /** + * The role of the member used to set their role icon + * @type {?Role} + * @readonly + */ + get icon() { + const iconRoles = this.cache.filter(role => role.icon || role.unicodeEmoji); + if (!iconRoles.size) return null; + return iconRoles.reduce((prev, role) => (role.comparePositionTo(prev) > 0 ? role : prev)); + } + /** * The role of the member used to set their color * @type {?Role} diff --git a/typings/index.d.ts b/typings/index.d.ts index 5f2674177..3bd0b3dfc 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -2751,6 +2751,7 @@ export class GuildStickerManager extends CachedManager { private constructor(member: GuildMember); public readonly hoist: Role | null; + public readonly icon: Role | null; public readonly color: Role | null; public readonly highest: Role; public readonly premiumSubscriberRole: Role | null;