diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2022-01-20 01:52:48 -0500 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2022-01-20 01:52:48 -0500 |
commit | d7f3ee9f983458bdaf504c5813adc93bed1404e4 (patch) | |
tree | d383059c98988a87b3ae032ce206b5f354c8e02d /src/discord/discord.cpp | |
parent | 2328c8bafee708fc33dcd004562a270183ebcf30 (diff) | |
download | abaddon-portaudio-d7f3ee9f983458bdaf504c5813adc93bed1404e4.tar.gz abaddon-portaudio-d7f3ee9f983458bdaf504c5813adc93bed1404e4.zip |
handle mute/unmute updates for threads
Diffstat (limited to 'src/discord/discord.cpp')
-rw-r--r-- | src/discord/discord.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/discord/discord.cpp b/src/discord/discord.cpp index e123818..ab821a8 100644 --- a/src/discord/discord.cpp +++ b/src/discord/discord.cpp @@ -1921,9 +1921,24 @@ void DiscordClient::HandleGatewayThreadMembersUpdate(const GatewayMessage &msg) void DiscordClient::HandleGatewayThreadMemberUpdate(const GatewayMessage &msg) { ThreadMemberUpdateData data = msg.Data; + if (!data.Member.ThreadID.has_value()) return; + m_joined_threads.insert(*data.Member.ThreadID); if (*data.Member.UserID == GetUserData().ID) m_signal_added_to_thread.emit(*data.Member.ThreadID); + + if (data.Member.IsMuted.has_value()) { + const bool was_muted = IsChannelMuted(*data.Member.ThreadID); + const bool now_muted = *data.Member.IsMuted; + + if (was_muted && !now_muted) { + m_muted_channels.erase(*data.Member.ThreadID); + m_signal_channel_unmuted.emit(*data.Member.ThreadID); + } else if (!was_muted && now_muted) { + m_muted_channels.insert(*data.Member.ThreadID); + m_signal_channel_muted.emit(*data.Member.ThreadID); + } + } } void DiscordClient::HandleGatewayThreadUpdate(const GatewayMessage &msg) { |