From 319e816e2a84b482767a829a5527188b0f06111e Mon Sep 17 00:00:00 2001 From: ITOH Date: Sat, 5 Jun 2021 18:22:10 +0200 Subject: [PATCH] add: lurkerVoiceStateUpdate event --- src/handlers/voice/VOICE_STATE_UPDATE.ts | 2 ++ src/types/discordeno/event_handlers.ts | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/handlers/voice/VOICE_STATE_UPDATE.ts b/src/handlers/voice/VOICE_STATE_UPDATE.ts index 8e2f3b514..31c91ccaa 100644 --- a/src/handlers/voice/VOICE_STATE_UPDATE.ts +++ b/src/handlers/voice/VOICE_STATE_UPDATE.ts @@ -17,6 +17,8 @@ export async function handleVoiceStateUpdate(data: DiscordGatewayPayload) { : await cacheHandlers.get("members", snowflakeToBigint(payload.userId)); if (!member) return; + if (!payload.member?.joinedAt) return eventHandlers.lurkerVoiceStateUpdate?.(member, payload); + // No cached state before so lets make one for em const cachedState = guild.voiceStates.get(snowflakeToBigint(payload.userId)); diff --git a/src/types/discordeno/event_handlers.ts b/src/types/discordeno/event_handlers.ts index 60d59545c..e9120f016 100644 --- a/src/types/discordeno/event_handlers.ts +++ b/src/types/discordeno/event_handlers.ts @@ -86,6 +86,8 @@ export type EventHandlersDefinitions = { interactionGuildCreate: [data: Omit, member: DiscordenoMember]; /** Sent when a user uses a Slash Command in a dm (type 2) or clicks a button (type 3). */ interactionDMCreate: [data: Omit]; + /** Sent when a lurker joins/leaves/moves stage channels. */ + lurkerVoiceStateUpdate: [member: DiscordenoMember, voiceState: VoiceState]; /** Sent when a message is created. */ messageCreate: [message: DiscordenoMessage]; /** Sent when a message is deleted. */