summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2020-12-18 23:55:28 -0500
committerouwou <26526779+ouwou@users.noreply.github.com>2020-12-18 23:55:28 -0500
commit2ec60ce5ac65f0783c6bd636af0e840605aa8c60 (patch)
tree9246e6475689ebea803c33cdadf598aa611fff08
parent712eba816e1824c7babeffc946dad0335bd87913 (diff)
downloadabaddon-portaudio-2ec60ce5ac65f0783c6bd636af0e840605aa8c60.tar.gz
abaddon-portaudio-2ec60ce5ac65f0783c6bd636af0e840605aa8c60.zip
fix presence in identify and update build number
-rw-r--r--discord/activity.cpp7
-rw-r--r--discord/activity.hpp9
-rw-r--r--discord/discord.cpp8
-rw-r--r--discord/objects.cpp6
-rw-r--r--discord/objects.hpp7
5 files changed, 23 insertions, 14 deletions
diff --git a/discord/activity.cpp b/discord/activity.cpp
index b7285a9..20227fb 100644
--- a/discord/activity.cpp
+++ b/discord/activity.cpp
@@ -99,3 +99,10 @@ void to_json(nlohmann::json &j, const Activity &m) {
JS_IF("instance", m.IsInstance);
JS_IF("flags", m.Flags);
}
+
+void to_json(nlohmann::json &j, const Presence &m) {
+ j["activities"] = m.Activities;
+ j["status"] = m.Status;
+ j["afk"] = m.IsAFK;
+ j["since"] = m.Since;
+}
diff --git a/discord/activity.hpp b/discord/activity.hpp
index 90040ca..d889b22 100644
--- a/discord/activity.hpp
+++ b/discord/activity.hpp
@@ -90,3 +90,12 @@ struct Activity {
friend void from_json(const nlohmann::json &j, Activity &m);
friend void to_json(nlohmann::json &j, const Activity &m);
};
+
+struct Presence {
+ std::vector<Activity> Activities; // null (but never sent as such)
+ std::string Status;
+ bool IsAFK;
+ int Since = 0;
+
+ friend void to_json(nlohmann::json &j, const Presence &m);
+};
diff --git a/discord/discord.cpp b/discord/discord.cpp
index 9e6726c..b506931 100644
--- a/discord/discord.cpp
+++ b/discord/discord.cpp
@@ -383,9 +383,9 @@ void DiscordClient::BanUser(Snowflake user_id, Snowflake guild_id) {
void DiscordClient::UpdateStatus(const std::string &status, bool is_afk, const Activity &obj) {
UpdateStatusMessage msg;
- msg.Status = status;
- msg.IsAFK = is_afk;
- msg.Activities.push_back(obj);
+ msg.Presence.Status = status;
+ msg.Presence.IsAFK = is_afk;
+ msg.Presence.Activities.push_back(obj);
m_websocket.Send(nlohmann::json(msg));
}
@@ -985,7 +985,7 @@ void DiscordClient::SendIdentify() {
msg.Properties.ReferrerCurrent = "";
msg.Properties.ReferringDomainCurrent = "";
msg.Properties.ReleaseChannel = "stable";
- msg.Properties.ClientBuildNumber = 73363;
+ msg.Properties.ClientBuildNumber = 73785;
msg.Properties.ClientEventSource = "";
msg.Presence.Status = "online";
msg.Presence.Since = 0;
diff --git a/discord/objects.cpp b/discord/objects.cpp
index 35cb856..8008177 100644
--- a/discord/objects.cpp
+++ b/discord/objects.cpp
@@ -85,11 +85,7 @@ void to_json(nlohmann::json &j, const LazyLoadRequestMessage &m) {
void to_json(nlohmann::json &j, const UpdateStatusMessage &m) {
j["op"] = GatewayOp::UpdateStatus;
- j["d"] = nlohmann::json::object();
- j["d"]["activities"] = m.Activities;
- j["d"]["status"] = m.Status;
- j["d"]["afk"] = m.IsAFK;
- j["d"]["since"] = nullptr;
+ j["d"] = m.Presence;
}
void from_json(const nlohmann::json &j, ReadyEventData &m) {
diff --git a/discord/objects.hpp b/discord/objects.hpp
index a3877a7..1d058de 100644
--- a/discord/objects.hpp
+++ b/discord/objects.hpp
@@ -145,10 +145,7 @@ struct LazyLoadRequestMessage {
};
struct UpdateStatusMessage {
- std::vector<Activity> Activities; // null (but never sent as such)
- std::string Status;
- bool IsAFK;
- int Since = 0;
+ Presence Presence;
friend void to_json(nlohmann::json &j, const UpdateStatusMessage &m);
};
@@ -209,7 +206,7 @@ struct ClientStateProperties {
struct IdentifyMessage : GatewayMessage {
std::string Token;
IdentifyProperties Properties;
- UpdateStatusMessage Presence;
+ Presence Presence;
ClientStateProperties ClientState;
bool DoesSupportCompression = false;
int Capabilities;