diff --git a/src/structures/StageInstance.js b/src/structures/StageInstance.js index 040d1e04df66..10fb85ebd314 100644 --- a/src/structures/StageInstance.js +++ b/src/structures/StageInstance.js @@ -72,6 +72,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.channels.resolve(this.channelId); } + /** + * The associated guild scheduled event of this stage instance + * @type {?GuildScheduledEvent} + * @readonly + */ + get guildScheduledEvent() { + return this.guild?.scheduledEvents.resolve(this.guildScheduledEventId) ?? null; + } + /** * Whether or not the stage instance has been deleted * @type {boolean} diff --git a/typings/index.d.ts b/typings/index.d.ts index 160133970fe1..45d31db79dfb 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -2246,8 +2246,10 @@ export class StageInstance extends Base { public topic: string; public privacyLevel: PrivacyLevel; public discoverableDisabled: boolean | null; + public guildScheduledEventId?: Snowflake; public readonly channel: StageChannel | null; public readonly guild: Guild | null; + public get guildScheduledEvent(): GuildScheduledEvent | null; public edit(options: StageInstanceEditOptions): Promise; public delete(): Promise; public setTopic(topic: string): Promise;