From af53d09c3c7c4658f7e926d224acc9a85f1d33fb Mon Sep 17 00:00:00 2001 From: Conatum Date: Mon, 4 Sep 2023 13:25:12 +0300 Subject: [PATCH] fix (voice): Filter sessions on init. --- src/tracking/voice/cog.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/tracking/voice/cog.py b/src/tracking/voice/cog.py index 95dce435..c742e872 100644 --- a/src/tracking/voice/cog.py +++ b/src/tracking/voice/cog.py @@ -99,8 +99,16 @@ class VoiceTrackerCog(LionCog): voice_members = {} # (guildid, userid) -> TrackedVoiceState voice_guilds = set() for guild in self.bot.guilds: + untracked = self.untracked_channels.get(guild.id, ()) for channel in guild.voice_channels: + if channel.id in untracked: + continue + if channel.category_id and channel.category_id in untracked: + continue + for member in channel.members: + if member.bot: + continue voice_members[(guild.id, member.id)] = TrackedVoiceState.from_voice_state(member.voice) voice_guilds.add(guild.id) @@ -299,7 +307,8 @@ class VoiceTrackerCog(LionCog): # Fetch tracked member session state session = self.get_session(member.guild.id, member.id) tstate = session.state - untracked = self.untracked_channels.get(member.guild.id, []) + # This usually pulls from cache, but don't rely on it + untracked = (await self.settings.UntrackedChannels.get(member.guild.id)).data if (bstate.channelid != astate.channelid): # Leaving/Moving/Joining channels