aboutsummaryrefslogtreecommitdiff
path: root/src/services
diff options
context:
space:
mode:
Diffstat (limited to 'src/services')
-rw-r--r--src/services/player.ts16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/services/player.ts b/src/services/player.ts
index 78f72b2..0b57ad7 100644
--- a/src/services/player.ts
+++ b/src/services/player.ts
@@ -84,6 +84,22 @@ export default class {
guildId: channel.guild.id,
adapterCreator: channel.guild.voiceAdapterCreator as DiscordGatewayAdapterCreator,
});
+
+ // Workaround to disable keepAlive
+ this.voiceConnection.on('stateChange', (oldState, newState) => {
+ /* eslint-disable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call */
+ const oldNetworking = Reflect.get(oldState, 'networking');
+ const newNetworking = Reflect.get(newState, 'networking');
+
+ const networkStateChangeHandler = (_: any, newNetworkState: any) => {
+ const newUdp = Reflect.get(newNetworkState, 'udp');
+ clearInterval(newUdp?.keepAliveInterval);
+ };
+
+ oldNetworking?.off('stateChange', networkStateChangeHandler);
+ newNetworking?.on('stateChange', networkStateChangeHandler);
+ /* eslint-enable @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call */
+ });
}
disconnect(): void {