From 3dff31f63fe4afdcc818193d737e1917f1ac8105 Mon Sep 17 00:00:00 2001 From: Suneet Tipirneni <77477100+suneettipirneni@users.noreply.github.com> Date: Thu, 10 Mar 2022 02:57:41 -0500 Subject: [PATCH] feat(StageInstance): Add support for associated guild event (#7576) --- .../src/structures/StageInstance.js | 19 +++++++++++++++++++ packages/discord.js/typings/index.d.ts | 2 ++ 2 files changed, 21 insertions(+) diff --git a/packages/discord.js/src/structures/StageInstance.js b/packages/discord.js/src/structures/StageInstance.js index 883ee5476..97f65df1d 100644 --- a/packages/discord.js/src/structures/StageInstance.js +++ b/packages/discord.js/src/structures/StageInstance.js @@ -63,6 +63,16 @@ class StageInstance extends Base { } else { this.discoverableDisabled ??= null; } + + if ('guild_scheduled_event_id' in data) { + /** + * The associated guild scheduled event id of this stage instance + * @type {?Snowflake} + */ + this.guildScheduledEventId = data.guild_scheduled_event_id; + } else { + this.guildScheduledEventId ??= null; + } } /** @@ -83,6 +93,15 @@ class StageInstance extends Base { return this.client.guilds.resolve(this.guildId); } + /** + * The associated guild scheduled event of this stage instance + * @type {?GuildScheduledEvent} + * @readonly + */ + get guildScheduledEvent() { + return this.guild?.scheduledEvents.resolve(this.guildScheduledEventId) ?? null; + } + /** * Edits this stage instance. * @param {StageInstanceEditOptions} options The options to edit the stage instance diff --git a/packages/discord.js/typings/index.d.ts b/packages/discord.js/typings/index.d.ts index 535521e97..0693b542e 100644 --- a/packages/discord.js/typings/index.d.ts +++ b/packages/discord.js/typings/index.d.ts @@ -2106,8 +2106,10 @@ export class StageInstance extends Base { public privacyLevel: StageInstancePrivacyLevel; /** @deprecated See https://github.com/discord/discord-api-docs/pull/4296 for more information */ public discoverableDisabled: boolean | null; + public guildScheduledEventId?: Snowflake; public get channel(): StageChannel | null; public get guild(): Guild | null; + public get guildScheduledEvent(): GuildScheduledEvent | null; public edit(options: StageInstanceEditOptions): Promise; public delete(): Promise; public setTopic(topic: string): Promise;