1
0
Fork 0
mirror of https://gitlab.com/niansa/dpplogger.git synced 2025-03-06 20:48:29 +01:00

Make sure presence client status is object

This commit is contained in:
niansa 2023-01-10 17:58:43 +01:00
parent 176ef1d0e1
commit 64e056610b

View file

@ -458,7 +458,7 @@ protected:
bool is_online; bool is_online;
{ {
const auto& client_status = data["client_status"]; const auto& client_status = data["client_status"];
if (client_status.isArray() && !client_status.getMemberNames().empty()) { if (client_status.isObject() && !client_status.empty()) {
const auto device = client_status.getMemberNames()[0]; const auto device = client_status.getMemberNames()[0];
status_str = "[\""+client_status[device].asString()+"\", \""+device+"\"]"; status_str = "[\""+client_status[device].asString()+"\", \""+device+"\"]";
is_online = true; is_online = true;
@ -520,14 +520,20 @@ protected:
} else if (intent == "CHANNEL_UPDATE") [[unlikely]] { } else if (intent == "CHANNEL_UPDATE") [[unlikely]] {
if (cache.store(data).changed) cache.store(std::move(data)); if (cache.store(data).changed) cache.store(std::move(data));
} else if (intent == "CHANNEL_DELETE") [[unlikely]] { } else if (intent == "CHANNEL_DELETE") [[unlikely]] {
insertChannelDelete(data["id"]); const auto& guild_id = data["guild_id"];
if (guild_id.isString()) {
insertChannelDelete(guild_id);
}
} }
else if (intent == "GUILD_MEMBER_ADD" || intent == "GUILD_MEMBER_UDATE") [[unlikely]] { else if (intent == "GUILD_MEMBER_ADD" || intent == "GUILD_MEMBER_UDATE") [[unlikely]] {
auto guild_id = std::move(data["guild_id"]); auto guild_id = std::move(data["guild_id"]);
updateMember(std::move(data), guild_id.asString()); updateMember(std::move(data), guild_id.asString());
} else if (intent == "GUILD_MEMBER_REMOVE") [[unlikely]] { } else if (intent == "GUILD_MEMBER_REMOVE") [[unlikely]] {
const auto& user_data = cache.store(data["user"]).data; const auto& user_data = data["user"];
insertMemberDelete(user_data["id"], data["guild_id"]); if (user_data["username"].isString()) {
cache.store(user_data);
insertMemberDelete(user_data["id"], data["guild_id"]);
}
} }
else if (intent == "VOICE_STATE_UPDATE") { else if (intent == "VOICE_STATE_UPDATE") {
updateMemberVoiceConnection(std::move(data)); updateMemberVoiceConnection(std::move(data));
@ -563,7 +569,7 @@ int main(int argc, char **argv) {
// Set up client // Set up client
auto client = std::make_shared<MyClient>(io, Discord::Settings{ auto client = std::make_shared<MyClient>(io, Discord::Settings{
.bot_token = argv[1], .bot_token = argv[1],
.intents = Discord::intents::all, .intents = Discord::intents::all & ~Discord::intents::direct_messages,
.is_bot = false .is_bot = false
}); });
client->detach(); client->detach();