mirror of
https://github.com/celisej567/abaddon.git
synced 2026-09-04 11:33:27 +03:00
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())
|
||||
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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user