From 23ebfac28659d87c366554236876001b4b6d6d13 Mon Sep 17 00:00:00 2001 From: ITOH Date: Sun, 27 Mar 2022 17:01:20 +0200 Subject: [PATCH] feat(types): add `premiumSubscriber` to `RoleToggles` (#2141) In the role tags discord sends a `premium_subscriber` field. It seems that this has been forgotten to add. Reference: https://discord.com/developers/docs/topics/permissions#role-object-role-tags-structure --- transformers/toggles/role.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/transformers/toggles/role.ts b/transformers/toggles/role.ts index bd2af988e..5f0b414fa 100644 --- a/transformers/toggles/role.ts +++ b/transformers/toggles/role.ts @@ -8,6 +8,8 @@ export const RoleToggle = { managed: 1 << 1, /** Whether this role is mentionable */ mentionable: 1 << 2, + /** Whether this is the guilds premium subscriber role */ + premiumSubscriber: 1 << 3, }; export class RoleToggles extends ToggleBitfield { @@ -17,6 +19,7 @@ export class RoleToggles extends ToggleBitfield { if (role.hoist) this.add(RoleToggle.hoist); if (role.managed) this.add(RoleToggle.managed); if (role.mentionable) this.add(RoleToggle.mentionable); + if (role.tags?.premium_subscriber === null) this.add(RoleToggle.premiumSubscriber); } /** If this role is showed seperately in the user listing */ @@ -34,6 +37,11 @@ export class RoleToggles extends ToggleBitfield { return this.has("mentionable"); } + /** Whether this is the guilds premium subscriber role */ + get premiumSubscriber() { + return this.has("premiumSubscriber"); + } + /** Checks whether or not the permissions exist in this */ has(permissions: RoleToggleKeys | RoleToggleKeys[]) { if (!Array.isArray(permissions)) return super.contains(RoleToggle[permissions]);