summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Kundiman <erik@megapahit.org>2025-07-28 17:01:34 +0800
committerErik Kundiman <erik@megapahit.org>2025-07-28 17:01:34 +0800
commit705cd43ae88b5d095e7953ef8ddf670f3bbc9e1a (patch)
tree8834086dd3ac8bed07ab10b739e959ce73c95fef
parent94f51d5a4b16d76e46e53802cc188da8c9eb795b (diff)
Show Discord Rich Presence Activity Party
By setting CurrentSize to the number of people within chat radius, and MaxSize to the number of people within (MP's) near range.
-rw-r--r--indra/newview/llappviewer.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 9124651e84..bc97e5b852 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -6017,7 +6017,19 @@ void LLAppViewer::updateDiscordActivity()
pos_x -= pos_x % 2;
pos_y -= pos_y % 2;
}
- activity.SetState(llformat("%s (%d, %d, %d)", gAgent.getRegion()->getName().c_str(), pos_x, pos_y, pos_z));
+ auto location = llformat("%s (%d, %d, %d)", gAgent.getRegion()->getName().c_str(), pos_x, pos_y, pos_z);
+ activity.SetState(location);
+
+ auto world = LLWorld::getInstance();
+ uuid_vec_t chat_radius_uuids, near_me_uuids;
+ auto position = gAgent.getPositionGlobal();
+ world->getAvatars(&chat_radius_uuids, NULL, position, CHAT_NORMAL_RADIUS);
+ world->getAvatars(&near_me_uuids, NULL, position, gSavedSettings.getF32("MPVNearMeRange"));
+ discordpp::ActivityParty party;
+ party.SetId(location);
+ party.SetCurrentSize(chat_radius_uuids.size());
+ party.SetMaxSize(near_me_uuids.size());
+ activity.SetParty(party);
}
gDiscordClient->UpdateRichPresence(activity, [](discordpp::ClientResult) {});