diff options
Diffstat (limited to 'discord/discord.cpp')
-rw-r--r-- | discord/discord.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/discord/discord.cpp b/discord/discord.cpp index 1045176..e4592ca 100644 --- a/discord/discord.cpp +++ b/discord/discord.cpp @@ -1038,6 +1038,9 @@ void DiscordClient::HandleGatewayMessage(std::string str) { case GatewayEvent::RELATIONSHIP_REMOVE: { HandleGatewayRelationshipRemove(m); } break; + case GatewayEvent::RELATIONSHIP_ADD: { + HandleGatewayRelationshipAdd(m); + } break; } } break; default: @@ -1485,6 +1488,13 @@ void DiscordClient::HandleGatewayRelationshipRemove(const GatewayMessage &msg) { m_signal_relationship_remove.emit(data.ID, data.Type); } +void DiscordClient::HandleGatewayRelationshipAdd(const GatewayMessage &msg) { + RelationshipAddData data = msg.Data; + m_store.SetUser(data.ID, data.User); + m_user_relationships[data.ID] = data.Type; + m_signal_relationship_add.emit(std::move(data)); +} + void DiscordClient::HandleGatewayReadySupplemental(const GatewayMessage &msg) { ReadySupplementalData data = msg.Data; for (const auto &p : data.MergedPresences.Friends) { @@ -1821,6 +1831,7 @@ void DiscordClient::LoadEventMap() { 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; + m_event_map["RELATIONSHIP_ADD"] = GatewayEvent::RELATIONSHIP_ADD; } DiscordClient::type_signal_gateway_ready DiscordClient::signal_gateway_ready() { @@ -1947,6 +1958,10 @@ DiscordClient::type_signal_relationship_remove DiscordClient::signal_relationshi return m_signal_relationship_remove; } +DiscordClient::type_signal_relationship_add DiscordClient::signal_relationship_add() { + return m_signal_relationship_add; +} + DiscordClient::type_signal_message_sent DiscordClient::signal_message_sent() { return m_signal_message_sent; } |