From 7f3b47d36357a82ec54463864153c3926b1617ef Mon Sep 17 00:00:00 2001 From: Rory& Date: Sun, 8 Mar 2026 16:41:30 +0100 Subject: [PATCH] Migrate GuildMember*Event to satisfies, part of #1577 --- src/util/entities/Member.ts | 54 +++++++++++++++++++----------------- src/util/interfaces/Event.ts | 4 +-- 2 files changed, 30 insertions(+), 28 deletions(-) diff --git a/src/util/entities/Member.ts b/src/util/entities/Member.ts index 25f80a02c..57dfbcac1 100644 --- a/src/util/entities/Member.ts +++ b/src/util/entities/Member.ts @@ -209,7 +209,7 @@ export class Member extends BaseClassWithoutId { event: "GUILD_MEMBER_REMOVE", data: { guild_id, user: member.user.toPublicUser() }, guild_id, - } as GuildMemberRemoveEvent), + } satisfies GuildMemberRemoveEvent), ]); } @@ -364,48 +364,50 @@ export class Member extends BaseClassWithoutId { bio: "", }; + const newMember = Member.create({ + ...member, + roles: [Role.create({ id: guild_id })], + // read_state: {}, + settings: { + guild_id: null, + mute_config: null, + mute_scheduled_events: false, + flags: 0, + hide_muted_channels: false, + notify_highlights: 0, + channel_overrides: {}, + message_notifications: guild.default_message_notifications, + mobile_push: true, + muted: false, + suppress_everyone: false, + suppress_roles: false, + version: 0, + }, + // Member.save is needed because else the roles relations wouldn't be updated + }); + await Promise.all([ - Member.create({ - ...member, - roles: [Role.create({ id: guild_id })], - // read_state: {}, - settings: { - guild_id: null, - mute_config: null, - mute_scheduled_events: false, - flags: 0, - hide_muted_channels: false, - notify_highlights: 0, - channel_overrides: {}, - message_notifications: guild.default_message_notifications, - mobile_push: true, - muted: false, - suppress_everyone: false, - suppress_roles: false, - version: 0, - }, - // Member.save is needed because else the roles relations wouldn't be updated - }).save(), + newMember.save(), Guild.increment({ id: guild_id }, "member_count", 1), emitEvent({ event: "GUILD_MEMBER_ADD", data: { - ...member, + ...newMember.toPublicMember(), user: user, guild_id, }, guild_id, origin: "util/entities/Member.ts:377/addToGuild(user_id, guild_id)", - } as GuildMemberAddEvent), + } satisfies GuildMemberAddEvent), emitEvent({ event: "GUILD_CREATE", data: { ...new ReadyGuildDTO(guild).toJSON(), - members: [...memberPreview, { ...member, user }], + members: [...memberPreview, { ...newMember.toPublicMember(), user }], member_count: memberCount + 1, guild_hashes: {}, guild_scheduled_events: [], - joined_at: member.joined_at, + joined_at: newMember.joined_at, presences: [], stage_instances: [], threads: [], diff --git a/src/util/interfaces/Event.ts b/src/util/interfaces/Event.ts index a105c70d4..4763e65ec 100644 --- a/src/util/interfaces/Event.ts +++ b/src/util/interfaces/Event.ts @@ -280,7 +280,7 @@ export interface GuildMemberRemoveEvent extends Event { event: "GUILD_MEMBER_REMOVE"; data: { guild_id: string; - user: User; + user: PublicUser; }; } @@ -289,7 +289,7 @@ export interface GuildMemberUpdateEvent extends Event { data: { guild_id: string; roles: string[]; - user: User; + user: PublicUser; nick?: string; joined_at?: Date; premium_since?: number;