aboutsummaryrefslogtreecommitdiff
path: root/src/events
diff options
context:
space:
mode:
authorMax Isom <[email protected]>2020-03-16 20:14:15 -0500
committerMax Isom <[email protected]>2020-03-16 20:14:15 -0500
commitac21b5657ba47ef9081c80424d5f8ae39b149f35 (patch)
tree1ba121343bb3ae33b6345afc217e2c29b92c23a9 /src/events
parent32cb3ca4ae6a419f64e413ba5c8c543593a927b1 (diff)
downloadmuse-ac21b5657ba47ef9081c80424d5f8ae39b149f35.tar.xz
muse-ac21b5657ba47ef9081c80424d5f8ae39b149f35.zip
Add auto disconnect
Diffstat (limited to 'src/events')
-rw-r--r--src/events/voice-state-update.ts17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/events/voice-state-update.ts b/src/events/voice-state-update.ts
new file mode 100644
index 0000000..c16177d
--- /dev/null
+++ b/src/events/voice-state-update.ts
@@ -0,0 +1,17 @@
+import {VoiceState} from 'discord.js';
+import container from '../inversify.config';
+import {TYPES} from '../types';
+import PlayerManager from '../managers/player';
+import {getSizeWithoutBots} from '../utils/channels';
+
+export default (oldState: VoiceState, _: VoiceState): void => {
+ const playerManager = container.get<PlayerManager>(TYPES.Managers.Player);
+
+ const player = playerManager.get(oldState.guild.id);
+
+ if (player.voiceConnection) {
+ if (getSizeWithoutBots(player.voiceConnection.channel) === 0) {
+ player.disconnect();
+ }
+ }
+};