diff --git a/deno/gateway/v10.ts b/deno/gateway/v10.ts index 636f0983..3aeea0a9 100644 --- a/deno/gateway/v10.ts +++ b/deno/gateway/v10.ts @@ -26,7 +26,6 @@ import type { GatewayPresenceUpdate, GatewayThreadListSync, GatewayThreadMembersUpdate as RawGatewayThreadMembersUpdate, - APIVoiceState, InviteTargetType, PresenceUpdateStatus, AutoModerationRuleTriggerType, @@ -47,6 +46,7 @@ import type { APIGuildMemberUser, GatewayGuildMembersChunkPresence, APIBaseMessage, + APIVoiceStateMember, } from '../payloads/v10/mod.ts'; import type { ReactionType } from '../rest/v10/mod.ts'; import type { _Nullable } from '../utils/internals.ts'; @@ -879,7 +879,7 @@ export interface GatewayGuildCreateDispatchData extends APIGuild { * * @see {@link https://discord.com/developers/docs/resources/voice#voice-state-object} */ - voice_states: APIBaseVoiceState[]; + voice_states: GatewayVoiceStateUpdateDispatchData[]; /** * Users in the guild * @@ -1134,7 +1134,7 @@ export type GatewayGuildMemberUpdateDispatch = _DataPayload< * @see {@link https://discord.com/developers/docs/topics/gateway-events#guild-member-update} */ export interface GatewayGuildMemberUpdateDispatchData - extends _Nullable, + extends APIGuildMemberJoined, APIBaseGuildMember, Partial, Partial, @@ -1620,7 +1620,7 @@ export interface APIGuildMemberNoUser extends APIBaseGuildMember, APIFlaggedGuildMember, APIGuildMemberAvatar, - APIGuildMemberJoined, + NonNullable, APIBaseVoiceGuildMember {} export interface APIUserWithMember extends APIUser { @@ -2098,7 +2098,7 @@ export type GatewayVoiceStateUpdateDispatch = _DataPayload< /** * @see {@link https://discord.com/developers/docs/topics/gateway-events#voice-state-update} */ -export type GatewayVoiceStateUpdateDispatchData = APIVoiceState; +export interface GatewayVoiceStateUpdateDispatchData extends APIBaseVoiceState, APIVoiceStateMember {} /** * @see {@link https://discord.com/developers/docs/topics/gateway-events#voice-server-update} diff --git a/deno/gateway/v9.ts b/deno/gateway/v9.ts index a2c117e8..55d4da58 100644 --- a/deno/gateway/v9.ts +++ b/deno/gateway/v9.ts @@ -26,7 +26,6 @@ import type { GatewayPresenceUpdate, GatewayThreadListSync, GatewayThreadMembersUpdate as RawGatewayThreadMembersUpdate, - APIVoiceState, InviteTargetType, PresenceUpdateStatus, AutoModerationRuleTriggerType, @@ -47,6 +46,7 @@ import type { GatewayGuildMembersChunkPresence, APIBaseMessage, APIGuildMemberJoined, + APIVoiceStateMember, } from '../payloads/v9/mod.ts'; import type { ReactionType } from '../rest/v9/mod.ts'; import type { _Nullable } from '../utils/internals.ts'; @@ -878,7 +878,7 @@ export interface GatewayGuildCreateDispatchData extends APIGuild { * * @see {@link https://discord.com/developers/docs/resources/voice#voice-state-object} */ - voice_states: APIBaseVoiceState[]; + voice_states: GatewayVoiceStateUpdateDispatchData[]; /** * Users in the guild * @@ -1133,7 +1133,7 @@ export type GatewayGuildMemberUpdateDispatch = _DataPayload< * @see {@link https://discord.com/developers/docs/topics/gateway-events#guild-member-update} */ export interface GatewayGuildMemberUpdateDispatchData - extends _Nullable, + extends APIGuildMemberJoined, APIBaseGuildMember, Partial, Partial, @@ -1619,7 +1619,7 @@ export interface APIGuildMemberNoUser extends APIBaseGuildMember, APIFlaggedGuildMember, APIGuildMemberAvatar, - APIGuildMemberJoined, + NonNullable, APIBaseVoiceGuildMember {} export interface APIUserWithMember extends APIUser { @@ -2097,7 +2097,7 @@ export type GatewayVoiceStateUpdateDispatch = _DataPayload< /** * @see {@link https://discord.com/developers/docs/topics/gateway-events#voice-state-update} */ -export type GatewayVoiceStateUpdateDispatchData = APIVoiceState; +export interface GatewayVoiceStateUpdateDispatchData extends APIBaseVoiceState, APIVoiceStateMember {} /** * @see {@link https://discord.com/developers/docs/topics/gateway-events#voice-server-update} diff --git a/deno/payloads/v10/guild.ts b/deno/payloads/v10/guild.ts index 2b47431f..0745b6d5 100644 --- a/deno/payloads/v10/guild.ts +++ b/deno/payloads/v10/guild.ts @@ -573,6 +573,10 @@ export enum GuildFeature { * Guild is able to set gradient colors to roles */ EnhancedRoleColors = 'ENHANCED_ROLE_COLORS', + /** + * Guild has access to guest invites + */ + GuestsEnabled = 'GUESTS_ENABLED', } /** @@ -706,7 +710,7 @@ export interface APIGuildMemberJoined { /** * When the user joined the guild */ - joined_at: string; + joined_at: string | null; } /** diff --git a/deno/payloads/v10/invite.ts b/deno/payloads/v10/invite.ts index 50855204..74d640cd 100644 --- a/deno/payloads/v10/invite.ts +++ b/deno/payloads/v10/invite.ts @@ -95,6 +95,17 @@ export interface APIInvite { * The invite type */ type: InviteType; + /** + * The flags of the invite + */ + flags?: InviteFlags; +} + +/** + * @see {@link https://discord.com/developers/docs/resources/invite#invite-object-guild-invite-flags} + */ +export enum InviteFlags { + IsGuestInvite = 1 << 0, } /** diff --git a/deno/payloads/v10/voice.ts b/deno/payloads/v10/voice.ts index e08133d9..0df86adf 100644 --- a/deno/payloads/v10/voice.ts +++ b/deno/payloads/v10/voice.ts @@ -23,12 +23,6 @@ export interface APIBaseVoiceState { * The user id this voice state is for */ user_id: Snowflake; - /** - * The guild member this voice state is for - * - * @see {@link https://discord.com/developers/docs/resources/guild#guild-member-object} - */ - member?: APIGuildMember; /** * The session id for this voice state */ @@ -67,10 +61,20 @@ export interface APIBaseVoiceState { request_to_speak_timestamp: string | null; } +export interface APIVoiceStateMember { + /** + * The guild member this voice state is for + * + * @remarks The member field will have `joined_at` set to `null` if the member was invited as a guest. + * @see {@link https://discord.com/developers/docs/resources/guild#guild-member-object} + */ + member?: APIGuildMember; +} + /** * @see {@link https://discord.com/developers/docs/resources/voice#voice-state-object} */ -export interface APIVoiceState extends APIBaseVoiceState { +export interface APIVoiceState extends APIBaseVoiceState, APIVoiceStateMember { /** * The guild id this voice state is for */ diff --git a/deno/payloads/v9/guild.ts b/deno/payloads/v9/guild.ts index bb55806f..86f0172b 100644 --- a/deno/payloads/v9/guild.ts +++ b/deno/payloads/v9/guild.ts @@ -565,6 +565,10 @@ export enum GuildFeature { * Guild is able to set gradient colors to roles */ EnhancedRoleColors = 'ENHANCED_ROLE_COLORS', + /** + * Guild has access to guest invites + */ + GuestsEnabled = 'GUESTS_ENABLED', } /** @@ -698,7 +702,7 @@ export interface APIGuildMemberJoined { /** * When the user joined the guild */ - joined_at: string; + joined_at: string | null; } /** diff --git a/deno/payloads/v9/invite.ts b/deno/payloads/v9/invite.ts index 50855204..74d640cd 100644 --- a/deno/payloads/v9/invite.ts +++ b/deno/payloads/v9/invite.ts @@ -95,6 +95,17 @@ export interface APIInvite { * The invite type */ type: InviteType; + /** + * The flags of the invite + */ + flags?: InviteFlags; +} + +/** + * @see {@link https://discord.com/developers/docs/resources/invite#invite-object-guild-invite-flags} + */ +export enum InviteFlags { + IsGuestInvite = 1 << 0, } /** diff --git a/deno/payloads/v9/voice.ts b/deno/payloads/v9/voice.ts index 00682b5e..4e756a55 100644 --- a/deno/payloads/v9/voice.ts +++ b/deno/payloads/v9/voice.ts @@ -20,12 +20,6 @@ export interface APIBaseVoiceState { * The user id this voice state is for */ user_id: Snowflake; - /** - * The guild member this voice state is for - * - * @see {@link https://discord.com/developers/docs/resources/guild#guild-member-object} - */ - member?: APIGuildMember; /** * The session id for this voice state */ @@ -64,10 +58,20 @@ export interface APIBaseVoiceState { request_to_speak_timestamp: string | null; } +export interface APIVoiceStateMember { + /** + * The guild member this voice state is for + * + * @remarks The member field will have `joined_at` set to `null` if the member was invited as a guest. + * @see {@link https://discord.com/developers/docs/resources/guild#guild-member-object} + */ + member?: APIGuildMember; +} + /** * @see {@link https://discord.com/developers/docs/resources/voice#voice-state-object} */ -export interface APIVoiceState extends APIBaseVoiceState { +export interface APIVoiceState extends APIBaseVoiceState, APIVoiceStateMember { /** * The guild id this voice state is for */ diff --git a/gateway/v10.ts b/gateway/v10.ts index 8c1d2caf..16657e68 100644 --- a/gateway/v10.ts +++ b/gateway/v10.ts @@ -26,7 +26,6 @@ import type { GatewayPresenceUpdate, GatewayThreadListSync, GatewayThreadMembersUpdate as RawGatewayThreadMembersUpdate, - APIVoiceState, InviteTargetType, PresenceUpdateStatus, AutoModerationRuleTriggerType, @@ -47,6 +46,7 @@ import type { APIGuildMemberUser, GatewayGuildMembersChunkPresence, APIBaseMessage, + APIVoiceStateMember, } from '../payloads/v10/index'; import type { ReactionType } from '../rest/v10/index'; import type { _Nullable } from '../utils/internals'; @@ -879,7 +879,7 @@ export interface GatewayGuildCreateDispatchData extends APIGuild { * * @see {@link https://discord.com/developers/docs/resources/voice#voice-state-object} */ - voice_states: APIBaseVoiceState[]; + voice_states: GatewayVoiceStateUpdateDispatchData[]; /** * Users in the guild * @@ -1134,7 +1134,7 @@ export type GatewayGuildMemberUpdateDispatch = _DataPayload< * @see {@link https://discord.com/developers/docs/topics/gateway-events#guild-member-update} */ export interface GatewayGuildMemberUpdateDispatchData - extends _Nullable, + extends APIGuildMemberJoined, APIBaseGuildMember, Partial, Partial, @@ -1620,7 +1620,7 @@ export interface APIGuildMemberNoUser extends APIBaseGuildMember, APIFlaggedGuildMember, APIGuildMemberAvatar, - APIGuildMemberJoined, + NonNullable, APIBaseVoiceGuildMember {} export interface APIUserWithMember extends APIUser { @@ -2098,7 +2098,7 @@ export type GatewayVoiceStateUpdateDispatch = _DataPayload< /** * @see {@link https://discord.com/developers/docs/topics/gateway-events#voice-state-update} */ -export type GatewayVoiceStateUpdateDispatchData = APIVoiceState; +export interface GatewayVoiceStateUpdateDispatchData extends APIBaseVoiceState, APIVoiceStateMember {} /** * @see {@link https://discord.com/developers/docs/topics/gateway-events#voice-server-update} diff --git a/gateway/v9.ts b/gateway/v9.ts index 3c79b1e3..db5b7dd8 100644 --- a/gateway/v9.ts +++ b/gateway/v9.ts @@ -26,7 +26,6 @@ import type { GatewayPresenceUpdate, GatewayThreadListSync, GatewayThreadMembersUpdate as RawGatewayThreadMembersUpdate, - APIVoiceState, InviteTargetType, PresenceUpdateStatus, AutoModerationRuleTriggerType, @@ -47,6 +46,7 @@ import type { GatewayGuildMembersChunkPresence, APIBaseMessage, APIGuildMemberJoined, + APIVoiceStateMember, } from '../payloads/v9/index'; import type { ReactionType } from '../rest/v9/index'; import type { _Nullable } from '../utils/internals'; @@ -878,7 +878,7 @@ export interface GatewayGuildCreateDispatchData extends APIGuild { * * @see {@link https://discord.com/developers/docs/resources/voice#voice-state-object} */ - voice_states: APIBaseVoiceState[]; + voice_states: GatewayVoiceStateUpdateDispatchData[]; /** * Users in the guild * @@ -1133,7 +1133,7 @@ export type GatewayGuildMemberUpdateDispatch = _DataPayload< * @see {@link https://discord.com/developers/docs/topics/gateway-events#guild-member-update} */ export interface GatewayGuildMemberUpdateDispatchData - extends _Nullable, + extends APIGuildMemberJoined, APIBaseGuildMember, Partial, Partial, @@ -1619,7 +1619,7 @@ export interface APIGuildMemberNoUser extends APIBaseGuildMember, APIFlaggedGuildMember, APIGuildMemberAvatar, - APIGuildMemberJoined, + NonNullable, APIBaseVoiceGuildMember {} export interface APIUserWithMember extends APIUser { @@ -2097,7 +2097,7 @@ export type GatewayVoiceStateUpdateDispatch = _DataPayload< /** * @see {@link https://discord.com/developers/docs/topics/gateway-events#voice-state-update} */ -export type GatewayVoiceStateUpdateDispatchData = APIVoiceState; +export interface GatewayVoiceStateUpdateDispatchData extends APIBaseVoiceState, APIVoiceStateMember {} /** * @see {@link https://discord.com/developers/docs/topics/gateway-events#voice-server-update} diff --git a/payloads/v10/guild.ts b/payloads/v10/guild.ts index d4a39402..949e6617 100644 --- a/payloads/v10/guild.ts +++ b/payloads/v10/guild.ts @@ -573,6 +573,10 @@ export enum GuildFeature { * Guild is able to set gradient colors to roles */ EnhancedRoleColors = 'ENHANCED_ROLE_COLORS', + /** + * Guild has access to guest invites + */ + GuestsEnabled = 'GUESTS_ENABLED', } /** @@ -706,7 +710,7 @@ export interface APIGuildMemberJoined { /** * When the user joined the guild */ - joined_at: string; + joined_at: string | null; } /** diff --git a/payloads/v10/invite.ts b/payloads/v10/invite.ts index 1e9256fa..6812b30b 100644 --- a/payloads/v10/invite.ts +++ b/payloads/v10/invite.ts @@ -95,6 +95,17 @@ export interface APIInvite { * The invite type */ type: InviteType; + /** + * The flags of the invite + */ + flags?: InviteFlags; +} + +/** + * @see {@link https://discord.com/developers/docs/resources/invite#invite-object-guild-invite-flags} + */ +export enum InviteFlags { + IsGuestInvite = 1 << 0, } /** diff --git a/payloads/v10/voice.ts b/payloads/v10/voice.ts index 3ab6193d..e4032733 100644 --- a/payloads/v10/voice.ts +++ b/payloads/v10/voice.ts @@ -23,12 +23,6 @@ export interface APIBaseVoiceState { * The user id this voice state is for */ user_id: Snowflake; - /** - * The guild member this voice state is for - * - * @see {@link https://discord.com/developers/docs/resources/guild#guild-member-object} - */ - member?: APIGuildMember; /** * The session id for this voice state */ @@ -67,10 +61,20 @@ export interface APIBaseVoiceState { request_to_speak_timestamp: string | null; } +export interface APIVoiceStateMember { + /** + * The guild member this voice state is for + * + * @remarks The member field will have `joined_at` set to `null` if the member was invited as a guest. + * @see {@link https://discord.com/developers/docs/resources/guild#guild-member-object} + */ + member?: APIGuildMember; +} + /** * @see {@link https://discord.com/developers/docs/resources/voice#voice-state-object} */ -export interface APIVoiceState extends APIBaseVoiceState { +export interface APIVoiceState extends APIBaseVoiceState, APIVoiceStateMember { /** * The guild id this voice state is for */ diff --git a/payloads/v9/guild.ts b/payloads/v9/guild.ts index e122dba9..f2b53ff4 100644 --- a/payloads/v9/guild.ts +++ b/payloads/v9/guild.ts @@ -565,6 +565,10 @@ export enum GuildFeature { * Guild is able to set gradient colors to roles */ EnhancedRoleColors = 'ENHANCED_ROLE_COLORS', + /** + * Guild has access to guest invites + */ + GuestsEnabled = 'GUESTS_ENABLED', } /** @@ -698,7 +702,7 @@ export interface APIGuildMemberJoined { /** * When the user joined the guild */ - joined_at: string; + joined_at: string | null; } /** diff --git a/payloads/v9/invite.ts b/payloads/v9/invite.ts index 1e9256fa..6812b30b 100644 --- a/payloads/v9/invite.ts +++ b/payloads/v9/invite.ts @@ -95,6 +95,17 @@ export interface APIInvite { * The invite type */ type: InviteType; + /** + * The flags of the invite + */ + flags?: InviteFlags; +} + +/** + * @see {@link https://discord.com/developers/docs/resources/invite#invite-object-guild-invite-flags} + */ +export enum InviteFlags { + IsGuestInvite = 1 << 0, } /** diff --git a/payloads/v9/voice.ts b/payloads/v9/voice.ts index 56ebdaae..9a77700d 100644 --- a/payloads/v9/voice.ts +++ b/payloads/v9/voice.ts @@ -20,12 +20,6 @@ export interface APIBaseVoiceState { * The user id this voice state is for */ user_id: Snowflake; - /** - * The guild member this voice state is for - * - * @see {@link https://discord.com/developers/docs/resources/guild#guild-member-object} - */ - member?: APIGuildMember; /** * The session id for this voice state */ @@ -64,10 +58,20 @@ export interface APIBaseVoiceState { request_to_speak_timestamp: string | null; } +export interface APIVoiceStateMember { + /** + * The guild member this voice state is for + * + * @remarks The member field will have `joined_at` set to `null` if the member was invited as a guest. + * @see {@link https://discord.com/developers/docs/resources/guild#guild-member-object} + */ + member?: APIGuildMember; +} + /** * @see {@link https://discord.com/developers/docs/resources/voice#voice-state-object} */ -export interface APIVoiceState extends APIBaseVoiceState { +export interface APIVoiceState extends APIBaseVoiceState, APIVoiceStateMember { /** * The guild id this voice state is for */