diff --git a/packages/biscuit/structures/guilds.ts b/packages/biscuit/structures/guilds.ts index f02e22b..0499e7d 100644 --- a/packages/biscuit/structures/guilds.ts +++ b/packages/biscuit/structures/guilds.ts @@ -18,7 +18,7 @@ import type { VideoQualityModes, } from "../../discordeno/mod.ts"; import type { ImageFormat, ImageSize } from "../Util.ts"; -import { GuildFeatures } from "../../discordeno/mod.ts"; +import { GuildFeatures, PremiumTiers } from "../../discordeno/mod.ts"; import { Snowflake } from "../Snowflake.ts"; import Util from "../Util.ts"; import * as Routes from "../Routes.ts"; @@ -320,6 +320,7 @@ export class Guild extends BaseGuild implements Model { this.vefificationLevel = data.verification_level; this.defaultMessageNotificationLevel = data.default_message_notifications; this.explicitContentFilterLevel = data.explicit_content_filter; + this.premiumTier = data.premium_tier this.members = new Map( data.members?.map((member) => [data.id, new Member(session, { ...member, user: member.user! }, data.id)]), @@ -346,11 +347,44 @@ export class Guild extends BaseGuild implements Model { vefificationLevel: VerificationLevels; defaultMessageNotificationLevel: DefaultMessageNotificationLevels; explicitContentFilterLevel: ExplicitContentFilterLevels; + premiumTier: PremiumTiers; members: Map; roles: Map; emojis: Map; channels: Map; + /** + * Returns the maximum number of emoji slots + */ + get maxEmojis(): 50 | 100 | 150 | 250 { + switch (this.premiumTier) { + case 1: + return 100; + case 2: + return 150; + case 3: + return 250; + default: + return 50; + } + } + + /** + * Returns the maximum number of custom sticker slots + */ + get maxStickers(): 5 | 15 | 30 | 60 { + switch (this.premiumTier) { + case 1: + return 15; + case 2: + return 30; + case 3: + return 60; + default: + return 5; + } + } + /** * 'null' would reset the nickname */