diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2020-09-24 02:43:27 -0400 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2020-09-24 02:43:27 -0400 |
commit | a8630f53b1b391cd2851955aa7585c53a996edd6 (patch) | |
tree | aa234ed30936e34bba962c0a1af9530c39d2fbb4 /discord/store.cpp | |
parent | 83417819186394e8d840167841103211ebe5fe33 (diff) | |
download | abaddon-portaudio-a8630f53b1b391cd2851955aa7585c53a996edd6.tar.gz abaddon-portaudio-a8630f53b1b391cd2851955aa7585c53a996edd6.zip |
put PermissionOverwrite in the store where it belongs
Diffstat (limited to 'discord/store.cpp')
-rw-r--r-- | discord/store.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/discord/store.cpp b/discord/store.cpp index b9fcbdb..cce9c3e 100644 --- a/discord/store.cpp +++ b/discord/store.cpp @@ -24,6 +24,10 @@ void Store::SetGuildMemberData(Snowflake guild_id, Snowflake user_id, const Guil m_members[guild_id][user_id] = data; } +void Store::SetPermissionOverwrite(Snowflake channel_id, Snowflake id, const PermissionOverwrite &perm) { + m_permissions[channel_id][id] = perm; +} + User *Store::GetUser(Snowflake id) { auto it = m_users.find(id); if (it == m_users.end()) @@ -104,6 +108,16 @@ GuildMember *Store::GetGuildMemberData(Snowflake guild_id, Snowflake user_id) { return &mit->second; } +PermissionOverwrite *Store::GetPermissionOverwrite(Snowflake channel_id, Snowflake id) { + auto cit = m_permissions.find(channel_id); + if (cit == m_permissions.end()) + return nullptr; + auto pit = cit->second.find(id); + if (pit == cit->second.end()) + return nullptr; + return &pit->second; +} + const GuildMember *Store::GetGuildMemberData(Snowflake guild_id, Snowflake user_id) const { auto git = m_members.find(guild_id); if (git == m_members.end()) @@ -114,6 +128,16 @@ const GuildMember *Store::GetGuildMemberData(Snowflake guild_id, Snowflake user_ return &mit->second; } +const PermissionOverwrite *Store::GetPermissionOverwrite(Snowflake channel_id, Snowflake id) const { + auto cit = m_permissions.find(channel_id); + if (cit == m_permissions.end()) + return nullptr; + auto pit = cit->second.find(id); + if (pit == cit->second.end()) + return nullptr; + return &pit->second; +} + void Store::ClearGuild(Snowflake id) { m_guilds.erase(id); } |