diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-08-03 18:51:19 +1000 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-08-03 18:51:19 +1000 |
commit | 20de634a06c0053aad4b1a0017cae4ed023b6e94 (patch) | |
tree | ac4903dde869091aacf03a151811f8a4c0d84f5a /source/application/StarP2PNetworkingService_pc.cpp | |
parent | bef86811c9a08711b45523193b2ac7c13850f8c6 (diff) |
Improve Discord activity info
requested by Omeruin!
Diffstat (limited to 'source/application/StarP2PNetworkingService_pc.cpp')
-rw-r--r-- | source/application/StarP2PNetworkingService_pc.cpp | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/source/application/StarP2PNetworkingService_pc.cpp b/source/application/StarP2PNetworkingService_pc.cpp index 2d20415..0e13dee 100644 --- a/source/application/StarP2PNetworkingService_pc.cpp +++ b/source/application/StarP2PNetworkingService_pc.cpp @@ -81,7 +81,11 @@ void PcP2PNetworkingService::setJoinRemote(HostAddressWithPort location) { setJoinLocation(JoinRemote(location)); } -void Star::PcP2PNetworkingService::setActivityData([[maybe_unused]] String const& title, [[maybe_unused]] Maybe<pair<uint16_t, uint16_t>> party) { +void Star::PcP2PNetworkingService::setActivityData( + [[maybe_unused]] const char* title, + [[maybe_unused]] const char* details, + [[maybe_unused]] int64_t startTime, + [[maybe_unused]] Maybe<pair<uint16_t, uint16_t>> party) { #ifdef STAR_ENABLE_DISCORD_INTEGRATION MutexLocker discordLocker(m_state->discordMutex); #endif @@ -92,19 +96,25 @@ void Star::PcP2PNetworkingService::setActivityData([[maybe_unused]] String const if (m_discordUpdatingActivity) return; - if (title != m_discordActivityTitle || party != m_discordPartySize || m_discordForceUpdateActivity) { + if (title != m_discordActivityTitle + || details != m_discordActivityDetails + || startTime != m_discordActivityStartTime || party != m_discordPartySize || m_discordForceUpdateActivity) { m_discordForceUpdateActivity = false; m_discordPartySize = party; m_discordActivityTitle = title; + m_discordActivityDetails = details; + m_discordActivityStartTime = startTime; discord::Activity activity = {}; activity.SetType(discord::ActivityType::Playing); activity.SetName("Starbound"); - activity.SetState(title.utf8Ptr()); - - if (auto p = party) { - activity.GetParty().GetSize().SetCurrentSize(p->first); - activity.GetParty().GetSize().SetMaxSize(p->second); + activity.SetState(title); + activity.SetDetails(details); + activity.GetTimestamps().SetStart(startTime); + if (party) { + auto& size = activity.GetParty().GetSize(); + size.SetCurrentSize(party->first); + size.SetMaxSize(party->second); } if (auto lobby = m_discordServerLobby) |