summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2022-01-20 01:52:48 -0500
committerouwou <26526779+ouwou@users.noreply.github.com>2022-01-20 01:52:48 -0500
commitd7f3ee9f983458bdaf504c5813adc93bed1404e4 (patch)
treed383059c98988a87b3ae032ce206b5f354c8e02d /src
parent2328c8bafee708fc33dcd004562a270183ebcf30 (diff)
downloadabaddon-portaudio-d7f3ee9f983458bdaf504c5813adc93bed1404e4.tar.gz
abaddon-portaudio-d7f3ee9f983458bdaf504c5813adc93bed1404e4.zip
handle mute/unmute updates for threads
Diffstat (limited to 'src')
-rw-r--r--src/discord/discord.cpp15
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) {