diff options
Diffstat (limited to 'src/services')
| -rw-r--r-- | src/services/player.ts | 16 |
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 { |
