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
This commit is contained in:
ITOH
2022-03-27 17:01:20 +02:00
committed by GitHub
parent 468a85ffa5
commit 23ebfac286
+8
View File
@@ -8,6 +8,8 @@ export const RoleToggle = {
managed: 1 << 1, managed: 1 << 1,
/** Whether this role is mentionable */ /** Whether this role is mentionable */
mentionable: 1 << 2, mentionable: 1 << 2,
/** Whether this is the guilds premium subscriber role */
premiumSubscriber: 1 << 3,
}; };
export class RoleToggles extends ToggleBitfield { export class RoleToggles extends ToggleBitfield {
@@ -17,6 +19,7 @@ export class RoleToggles extends ToggleBitfield {
if (role.hoist) this.add(RoleToggle.hoist); if (role.hoist) this.add(RoleToggle.hoist);
if (role.managed) this.add(RoleToggle.managed); if (role.managed) this.add(RoleToggle.managed);
if (role.mentionable) this.add(RoleToggle.mentionable); 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 */ /** If this role is showed seperately in the user listing */
@@ -34,6 +37,11 @@ export class RoleToggles extends ToggleBitfield {
return this.has("mentionable"); 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 */ /** Checks whether or not the permissions exist in this */
has(permissions: RoleToggleKeys | RoleToggleKeys[]) { has(permissions: RoleToggleKeys | RoleToggleKeys[]) {
if (!Array.isArray(permissions)) return super.contains(RoleToggle[permissions]); if (!Array.isArray(permissions)) return super.contains(RoleToggle[permissions]);