diff --git a/src/classes/Channel.ts b/src/classes/Channel.ts index db83df5e..00805a62 100644 --- a/src/classes/Channel.ts +++ b/src/classes/Channel.ts @@ -798,6 +798,13 @@ export class Channel { ); } + /** + * Get slowmode value for the channel + */ + get slowmode(): number { + return this.#collection.getUnderlyingObject(this.id).slowmode ?? 0; + } + /** * Join a call * @param node Target node diff --git a/src/hydration/channel.ts b/src/hydration/channel.ts index 9013fefe..d835afb8 100644 --- a/src/hydration/channel.ts +++ b/src/hydration/channel.ts @@ -29,6 +29,7 @@ export type HydratedChannel = { defaultPermissions?: { a: bigint; d: bigint }; rolePermissions?: Record; nsfw: boolean; + slowmode: number; lastMessageId?: string; @@ -46,6 +47,7 @@ export const channelHydration: Hydrate, HydratedChannel> = { default_permissions: "defaultPermissions", role_permissions: "rolePermissions", last_message_id: "lastMessageId", + slowmode: "slowmode", }, functions: { id: (channel) => channel._id, @@ -76,6 +78,7 @@ export const channelHydration: Hydrate, HydratedChannel> = { ), nsfw: (channel) => channel.nsfw || false, lastMessageId: (channel) => channel.last_message_id!, + slowmode: (channel) => channel.slowmode ?? 0, voice: (channel) => !!channel.voice || channel.channel_type === "DirectMessage" || diff --git a/src/permissions/definitions.ts b/src/permissions/definitions.ts index 4ecf373d..c3853d44 100644 --- a/src/permissions/definitions.ts +++ b/src/permissions/definitions.ts @@ -67,6 +67,8 @@ export const Permission = { Masquerade: 2n ** 28n, /// React to messages with emoji React: 2n ** 29n, + /// Bypass slowmode + BypassSlowmode: 2n ** 39n, // * Voice permissions /// Connect to a voice channel