diff --git a/src/structures/Guild.js b/src/structures/Guild.js index 7213c6b2ee79..945976bad0b5 100644 --- a/src/structures/Guild.js +++ b/src/structures/Guild.js @@ -27,6 +27,7 @@ const { NSFWLevels, Status, MFALevels, + PremiumTiers, } = require('../util/Constants'); const DataResolver = require('../util/DataResolver'); const SystemChannelFlags = require('../util/SystemChannelFlags'); @@ -217,19 +218,10 @@ class Guild extends BaseGuild { this.systemChannelID = data.system_channel_id; /** - * The type of premium tier: - * * 0: NONE - * * 1: TIER_1 - * * 2: TIER_2 - * * 3: TIER_3 - * @typedef {number} PremiumTier - */ - - /** - * The premium tier on this guild + * The premium tier of this guild * @type {PremiumTier} */ - this.premiumTier = data.premium_tier; + this.premiumTier = PremiumTiers[data.premium_tier]; if (typeof data.premium_subscription_count !== 'undefined') { /** diff --git a/src/util/Constants.js b/src/util/Constants.js index a75ef8616d96..dd59133201e1 100644 --- a/src/util/Constants.js +++ b/src/util/Constants.js @@ -865,6 +865,16 @@ exports.NSFWLevels = createEnum(['DEFAULT', 'EXPLICIT', 'SAFE', 'AGE_RESTRICTED' */ exports.PrivacyLevels = createEnum([null, 'PUBLIC', 'GUILD_ONLY']); +/** + * The premium tier (Server Boost level) of a guild: + * * NONE + * * TIER_1 + * * TIER_2 + * * TIER_3 + * @typedef {string} PremiumTier + */ +exports.PremiumTiers = createEnum(['NONE', 'TIER_1', 'TIER_2', 'TIER_3']); + function keyMirror(arr) { let tmp = Object.create(null); for (const value of arr) tmp[value] = value; diff --git a/typings/index.d.ts b/typings/index.d.ts index bbbc613c5a5c..8c7a27b4a615 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -95,6 +95,13 @@ declare enum OverwriteTypes { member = 1, } +declare enum PremiumTiers { + NONE = 0, + TIER_1 = 1, + TIER_2 = 2, + TIER_3 = 3, +} + declare enum PrivacyLevels { PUBLIC = 1, GUILD_ONLY = 2, @@ -717,6 +724,7 @@ declare module 'discord.js' { NSFWLevels: typeof NSFWLevels; PrivacyLevels: typeof PrivacyLevels; WebhookTypes: typeof WebhookTypes; + PremiumTiers: typeof PremiumTiers; }; export class DataResolver { @@ -3605,7 +3613,7 @@ declare module 'discord.js' { type RecursiveReadonlyArray = ReadonlyArray>; - type PremiumTier = 0 | 1 | 2 | 3; + type PremiumTier = keyof typeof PremiumTiers; interface PresenceData { status?: PresenceStatusData;