From 52685e38c885d27e1e74d791de1227e317ed4fd0 Mon Sep 17 00:00:00 2001 From: Kyriog Date: Fri, 24 Aug 2018 14:50:49 +0200 Subject: [PATCH] Fixes #100: Remove old entry from voice_states if user device changes --- disco/state.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/disco/state.py b/disco/state.py index e110c72..73d7bd5 100644 --- a/disco/state.py +++ b/disco/state.py @@ -248,7 +248,17 @@ class State(object): # New connection elif event.state.channel_id: if event.state.guild_id in self.guilds: + current_voice_states = list(self.guilds[event.state.guild_id].voice_states.values()) + for voice_state in current_voice_states: + if voice_state.user_id == event.user_id: + del self.guilds[event.state.guild_id].voice_states[voice_state.session_id] + break self.guilds[event.state.guild_id].voice_states[event.state.session_id] = event.state + current_voice_states = list(self.voice_states.values()) + for voice_state in current_voice_states: + if voice_state.user_id == event.user_id: + del self.voice_states[voice_state.session_id] + break self.voice_states[event.state.session_id] = event.state def on_guild_member_add(self, event):