diff --git a/src/client/websocket/packets/handlers/VoiceStateUpdate.js b/src/client/websocket/packets/handlers/VoiceStateUpdate.js index 57d1cf8b8..d6cc08aee 100644 --- a/src/client/websocket/packets/handlers/VoiceStateUpdate.js +++ b/src/client/websocket/packets/handlers/VoiceStateUpdate.js @@ -26,8 +26,10 @@ class VoiceStateUpdateHandler extends AbstractHandler { } // Emit event - if (member) { - if (member.user.id === client.user.id && data.channel_id) client.emit('self.voiceStateUpdate', data); + if (member && member.user.id === client.user.id && data.channel_id) { + client.emit('self.voiceStateUpdate', data); + } + if (oldState || newState) { client.emit(Events.VOICE_STATE_UPDATE, oldState, newState); } } @@ -37,8 +39,8 @@ class VoiceStateUpdateHandler extends AbstractHandler { /** * Emitted whenever a member changes voice state - e.g. joins/leaves a channel, mutes/unmutes. * @event Client#voiceStateUpdate - * @param {VoiceState} oldState The voice state before the update - * @param {VoiceState} newState The voice state after the update + * @param {?VoiceState} oldState The voice state before the update + * @param {?VoiceState} newState The voice state after the update */ module.exports = VoiceStateUpdateHandler; diff --git a/typings/index.d.ts b/typings/index.d.ts index f431c3d19..23e015062 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -195,7 +195,7 @@ declare module 'discord.js' { public on(event: 'roleUpdate', listener: (oldRole: Role, newRole: Role) => void): this; public on(event: 'typingStart' | 'typingStop', listener: (channel: Channel, user: User) => void): this; public on(event: 'userUpdate', listener: (oldUser: User, newUser: User) => void): this; - public on(event: 'voiceStateUpdate', listener: (oldState: VoiceState, newState: VoiceState) => void): this; + public on(event: 'voiceStateUpdate', listener: (oldState?: VoiceState, newState?: VoiceState) => void): this; public on(event: 'webhookUpdate', listener: (channel: TextChannel) => void): this; public on(event: string, listener: Function): this; @@ -227,7 +227,7 @@ declare module 'discord.js' { public once(event: 'roleUpdate', listener: (oldRole: Role, newRole: Role) => void): this; public once(event: 'typingStart' | 'typingStop', listener: (channel: Channel, user: User) => void): this; public once(event: 'userUpdate', listener: (oldUser: User, newUser: User) => void): this; - public once(event: 'voiceStateUpdate', listener: (oldState: VoiceState, newState: VoiceState) => void): this; + public once(event: 'voiceStateUpdate', listener: (oldState?: VoiceState, newState?: VoiceState) => void): this; public once(event: 'webhookUpdate', listener: (channel: TextChannel) => void): this; public once(event: string, listener: Function): this; }