forked from OpenGamers/abaddon
store member data received in MESSAGE_CREATE, _UPDATE
This commit is contained in:
@@ -1469,6 +1469,8 @@ void DiscordClient::StoreMessageData(Message &msg) {
|
|||||||
if (chan.has_value() && chan->GuildID.has_value())
|
if (chan.has_value() && chan->GuildID.has_value())
|
||||||
msg.GuildID = *chan->GuildID;
|
msg.GuildID = *chan->GuildID;
|
||||||
|
|
||||||
|
m_store.BeginTransaction();
|
||||||
|
|
||||||
m_store.SetMessage(msg.ID, msg);
|
m_store.SetMessage(msg.ID, msg);
|
||||||
m_store.SetUser(msg.Author.ID, msg.Author);
|
m_store.SetUser(msg.Author.ID, msg.Author);
|
||||||
if (msg.Reactions.has_value())
|
if (msg.Reactions.has_value())
|
||||||
@@ -1482,6 +1484,11 @@ void DiscordClient::StoreMessageData(Message &msg) {
|
|||||||
for (const auto &user : msg.Mentions)
|
for (const auto &user : msg.Mentions)
|
||||||
m_store.SetUser(user.ID, user);
|
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.has_value() && msg.MessageReference.has_value() && msg.MessageReference->ChannelID.has_value())
|
||||||
if (msg.ReferencedMessage.value() != nullptr)
|
if (msg.ReferencedMessage.value() != nullptr)
|
||||||
StoreMessageData(**msg.ReferencedMessage);
|
StoreMessageData(**msg.ReferencedMessage);
|
||||||
|
|||||||
@@ -188,7 +188,7 @@ void from_json(const nlohmann::json &j, Message &m) {
|
|||||||
JS_D("channel_id", m.ChannelID);
|
JS_D("channel_id", m.ChannelID);
|
||||||
JS_O("guild_id", m.GuildID);
|
JS_O("guild_id", m.GuildID);
|
||||||
JS_D("author", m.Author);
|
JS_D("author", m.Author);
|
||||||
// JS_O("member", m.Member);
|
JS_O("member", m.Member);
|
||||||
JS_D("content", m.Content);
|
JS_D("content", m.Content);
|
||||||
JS_D("timestamp", m.Timestamp);
|
JS_D("timestamp", m.Timestamp);
|
||||||
JS_N("edited_timestamp", m.EditedTimestamp);
|
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_D("channel_id", ChannelID);
|
||||||
JS_O("guild_id", GuildID);
|
JS_O("guild_id", GuildID);
|
||||||
JS_O("author", Author);
|
JS_O("author", Author);
|
||||||
|
JS_O("member", Member);
|
||||||
JS_O("content", Content);
|
JS_O("content", Content);
|
||||||
JS_O("timestamp", Timestamp);
|
JS_O("timestamp", Timestamp);
|
||||||
JS_ON("edited_timestamp", EditedTimestamp);
|
JS_ON("edited_timestamp", EditedTimestamp);
|
||||||
|
|||||||
@@ -4,13 +4,14 @@
|
|||||||
#include "user.hpp"
|
#include "user.hpp"
|
||||||
#include "sticker.hpp"
|
#include "sticker.hpp"
|
||||||
#include "emoji.hpp"
|
#include "emoji.hpp"
|
||||||
|
#include "member.hpp"
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
enum class MessageType {
|
enum class MessageType {
|
||||||
DEFAULT = 0, // yep
|
DEFAULT = 0, // yep
|
||||||
RECIPIENT_ADD = 1, // nope
|
RECIPIENT_ADD = 1, // yep
|
||||||
RECIPIENT_REMOVE = 2, // nope
|
RECIPIENT_REMOVE = 2, // yep
|
||||||
CALL = 3, // nope
|
CALL = 3, // nope
|
||||||
CHANNEL_NAME_CHANGE = 4, // nope
|
CHANNEL_NAME_CHANGE = 4, // nope
|
||||||
CHANNEL_ICON_CHANGE = 5, // nope
|
CHANNEL_ICON_CHANGE = 5, // nope
|
||||||
@@ -167,7 +168,7 @@ struct Message {
|
|||||||
Snowflake ChannelID;
|
Snowflake ChannelID;
|
||||||
std::optional<Snowflake> GuildID;
|
std::optional<Snowflake> GuildID;
|
||||||
UserData Author;
|
UserData Author;
|
||||||
// std::optional<GuildMember> Member;
|
std::optional<GuildMember> Member;
|
||||||
std::string Content;
|
std::string Content;
|
||||||
std::string Timestamp;
|
std::string Timestamp;
|
||||||
std::string EditedTimestamp; // null
|
std::string EditedTimestamp; // null
|
||||||
|
|||||||
Reference in New Issue
Block a user