feat: guest invites (#1290)

Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com>
This commit is contained in:
Danial Raza
2025-08-20 18:27:49 +02:00
committed by GitHub
parent b05df17466
commit 1a37ae3eea
16 changed files with 128 additions and 52 deletions

10
deno/gateway/v10.ts generated
View File

@@ -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<APIGuildMemberJoined>,
extends APIGuildMemberJoined,
APIBaseGuildMember,
Partial<APIBaseVoiceGuildMember>,
Partial<APIFlaggedGuildMember>,
@@ -1620,7 +1620,7 @@ export interface APIGuildMemberNoUser
extends APIBaseGuildMember,
APIFlaggedGuildMember,
APIGuildMemberAvatar,
APIGuildMemberJoined,
NonNullable<APIGuildMemberJoined>,
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}

10
deno/gateway/v9.ts generated
View File

@@ -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<APIGuildMemberJoined>,
extends APIGuildMemberJoined,
APIBaseGuildMember,
Partial<APIBaseVoiceGuildMember>,
Partial<APIFlaggedGuildMember>,
@@ -1619,7 +1619,7 @@ export interface APIGuildMemberNoUser
extends APIBaseGuildMember,
APIFlaggedGuildMember,
APIGuildMemberAvatar,
APIGuildMemberJoined,
NonNullable<APIGuildMemberJoined>,
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}

View File

@@ -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;
}
/**

View File

@@ -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,
}
/**

View File

@@ -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
*/

View File

@@ -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;
}
/**

View File

@@ -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,
}
/**

View File

@@ -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
*/

View File

@@ -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<APIGuildMemberJoined>,
extends APIGuildMemberJoined,
APIBaseGuildMember,
Partial<APIBaseVoiceGuildMember>,
Partial<APIFlaggedGuildMember>,
@@ -1620,7 +1620,7 @@ export interface APIGuildMemberNoUser
extends APIBaseGuildMember,
APIFlaggedGuildMember,
APIGuildMemberAvatar,
APIGuildMemberJoined,
NonNullable<APIGuildMemberJoined>,
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}

View File

@@ -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<APIGuildMemberJoined>,
extends APIGuildMemberJoined,
APIBaseGuildMember,
Partial<APIBaseVoiceGuildMember>,
Partial<APIFlaggedGuildMember>,
@@ -1619,7 +1619,7 @@ export interface APIGuildMemberNoUser
extends APIBaseGuildMember,
APIFlaggedGuildMember,
APIGuildMemberAvatar,
APIGuildMemberJoined,
NonNullable<APIGuildMemberJoined>,
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}

View File

@@ -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;
}
/**

View File

@@ -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,
}
/**

View File

@@ -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
*/

View File

@@ -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;
}
/**

View File

@@ -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,
}
/**

View File

@@ -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
*/