diff --git a/src/client/voice/networking/VoiceWebSocket.js b/src/client/voice/networking/VoiceWebSocket.js index 1e08dedf9..be187761b 100644 --- a/src/client/voice/networking/VoiceWebSocket.js +++ b/src/client/voice/networking/VoiceWebSocket.js @@ -184,7 +184,10 @@ class VoiceWebSocket extends EventEmitter { case VoiceOPCodes.CLIENT_DISCONNECT: for (const receiver of this.connection.receivers) { const streamInfo = receiver.packets.streams.get(packet.d.user_id); - if (streamInfo) streamInfo.stream.push(null); + if (streamInfo) { + receiver.packets.streams.delete(packet.d.user_id); + streamInfo.stream.push(null); + } } break; case VoiceOPCodes.SPEAKING: diff --git a/src/client/voice/receiver/PacketHandler.js b/src/client/voice/receiver/PacketHandler.js index 03b5b6f69..bcc151f38 100644 --- a/src/client/voice/receiver/PacketHandler.js +++ b/src/client/voice/receiver/PacketHandler.js @@ -17,7 +17,10 @@ class PacketHandler extends EventEmitter { _stoppedSpeaking(userID) { const streamInfo = this.streams.get(userID); - if (streamInfo && streamInfo.end === 'silence') streamInfo.stream.push(null); + if (streamInfo && streamInfo.end === 'silence') { + this.streams.delete(userID); + streamInfo.stream.push(null); + } } makeStream(user, end) {