From 552d89fd4e536745bb51ade13cf500e94b871b9f Mon Sep 17 00:00:00 2001 From: Rodry <38259440+ImRodry@users.noreply.github.com> Date: Wed, 1 Dec 2021 11:40:49 +0000 Subject: [PATCH] feat(Guild): add premiumProgressbarEnabled (#6887) Co-authored-by: Vlad Frangu --- src/structures/Guild.js | 20 ++++++++++++++++++++ typings/index.d.ts | 3 +++ 2 files changed, 23 insertions(+) diff --git a/src/structures/Guild.js b/src/structures/Guild.js index 7ee47e5767fe..d9c789bc4510 100644 --- a/src/structures/Guild.js +++ b/src/structures/Guild.js @@ -170,6 +170,14 @@ class Guild extends AnonymousGuild { this.large = Boolean(data.large); } + if ('premium_progress_bar_enabled' in data) { + /** + * Whether this guild has its premium (boost) progress bar enabled + * @type {boolean} + */ + this.premiumProgressBarEnabled = data.premium_progress_bar_enabled; + } + /** * An array of enabled guild features, here are the possible values: * * ANIMATED_ICON @@ -787,6 +795,7 @@ class Guild extends AnonymousGuild { * @property {TextChannelResolvable} [rulesChannel] The rules channel of the guild * @property {TextChannelResolvable} [publicUpdatesChannel] The community updates channel of the guild * @property {string} [preferredLocale] The preferred locale of the guild + * @property {boolean} [premiumProgressBarEnabled] Whether the guild's premium progress bar is enabled * @property {string} [description] The discovery description of the guild * @property {Features[]} [features] The features of the guild */ @@ -869,6 +878,7 @@ class Guild extends AnonymousGuild { _data.description = data.description; } if (data.preferredLocale) _data.preferred_locale = data.preferredLocale; + if ('premiumProgressBarEnabled' in data) _data.premium_progress_bar_enabled = data.premiumProgressBarEnabled; const newData = await this.client.api.guilds(this.id).patch({ data: _data, reason }); return this.client.actions.GuildUpdate.handle(newData).updated; } @@ -1170,6 +1180,16 @@ class Guild extends AnonymousGuild { return this.edit({ preferredLocale }, reason); } + /** + * Edits the enabled state of the guild's premium progress bar + * @param {boolean} [enabled=true] The new enabled state of the guild's premium progress bar + * @param {string} [reason] Reason for changing the state of the guild's premium progress bar + * @returns {Promise} + */ + setPremiumProgressBarEnabled(enabled = true, reason) { + return this.edit({ premiumProgressBarEnabled: enabled }, reason); + } + /** * Data that can be resolved to give a Category Channel object. This can be: * * A CategoryChannel object diff --git a/typings/index.d.ts b/typings/index.d.ts index 22cd6bfb5c01..e1fa6d9065ba 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -862,6 +862,7 @@ export class Guild extends AnonymousGuild { public ownerId: Snowflake; public preferredLocale: string; public premiumSubscriptionCount: number | null; + public premiumProgressBarEnabled: boolean; public premiumTier: PremiumTier; public presences: PresenceManager; public readonly publicUpdatesChannel: TextChannel | null; @@ -929,6 +930,7 @@ export class Guild extends AnonymousGuild { public setSystemChannel(systemChannel: TextChannelResolvable | null, reason?: string): Promise; public setSystemChannelFlags(systemChannelFlags: SystemChannelFlagsResolvable, reason?: string): Promise; public setVerificationLevel(verificationLevel: VerificationLevel | number, reason?: string): Promise; + public setPremiumProgressBarEnabled(enabled?: boolean, reason?: string): Promise; public setWidgetSettings(settings: GuildWidgetSettingsData, reason?: string): Promise; public toJSON(): unknown; } @@ -4312,6 +4314,7 @@ export interface GuildEditData { rulesChannel?: TextChannelResolvable; publicUpdatesChannel?: TextChannelResolvable; preferredLocale?: string; + premiumProgressBarEnabled?: boolean; description?: string | null; features?: GuildFeatures[]; }