diff --git a/packages/discord-bitflag/README.md b/packages/discord-bitflag/README.md index 188c5a3e..31f15668 100644 --- a/packages/discord-bitflag/README.md +++ b/packages/discord-bitflag/README.md @@ -39,10 +39,13 @@ The Permissions BitField class checks for the Admin permission by default when y Each bit field class extends the `BitField` class from [bitflag-js](https://www.npmjs.com/package/bitflag-js). -- [Application Flags](https://discord.com/developers/docs/resources/application#application-object-application-flags): `ApplicationFlagsBitField` and `ApplicationFlags` -- [Channel Flags](https://discord.com/developers/docs/resources/channel#channel-object-channel-flags): `ChannelFlagsBitField` and `ChannelFlags` -- [Guild Member Flags](https://discord.com/developers/docs/resources/guild#guild-member-object-guild-member-flags): `GuildMemberFlagsBitField` and `GuildMemberFlags` -- [Intent Flags](https://discord.com/developers/docs/topics/gateway#list-of-intents): `IntentFlagsBitField` and `IntentFlags` -- [Message Flags](https://discord.com/developers/docs/resources/channel#message-object-message-flags): `MessageFlagsBitField` and `MessageFlags` -- [Permission Flags](https://discord.com/developers/docs/topics/permissions#permissions-bitwise-permission-flags): `PermissionsBitField` and `PermissionFlags` -- [User Flags](https://discord.com/developers/docs/resources/user#user-object-user-flags): `UserFlagsBitField` and `UserFlags` +- [Application Flags](https://docs.discord.com/developers/resources/application#application-object-application-flags): `ApplicationFlagsBitField` and `ApplicationFlags` +- [Attachment Flags](https://docs.discord.com/developers/resources/message#attachment-object-attachment-flags): `AttachmentFlagsBitField` and `AttachmentFlags` +- [Channel Flags](https://docs.discord.com/developers/resources/channel#channel-object-channel-flags): `ChannelFlagsBitField` and `ChannelFlags` +- [Guild Member Flags](https://docs.discord.com/developers/resources/guild#guild-member-object-guild-member-flags): `GuildMemberFlagsBitField` and `GuildMemberFlags` +- [Intent Flags](https://docs.discord.com/developers/topics/gateway#list-of-intents): `IntentFlagsBitField` and `IntentFlags` +- [Message Flags](https://docs.discord.com/developers/resources/channel#message-object-message-flags): `MessageFlagsBitField` and `MessageFlags` +- [Permission Flags](https://docs.discord.com/developers/topics/permissions#permissions-bitwise-permission-flags): `PermissionsBitField` and `PermissionFlags` +- [SKU Flags](https://docs.discord.com/developers/resources/sku#sku-object-sku-flags): `SKUFlagsBitField` and `SKUFlags` +- [System Channel Flags](https://docs.discord.com/developers/resources/guild#guild-object-system-channel-flags): `SystemChannelFlagsBitField` and `SystemChannelFlags` +- [User Flags](https://docs.discord.com/developers/resources/user#user-object-user-flags): `UserFlagsBitField` and `UserFlags` diff --git a/packages/discord-bitflag/src/flags/channel.ts b/packages/discord-bitflag/src/flags/channel.ts index 64f5b21f..b78e8ccc 100644 --- a/packages/discord-bitflag/src/flags/channel.ts +++ b/packages/discord-bitflag/src/flags/channel.ts @@ -4,4 +4,6 @@ export const ChannelFlags = Object.freeze({ Pinned: 1n << 1n, RequireTag: 1n << 4n, HideMediaDownloadOptions: 1n << 15n, + ChannelObfuscated: 1n << 17n, + IsSpoilerChannel: 1n << 21n, }) satisfies BitFlags; diff --git a/packages/discord-bitflag/src/flags/guild-member.ts b/packages/discord-bitflag/src/flags/guild-member.ts index 1f49c195..71e136bb 100644 --- a/packages/discord-bitflag/src/flags/guild-member.ts +++ b/packages/discord-bitflag/src/flags/guild-member.ts @@ -5,4 +5,10 @@ export const GuildMemberFlags = Object.freeze({ CompletedOnboarding: 1n << 1n, BypassesVerification: 1n << 2n, StartedOnboarding: 1n << 3n, + IsGuest: 1n << 4n, + StartedHomeActions: 1n << 5n, + CompletedHomeActions: 1n << 6n, + AutomatedQuarantinedUsername: 1n << 7n, + DmSettingsUpsellAcknowledged: 1n << 9n, + AutomatedQuarantinedGuildTag: 1n << 10n, }) satisfies BitFlags; diff --git a/packages/discord-bitflag/src/flags/message.ts b/packages/discord-bitflag/src/flags/message.ts index 682ae281..d38705c1 100644 --- a/packages/discord-bitflag/src/flags/message.ts +++ b/packages/discord-bitflag/src/flags/message.ts @@ -12,4 +12,6 @@ export const MessageFlags = Object.freeze({ FailedToMentionSomeRolesInThread: 1n << 8n, SuppressNotifications: 1n << 12n, IsVoiceMessage: 1n << 13n, + HasSnapshot: 1n << 14n, + IsComponentsV2: 1n << 15n, }) satisfies BitFlags; diff --git a/packages/discord-bitflag/src/flags/sku.ts b/packages/discord-bitflag/src/flags/sku.ts new file mode 100644 index 00000000..0885922d --- /dev/null +++ b/packages/discord-bitflag/src/flags/sku.ts @@ -0,0 +1,7 @@ +import type { BitFlags } from "bitflag-js"; + +export const SKUFlags = Object.freeze({ + Available: 1n << 2n, + GuildSubscription: 1n << 7n, + UserSubscription: 1n << 8n, +}) satisfies BitFlags; diff --git a/packages/discord-bitflag/src/flags/system-channel.ts b/packages/discord-bitflag/src/flags/system-channel.ts new file mode 100644 index 00000000..06664e9d --- /dev/null +++ b/packages/discord-bitflag/src/flags/system-channel.ts @@ -0,0 +1,10 @@ +import type { BitFlags } from "bitflag-js"; + +export const SystemChannelFlags = Object.freeze({ + SuppressJoinNotifications: 1n << 0n, + SuppressPremiumSubscriptions: 1n << 1n, + SuppressGuildReminderNotifications: 1n << 2n, + SuppressJoinNotificationReplies: 1n << 3n, + SuppressROLE_SubscriptionPurchaseNotifications: 1n << 4n, + SuppressROLE_SubscriptionPurchaseNotificationReplies: 1n << 5n, +}) satisfies BitFlags; diff --git a/packages/discord-bitflag/src/index.ts b/packages/discord-bitflag/src/index.ts index 6d044c91..98b1aa0f 100644 --- a/packages/discord-bitflag/src/index.ts +++ b/packages/discord-bitflag/src/index.ts @@ -21,5 +21,11 @@ export { MessageFlagsBitField } from "./wrappers/messages.js"; export { PermissionFlags } from "./flags/permissions.js"; export { PermissionsBitField } from "./wrappers/permissions.js"; +export { SKUFlags } from "./flags/sku.js"; +export { SKUFlagsBitField } from "./wrappers/skus.js"; + +export { SystemChannelFlags } from "./flags/system-channel.js"; +export { SystemChannelFlagsBitField } from "./wrappers/system-channels.js"; + export { UserFlags } from "./flags/user.js"; export { UserFlagsBitField } from "./wrappers/users.js"; diff --git a/packages/discord-bitflag/src/wrappers/skus.ts b/packages/discord-bitflag/src/wrappers/skus.ts new file mode 100644 index 00000000..620ead95 --- /dev/null +++ b/packages/discord-bitflag/src/wrappers/skus.ts @@ -0,0 +1,6 @@ +import { BitField } from "bitflag-js"; +import { SKUFlags } from "../flags/sku.js"; + +export class SKUFlagsBitField extends BitField { + static ALL = BitField.resolve(Object.values(SKUFlags)); +} diff --git a/packages/discord-bitflag/src/wrappers/system-channels.ts b/packages/discord-bitflag/src/wrappers/system-channels.ts new file mode 100644 index 00000000..fb257852 --- /dev/null +++ b/packages/discord-bitflag/src/wrappers/system-channels.ts @@ -0,0 +1,6 @@ +import { BitField } from "bitflag-js"; +import { SystemChannelFlags } from "../flags/system-channel.js"; + +export class SystemChannelFlagsBitField extends BitField { + static ALL = BitField.resolve(Object.values(SystemChannelFlags)); +}