diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2022-01-08 20:11:52 -0500 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2022-01-08 20:11:52 -0500 |
commit | f31d431517b27a88a95f6972de8fcf3206df1da1 (patch) | |
tree | 772ee0241f8f79c510aa158e0d5f1a04302214c9 /src/discord/objects.hpp | |
parent | f19dcc01145edd2e69a8cccbc59258b6b73bd704 (diff) | |
parent | 604f2ffe3dc8978aebd6aa819b73374aa32d2f0e (diff) | |
download | abaddon-portaudio-f31d431517b27a88a95f6972de8fcf3206df1da1.tar.gz abaddon-portaudio-f31d431517b27a88a95f6972de8fcf3206df1da1.zip |
Merge branch 'unread' into msys
Diffstat (limited to 'src/discord/objects.hpp')
-rw-r--r-- | src/discord/objects.hpp | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/src/discord/objects.hpp b/src/discord/objects.hpp index 7084efb..c72361b 100644 --- a/src/discord/objects.hpp +++ b/src/discord/objects.hpp @@ -78,6 +78,8 @@ enum class GatewayEvent : int { THREAD_MEMBER_UPDATE, THREAD_MEMBERS_UPDATE, THREAD_MEMBER_LIST_UPDATE, + MESSAGE_ACK, + USER_GUILD_SETTINGS_UPDATE, }; enum class GatewayCloseCode : uint16_t { @@ -224,6 +226,67 @@ struct UpdateStatusMessage { friend void to_json(nlohmann::json &j, const UpdateStatusMessage &m); }; +struct ReadStateEntry { + int MentionCount; + Snowflake LastMessageID; + Snowflake ID; + // std::string LastPinTimestamp; iso + + friend void from_json(const nlohmann::json &j, ReadStateEntry &m); + friend void to_json(nlohmann::json &j, const ReadStateEntry &m); +}; + +struct ReadStateData { + int Version; + bool IsPartial; + std::vector<ReadStateEntry> Entries; + + friend void from_json(const nlohmann::json &j, ReadStateData &m); +}; + +struct MuteConfigData { + std::optional<std::string> EndTime; // nullopt is encoded as null + int SelectedTimeWindow; + + friend void from_json(const nlohmann::json &j, MuteConfigData &m); + friend void to_json(nlohmann::json &j, const MuteConfigData &m); +}; + +struct UserGuildSettingsChannelOverride { + bool Muted; + MuteConfigData MuteConfig; + int MessageNotifications; + bool Collapsed; + Snowflake ChannelID; + + friend void from_json(const nlohmann::json &j, UserGuildSettingsChannelOverride &m); + friend void to_json(nlohmann::json &j, const UserGuildSettingsChannelOverride &m); +}; + +struct UserGuildSettingsEntry { + int Version; + bool SuppressRoles; + bool SuppressEveryone; + bool Muted; + MuteConfigData MuteConfig; + bool MobilePush; + int MessageNotifications; + bool HideMutedChannels; + Snowflake GuildID; + std::vector<UserGuildSettingsChannelOverride> ChannelOverrides; + + friend void from_json(const nlohmann::json &j, UserGuildSettingsEntry &m); + friend void to_json(nlohmann::json &j, const UserGuildSettingsEntry &m); +}; + +struct UserGuildSettingsData { + int Version; + bool IsPartial; + std::vector<UserGuildSettingsEntry> Entries; + + friend void from_json(const nlohmann::json &j, UserGuildSettingsData &m); +}; + struct ReadyEventData { int GatewayVersion; UserData SelfUser; @@ -239,6 +302,8 @@ struct ReadyEventData { std::optional<std::vector<std::vector<GuildMember>>> MergedMembers; std::optional<std::vector<RelationshipData>> Relationships; std::optional<std::vector<GuildApplicationData>> GuildJoinRequests; + ReadStateData ReadState; + UserGuildSettingsData GuildSettings; // std::vector<Unknown> ConnectedAccounts; // opt // std::map<std::string, Unknown> Consents; // opt // std::vector<Unknown> Experiments; // opt @@ -745,3 +810,23 @@ struct ModifyChannelObject { friend void to_json(nlohmann::json &j, const ModifyChannelObject &m); }; + +struct MessageAckData { + // int Version; // what is this ?!?!?!!? + Snowflake MessageID; + Snowflake ChannelID; + + friend void from_json(const nlohmann::json &j, MessageAckData &m); +}; + +struct AckBulkData { + std::vector<ReadStateEntry> ReadStates; + + friend void to_json(nlohmann::json &j, const AckBulkData &m); +}; + +struct UserGuildSettingsUpdateData { + UserGuildSettingsEntry Settings; + + friend void from_json(const nlohmann::json &j, UserGuildSettingsUpdateData &m); +}; |