diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2021-02-26 00:58:30 -0500 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2021-02-26 00:58:30 -0500 |
commit | c69ebaf35714febf50839e94b126eccfd236d3e4 (patch) | |
tree | ce643f3c344540af0d30006836aeb9c28094de9d /discord | |
parent | 2d65ed96bc4cad21274f2fc7c30650048f1eb4e5 (diff) | |
download | abaddon-portaudio-c69ebaf35714febf50839e94b126eccfd236d3e4.tar.gz abaddon-portaudio-c69ebaf35714febf50839e94b126eccfd236d3e4.zip |
store member data received in MESSAGE_CREATE, _UPDATE
Diffstat (limited to 'discord')
-rw-r--r-- | discord/discord.cpp | 7 | ||||
-rw-r--r-- | discord/message.cpp | 3 | ||||
-rw-r--r-- | discord/message.hpp | 7 |
3 files changed, 13 insertions, 4 deletions
diff --git a/discord/discord.cpp b/discord/discord.cpp index 52f3125..b0d79e0 100644 --- a/discord/discord.cpp +++ b/discord/discord.cpp @@ -1469,6 +1469,8 @@ void DiscordClient::StoreMessageData(Message &msg) { if (chan.has_value() && chan->GuildID.has_value()) msg.GuildID = *chan->GuildID; + m_store.BeginTransaction(); + m_store.SetMessage(msg.ID, msg); m_store.SetUser(msg.Author.ID, msg.Author); if (msg.Reactions.has_value()) @@ -1482,6 +1484,11 @@ void DiscordClient::StoreMessageData(Message &msg) { for (const auto &user : msg.Mentions) m_store.SetUser(user.ID, user); + if (msg.Member.has_value()) + m_store.SetGuildMember(*msg.GuildID, msg.Author.ID, *msg.Member); + + m_store.EndTransaction(); + if (msg.ReferencedMessage.has_value() && msg.MessageReference.has_value() && msg.MessageReference->ChannelID.has_value()) if (msg.ReferencedMessage.value() != nullptr) StoreMessageData(**msg.ReferencedMessage); diff --git a/discord/message.cpp b/discord/message.cpp index c6457e5..5728df2 100644 --- a/discord/message.cpp +++ b/discord/message.cpp @@ -188,7 +188,7 @@ void from_json(const nlohmann::json &j, Message &m) { JS_D("channel_id", m.ChannelID); JS_O("guild_id", m.GuildID); JS_D("author", m.Author); - // JS_O("member", m.Member); + JS_O("member", m.Member); JS_D("content", m.Content); JS_D("timestamp", m.Timestamp); JS_N("edited_timestamp", m.EditedTimestamp); @@ -224,6 +224,7 @@ void Message::from_json_edited(const nlohmann::json &j) { JS_D("channel_id", ChannelID); JS_O("guild_id", GuildID); JS_O("author", Author); + JS_O("member", Member); JS_O("content", Content); JS_O("timestamp", Timestamp); JS_ON("edited_timestamp", EditedTimestamp); diff --git a/discord/message.hpp b/discord/message.hpp index d89045b..a666aa5 100644 --- a/discord/message.hpp +++ b/discord/message.hpp @@ -4,13 +4,14 @@ #include "user.hpp" #include "sticker.hpp" #include "emoji.hpp" +#include "member.hpp" #include <string> #include <vector> enum class MessageType { DEFAULT = 0, // yep - RECIPIENT_ADD = 1, // nope - RECIPIENT_REMOVE = 2, // nope + RECIPIENT_ADD = 1, // yep + RECIPIENT_REMOVE = 2, // yep CALL = 3, // nope CHANNEL_NAME_CHANGE = 4, // nope CHANNEL_ICON_CHANGE = 5, // nope @@ -167,7 +168,7 @@ struct Message { Snowflake ChannelID; std::optional<Snowflake> GuildID; UserData Author; - // std::optional<GuildMember> Member; + std::optional<GuildMember> Member; std::string Content; std::string Timestamp; std::string EditedTimestamp; // null |