diff options
Diffstat (limited to 'src/discord/objects.cpp')
-rw-r--r-- | src/discord/objects.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/discord/objects.cpp b/src/discord/objects.cpp index 37a9241..c783a3e 100644 --- a/src/discord/objects.cpp +++ b/src/discord/objects.cpp @@ -199,10 +199,26 @@ void to_json(nlohmann::json &j, const UserGuildSettingsEntry &m) { j["version"] = m.Version; } +std::optional<UserGuildSettingsChannelOverride> UserGuildSettingsEntry::GetOverride(Snowflake channel_id) const { + for (const auto &override : ChannelOverrides) { + if (override.ChannelID == channel_id) return override; + } + + return std::nullopt; +} + void from_json(const nlohmann::json &j, UserGuildSettingsData &m) { JS_D("version", m.Version); JS_D("partial", m.IsPartial); - JS_D("entries", m.Entries); + + { + std::vector<UserGuildSettingsEntry> entries; + JS_D("entries", entries); + + for (const auto &entry : entries) { + m.Entries[entry.GuildID] = entry; + } + } } void from_json(const nlohmann::json &j, ReadyEventData &m) { |