diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2021-01-26 02:40:50 -0500 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2021-01-26 02:40:50 -0500 |
commit | dabfefafd9c681231f990eccddc771ccf5c2c2e2 (patch) | |
tree | 35fc440dbacf8367fa650dde89217b23cf08bf33 /discord/objects.cpp | |
parent | e6c159659d30ca3cc955b9a7f7969f51d87a0bf9 (diff) | |
download | abaddon-portaudio-dabfefafd9c681231f990eccddc771ccf5c2c2e2.tar.gz abaddon-portaudio-dabfefafd9c681231f990eccddc771ccf5c2c2e2.zip |
show status indicators in member list, change some other shit with presences
Diffstat (limited to 'discord/objects.cpp')
-rw-r--r-- | discord/objects.cpp | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/discord/objects.cpp b/discord/objects.cpp index 4cc03e0..b08f796 100644 --- a/discord/objects.cpp +++ b/discord/objects.cpp @@ -44,6 +44,7 @@ void from_json(const nlohmann::json &j, GuildMemberListUpdateMessage::MemberItem JS_N("hoisted_role", m.HoistedRole); JS_ON("premium_since", m.PremiumSince); JS_ON("nick", m.Nickname); + JS_ON("presence", m.Presence); m.m_member_data = j; } @@ -85,7 +86,24 @@ void to_json(nlohmann::json &j, const LazyLoadRequestMessage &m) { void to_json(nlohmann::json &j, const UpdateStatusMessage &m) { j["op"] = GatewayOp::UpdateStatus; - j["d"] = m.Presence; + j["d"] = nlohmann::json::object(); + j["d"]["since"] = m.Since; + j["d"]["activities"] = m.Activities; + j["d"]["afk"] = m.IsAFK; + switch (m.Status) { + case PresenceStatus::Online: + j["d"]["status"] = "online"; + break; + case PresenceStatus::Offline: + j["d"]["status"] = "offline"; + break; + case PresenceStatus::Idle: + j["d"]["status"] = "idle"; + break; + case PresenceStatus::DND: + j["d"]["status"] = "dnd"; + break; + } } void from_json(const nlohmann::json &j, ReadyEventData &m) { @@ -170,7 +188,7 @@ void from_json(const nlohmann::json &j, GuildMemberUpdateMessage &m) { JS_D("joined_at", m.JoinedAt); } -void from_json(const nlohmann::json &j, ClientStatus &m) { +void from_json(const nlohmann::json &j, ClientStatusData &m) { JS_O("desktop", m.Desktop); JS_O("mobile", m.Mobile); JS_O("web", m.Web); @@ -180,8 +198,8 @@ void from_json(const nlohmann::json &j, PresenceUpdateMessage &m) { m.User = j.at("user"); JS_O("guild_id", m.GuildID); JS_D("status", m.StatusMessage); - // JS_D("activities", m.Activities); - JS_D("client_status", m.Status); + JS_D("activities", m.Activities); + JS_D("client_status", m.ClientStatus); } void to_json(nlohmann::json &j, const CreateDMObject &m) { |