hide unread indicator for muted channels

This commit is contained in:
ouwou
2021-12-16 00:58:17 -05:00
parent a5332efcfb
commit 1fb7ca0007
3 changed files with 23 additions and 10 deletions

View File

@@ -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);
}
}
}

View File

@@ -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;