summaryrefslogtreecommitdiff
path: root/discord/objects.cpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2021-01-26 02:40:50 -0500
committerouwou <26526779+ouwou@users.noreply.github.com>2021-01-26 02:40:50 -0500
commitdabfefafd9c681231f990eccddc771ccf5c2c2e2 (patch)
tree35fc440dbacf8367fa650dde89217b23cf08bf33 /discord/objects.cpp
parente6c159659d30ca3cc955b9a7f7969f51d87a0bf9 (diff)
downloadabaddon-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.cpp26
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) {