Merge pull request #789 from LOLBRUHNICE/master

fix: connection destroy error
This commit is contained in:
Andromeda 2021-09-25 21:02:28 +05:45 committed by GitHub
commit 9f82db0dc6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -74,13 +74,21 @@ class StreamDispatcher extends EventEmitter<VoiceEvents> {
try { try {
await entersState(this.voiceConnection, VoiceConnectionStatus.Connecting, this.connectionTimeout); await entersState(this.voiceConnection, VoiceConnectionStatus.Connecting, this.connectionTimeout);
} catch { } catch {
try {
this.voiceConnection.destroy(); this.voiceConnection.destroy();
} catch (err) {
this.emit("error", err as AudioPlayerError);
}
} }
} else if (this.voiceConnection.rejoinAttempts < 5) { } else if (this.voiceConnection.rejoinAttempts < 5) {
await Util.wait((this.voiceConnection.rejoinAttempts + 1) * 5000); await Util.wait((this.voiceConnection.rejoinAttempts + 1) * 5000);
this.voiceConnection.rejoin(); this.voiceConnection.rejoin();
} else { } else {
try {
this.voiceConnection.destroy(); this.voiceConnection.destroy();
} catch (err) {
this.emit("error", err as AudioPlayerError);
}
} }
} else if (newState.status === VoiceConnectionStatus.Destroyed) { } else if (newState.status === VoiceConnectionStatus.Destroyed) {
this.end(); this.end();
@ -89,7 +97,13 @@ class StreamDispatcher extends EventEmitter<VoiceEvents> {
try { try {
await entersState(this.voiceConnection, VoiceConnectionStatus.Ready, this.connectionTimeout); await entersState(this.voiceConnection, VoiceConnectionStatus.Ready, this.connectionTimeout);
} catch { } catch {
if (this.voiceConnection.state.status !== VoiceConnectionStatus.Destroyed) this.voiceConnection.destroy(); if (this.voiceConnection.state.status !== VoiceConnectionStatus.Destroyed) {
try {
this.voiceConnection.destroy();
} catch (err) {
this.emit("error", err as AudioPlayerError);
}
}
} finally { } finally {
this.readyLock = false; this.readyLock = false;
} }