Add automatic reconnection logic to voice connection

This commit is contained in:
jaredthomason 2024-05-11 16:39:06 -04:00
parent e74fc3fd99
commit 1b5579fdde
2 changed files with 18 additions and 1 deletions

View file

@ -62,6 +62,23 @@ function JoinChannel(channel, track, volume) {
adapterCreator: channel.guild.voiceAdapterCreator,
selfDeaf: true
});
connection.on(dVC.VoiceConnectionStatus.Disconnected, async () => {
let attemptReconnect = true;
while (attemptReconnect) {
try {
console.log("Disconnected. Attempting to reconnect...");
await Promise.race([
entersState(connection, dVC.VoiceConnectionStatus.Signalling, 5_000),
entersState(connection, dVC.VoiceConnectionStatus.Connecting, 5_000),
]);
console.log("Reconnected successfully.");
attemptReconnect = false;
} catch (error) {
console.log("Reconnection attempt failed. Retrying...");
}
}
});
const resource = dVC.createAudioResource(track, {inlineVolume: true, silencePaddingFrames: 5});
const player = dVC.createAudioPlayer();

View file

@ -1,3 +1,3 @@
{
"token": "Insert-token-here"
"token": "Insert-Token-Here"
}