summaryrefslogtreecommitdiff
path: root/discord/store.cpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2020-09-24 02:43:27 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2020-09-24 02:43:27 -0400
commita8630f53b1b391cd2851955aa7585c53a996edd6 (patch)
treeaa234ed30936e34bba962c0a1af9530c39d2fbb4 /discord/store.cpp
parent83417819186394e8d840167841103211ebe5fe33 (diff)
downloadabaddon-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.cpp24
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);
}