summaryrefslogtreecommitdiff
path: root/src/discord
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2021-12-16 00:58:17 -0500
committerouwou <26526779+ouwou@users.noreply.github.com>2021-12-16 00:58:17 -0500
commit1fb7ca000753d2c6a39a560126f3ba7d229af46d (patch)
tree8a7fe60438c2f58b2461a4f001fbae975e9f7f11 /src/discord
parenta5332efcfb411bb8ed04d569e20f77996eb1aa6c (diff)
downloadabaddon-portaudio-1fb7ca000753d2c6a39a560126f3ba7d229af46d.tar.gz
abaddon-portaudio-1fb7ca000753d2c6a39a560126f3ba7d229af46d.zip
hide unread indicator for muted channels
Diffstat (limited to 'src/discord')
-rw-r--r--src/discord/discord.cpp8
-rw-r--r--src/discord/discord.hpp2
2 files changed, 10 insertions, 0 deletions
diff --git a/src/discord/discord.cpp b/src/discord/discord.cpp
index af25b3a..b54064a 100644
--- a/src/discord/discord.cpp
+++ b/src/discord/discord.cpp
@@ -1095,6 +1095,10 @@ void DiscordClient::SetUserAgent(std::string agent) {
m_websocket.SetUserAgent(agent);
}
+bool DiscordClient::IsChannelMuted(Snowflake id) const noexcept {
+ return m_muted_channels.find(id) != m_muted_channels.end();
+}
+
bool DiscordClient::IsGuildMuted(Snowflake id) const noexcept {
return m_muted_guilds.find(id) != m_muted_guilds.end();
}
@@ -2190,6 +2194,10 @@ void DiscordClient::HandleReadyGuildSettings(const ReadyEventData &data) {
for (const auto &entry : data.GuildSettings.Entries) {
if (entry.Muted)
m_muted_guilds.insert(entry.GuildID);
+ for (const auto &override : entry.ChannelOverrides) {
+ if (override.Muted)
+ m_muted_channels.insert(override.ChannelID);
+ }
}
}
diff --git a/src/discord/discord.hpp b/src/discord/discord.hpp
index 4dc9520..fbee775 100644
--- a/src/discord/discord.hpp
+++ b/src/discord/discord.hpp
@@ -184,6 +184,7 @@ public:
void UpdateToken(std::string token);
void SetUserAgent(std::string agent);
+ bool IsChannelMuted(Snowflake id) const noexcept;
bool IsGuildMuted(Snowflake id) const noexcept;
int GetUnreadStateForChannel(Snowflake id) const noexcept;
@@ -280,6 +281,7 @@ private:
std::map<Snowflake, std::vector<Snowflake>> m_thread_members;
std::map<Snowflake, Snowflake> m_last_message_id;
std::unordered_set<Snowflake> m_muted_guilds;
+ std::unordered_set<Snowflake> m_muted_channels;
std::unordered_map<Snowflake, int> m_unread;
UserData m_user_data;