From 58ae86c5c6cb3a11b9b706fb0465b6983285dc9f Mon Sep 17 00:00:00 2001 From: izzy Date: Sun, 17 May 2026 22:10:37 +0100 Subject: [PATCH] fix: pass entire role object for role icon --- src/classes/Message.ts | 4 ++-- src/classes/ServerMember.ts | 35 +++++++++++------------------------ 2 files changed, 13 insertions(+), 26 deletions(-) diff --git a/src/classes/Message.ts b/src/classes/Message.ts index f8cd20a6..cbcca254 100644 --- a/src/classes/Message.ts +++ b/src/classes/Message.ts @@ -274,8 +274,8 @@ export class Message { /** * Get the role colour for this message */ - get roleIcon(): File | null | undefined { - return this.member?.roleIcon; + get iconRole(): ServerRole | null | undefined { + return this.member?.iconRole; } /** diff --git a/src/classes/ServerMember.ts b/src/classes/ServerMember.ts index bcfd5c72..c734fd28 100644 --- a/src/classes/ServerMember.ts +++ b/src/classes/ServerMember.ts @@ -15,6 +15,7 @@ import { Permission } from "../permissions/definitions.js"; import type { Channel } from "./Channel.js"; import type { File } from "./File.js"; import type { Server } from "./Server.js"; +import { ServerRole } from "./ServerRole.js"; import type { User } from "./User.js"; /** @@ -110,32 +111,18 @@ export class ServerMember { /** * Ordered list of roles for this member, from lowest to highest priority. */ - get orderedRoles(): (Partial< - Omit & { - permissions: { a: bigint; d: bigint }; - icon?: File; - } - > & { id: string })[] { + get orderedRoles(): ServerRole[] { const server = this.server!; - return ( - this.roles - ?.map((id) => ({ - id, - ...server.roles?.get(id), - })) - .sort((a, b) => b.rank! - a.rank!) ?? [] - ); + return this.roles + ?.map((id) => server.roles.get(id)!) + .filter((role) => role) + .sort((a, b) => b.rank! - a.rank!); } /** * Member's currently hoisted role. */ - get hoistedRole(): Partial< - Omit & { - permissions: { a: bigint; d: bigint }; - icon?: File; - } - > | null { + get hoistedRole(): ServerRole | null { const roles = this.orderedRoles.filter((x) => x.hoist); if (roles.length > 0) { return roles[roles.length - 1]; @@ -157,12 +144,12 @@ export class ServerMember { } /** - * Member's current role icon. + * Member's current role icon with name. */ - get roleIcon(): File | null | undefined { - const roles = this.orderedRoles.filter((x) => x.colour); + get iconRole(): ServerRole | null | undefined { + const roles = this.orderedRoles.filter((x) => x.icon); if (roles.length > 0) { - return roles[roles.length - 1].icon; + return roles[roles.length - 1]!; } else { return null; }