diff options
Diffstat (limited to 'src/discord/objects.hpp')
-rw-r--r-- | src/discord/objects.hpp | 55 |
1 files changed, 44 insertions, 11 deletions
diff --git a/src/discord/objects.hpp b/src/discord/objects.hpp index c72361b..27542cc 100644 --- a/src/discord/objects.hpp +++ b/src/discord/objects.hpp @@ -24,16 +24,35 @@ // most stuff below should just be objects that get processed and thrown away immediately enum class GatewayOp : int { - Event = 0, + Dispatch = 0, Heartbeat = 1, Identify = 2, - UpdateStatus = 3, + PresenceUpdate = 3, + VoiceStateUpdate = 4, + VoiceServerPing = 5, Resume = 6, Reconnect = 7, + RequestGuildMembers = 8, InvalidSession = 9, Hello = 10, HeartbeatAck = 11, - LazyLoadRequest = 14, + // 12 unused + CallConnect = 13, + GuildSubscriptions = 14, + LobbyConnect = 15, + LobbyDisconnect = 16, + LobbyVoiceStatesUpdate = 17, + StreamCreate = 18, + StreamDelete = 19, + StreamWatch = 20, + StreamPing = 21, + StreamSetPaused = 22, + // 23 unused + RequestGuildApplicationCommands = 24, + EmbeddedActivityLaunch = 25, + EmbeddedActivityClose = 26, + EmbeddedActivityUpdate = 27, + RequestForumUnreads = 28, }; enum class GatewayEvent : int { @@ -80,6 +99,7 @@ enum class GatewayEvent : int { THREAD_MEMBER_LIST_UPDATE, MESSAGE_ACK, USER_GUILD_SETTINGS_UPDATE, + GUILD_MEMBERS_CHUNK, }; enum class GatewayCloseCode : uint16_t { @@ -226,6 +246,14 @@ struct UpdateStatusMessage { friend void to_json(nlohmann::json &j, const UpdateStatusMessage &m); }; +struct RequestGuildMembersMessage { + Snowflake GuildID; + bool Presences; + std::vector<Snowflake> UserIDs; + + friend void to_json(nlohmann::json &j, const RequestGuildMembersMessage &m); +}; + struct ReadStateEntry { int MentionCount; Snowflake LastMessageID; @@ -244,14 +272,6 @@ struct ReadStateData { 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; @@ -830,3 +850,16 @@ struct UserGuildSettingsUpdateData { friend void from_json(const nlohmann::json &j, UserGuildSettingsUpdateData &m); }; + +struct GuildMembersChunkData { + /* + not needed so not deserialized + int ChunkCount; + int ChunkIndex; + std::vector<?> NotFound; + */ + Snowflake GuildID; + std::vector<GuildMember> Members; + + friend void from_json(const nlohmann::json &j, GuildMembersChunkData &m); +}; |