diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2021-05-08 23:35:15 -0400 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2021-05-08 23:35:15 -0400 |
commit | 469053a14468f08dc694a1ef8d98f0265a72dd07 (patch) | |
tree | 82a221fa2cfd4a38223bc667a88896080b58725f /discord | |
parent | dd7852014fa1dbb4fd95fcc45dccf9e87b272eb6 (diff) | |
download | abaddon-portaudio-469053a14468f08dc694a1ef8d98f0265a72dd07.tar.gz abaddon-portaudio-469053a14468f08dc694a1ef8d98f0265a72dd07.zip |
handle RELATIONSHIP_REMOVE
Diffstat (limited to 'discord')
-rw-r--r-- | discord/discord.cpp | 14 | ||||
-rw-r--r-- | discord/discord.hpp | 4 | ||||
-rw-r--r-- | discord/objects.cpp | 5 | ||||
-rw-r--r-- | discord/objects.hpp | 8 |
4 files changed, 31 insertions, 0 deletions
diff --git a/discord/discord.cpp b/discord/discord.cpp index 8bd03bb..1045176 100644 --- a/discord/discord.cpp +++ b/discord/discord.cpp @@ -1035,6 +1035,9 @@ void DiscordClient::HandleGatewayMessage(std::string str) { case GatewayEvent::GUILD_JOIN_REQUEST_DELETE: { HandleGatewayGuildJoinRequestDelete(m); } break; + case GatewayEvent::RELATIONSHIP_REMOVE: { + HandleGatewayRelationshipRemove(m); + } break; } } break; default: @@ -1476,6 +1479,12 @@ void DiscordClient::HandleGatewayGuildJoinRequestDelete(const GatewayMessage &ms m_signal_guild_join_request_delete.emit(data); } +void DiscordClient::HandleGatewayRelationshipRemove(const GatewayMessage &msg) { + RelationshipRemoveData data = msg.Data; + m_user_relationships.erase(data.ID); + m_signal_relationship_remove.emit(data.ID, data.Type); +} + void DiscordClient::HandleGatewayReadySupplemental(const GatewayMessage &msg) { ReadySupplementalData data = msg.Data; for (const auto &p : data.MergedPresences.Friends) { @@ -1811,6 +1820,7 @@ void DiscordClient::LoadEventMap() { m_event_map["GUILD_JOIN_REQUEST_CREATE"] = GatewayEvent::GUILD_JOIN_REQUEST_CREATE; m_event_map["GUILD_JOIN_REQUEST_UPDATE"] = GatewayEvent::GUILD_JOIN_REQUEST_UPDATE; m_event_map["GUILD_JOIN_REQUEST_DELETE"] = GatewayEvent::GUILD_JOIN_REQUEST_DELETE; + m_event_map["RELATIONSHIP_REMOVE"] = GatewayEvent::RELATIONSHIP_REMOVE; } DiscordClient::type_signal_gateway_ready DiscordClient::signal_gateway_ready() { @@ -1933,6 +1943,10 @@ DiscordClient::type_signal_guild_join_request_delete DiscordClient::signal_guild return m_signal_guild_join_request_delete; } +DiscordClient::type_signal_relationship_remove DiscordClient::signal_relationship_remove() { + return m_signal_relationship_remove; +} + DiscordClient::type_signal_message_sent DiscordClient::signal_message_sent() { return m_signal_message_sent; } diff --git a/discord/discord.hpp b/discord/discord.hpp index 2883508..4a56d57 100644 --- a/discord/discord.hpp +++ b/discord/discord.hpp @@ -222,6 +222,7 @@ private: void HandleGatewayGuildJoinRequestCreate(const GatewayMessage &msg); void HandleGatewayGuildJoinRequestUpdate(const GatewayMessage &msg); void HandleGatewayGuildJoinRequestDelete(const GatewayMessage &msg); + void HandleGatewayRelationshipRemove(const GatewayMessage &msg); void HandleGatewayReadySupplemental(const GatewayMessage &msg); void HandleGatewayReconnect(const GatewayMessage &msg); void HandleGatewayInvalidSession(const GatewayMessage &msg); @@ -313,6 +314,7 @@ public: typedef sigc::signal<void, GuildJoinRequestCreateData> type_signal_guild_join_request_create; typedef sigc::signal<void, GuildJoinRequestUpdateData> type_signal_guild_join_request_update; typedef sigc::signal<void, GuildJoinRequestDeleteData> type_signal_guild_join_request_delete; + typedef sigc::signal<void, Snowflake, RelationshipType> type_signal_relationship_remove; typedef sigc::signal<void, Message> type_signal_message_sent; typedef sigc::signal<void, std::string /* nonce */, float /* retry_after */> type_signal_message_send_fail; // retry after param will be 0 if it failed for a reason that isnt slowmode typedef sigc::signal<void, bool, GatewayCloseCode> type_signal_disconnected; // bool true if reconnecting @@ -346,6 +348,7 @@ public: type_signal_guild_join_request_create signal_guild_join_request_create(); type_signal_guild_join_request_update signal_guild_join_request_update(); type_signal_guild_join_request_delete signal_guild_join_request_delete(); + type_signal_relationship_remove signal_relationship_remove(); type_signal_message_sent signal_message_sent(); type_signal_message_send_fail signal_message_send_fail(); type_signal_disconnected signal_disconnected(); @@ -380,6 +383,7 @@ protected: type_signal_guild_join_request_create m_signal_guild_join_request_create; type_signal_guild_join_request_update m_signal_guild_join_request_update; type_signal_guild_join_request_delete m_signal_guild_join_request_delete; + type_signal_relationship_remove m_signal_relationship_remove; type_signal_message_sent m_signal_message_sent; type_signal_message_send_fail m_signal_message_send_fail; type_signal_disconnected m_signal_disconnected; diff --git a/discord/objects.cpp b/discord/objects.cpp index d2a3f4c..9db6cf8 100644 --- a/discord/objects.cpp +++ b/discord/objects.cpp @@ -452,3 +452,8 @@ void from_json(const nlohmann::json &j, RateLimitedResponse &m) { JS_O("message", m.Message); JS_D("retry_after", m.RetryAfter); } + +void from_json(const nlohmann::json &j, RelationshipRemoveData &m) { + JS_D("id", m.ID); + JS_D("type", m.Type); +} diff --git a/discord/objects.hpp b/discord/objects.hpp index 5335dc0..2c6ac4c 100644 --- a/discord/objects.hpp +++ b/discord/objects.hpp @@ -68,6 +68,7 @@ enum class GatewayEvent : int { GUILD_JOIN_REQUEST_CREATE, GUILD_JOIN_REQUEST_UPDATE, GUILD_JOIN_REQUEST_DELETE, + RELATIONSHIP_REMOVE, }; enum class GatewayCloseCode : uint16_t { @@ -626,3 +627,10 @@ struct RateLimitedResponse { friend void from_json(const nlohmann::json &j, RateLimitedResponse &m); }; + +struct RelationshipRemoveData { + Snowflake ID; + RelationshipType Type; + + friend void from_json(const nlohmann::json &j, RelationshipRemoveData &m); +}; |