Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit d8c3ff5

Browse files
Fix #1329: discord presence party info is kept after disconnect (#1359)
* Fix a bug with discord rich presence not respecting CVars load * Fix crash at #1349 * Fix coding style * Fix all the bugs which caused crash after a4f447a * Move all the initialization values to class declaration * Addendum ea42a3c * Fix issue #1329
1 parent 4f5d21c commit d8c3ff5

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

‎Client/core/CDiscordManager.cpp‎

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,11 @@ void CDiscordManager::UpdateActivity(std::function<void(EDiscordRes)> callback)
239239
if (!m_DiscordCore)
240240
return;
241241

242-
m_DiscordCore->ActivityManager().UpdateActivity(m_StoredActivity, [=](discord::Result res) { callback(static_cast<EDiscordRes>(res)); });
242+
m_DiscordCore->ActivityManager().UpdateActivity(m_StoredActivity, [=](discord::Result res)
243+
{
244+
callback(static_cast<EDiscordRes>(res));
245+
if (res != discord::Result::Ok) WriteDebugEvent(SString("[DISCORD]: Updating activity failed, code: %i", static_cast<int>(res)));
246+
});
243247
}
244248

245249
void CDiscordManager::SetType(EDiscordActivityT type, std::function<void(EDiscordRes)> callback)
@@ -283,6 +287,16 @@ void CDiscordManager::SetJoinParameters(const char* joinSecret, const char* part
283287
if (!joinSecret || !partyId)
284288
return;
285289

290+
if (!strlen(joinSecret) || !strlen(partyId))
291+
{
292+
// Delete join state
293+
m_StoredActivity.GetSecrets().SetJoin("");
294+
m_StoredActivity.GetParty().SetId("");
295+
m_StoredActivity.GetParty().GetSize().SetCurrentSize(0);
296+
m_StoredActivity.GetParty().GetSize().SetMaxSize(0);
297+
return;
298+
}
299+
286300
SString ipaddr;
287301
unsigned int port;
288302
CVARS_GET("host", ipaddr);
@@ -314,6 +328,10 @@ void CDiscordManager::RegisterPlay(bool connected)
314328
{
315329
m_StoredActivity.GetAssets().SetSmallText("");
316330
m_StoredActivity.GetAssets().SetSmallImage("");
331+
m_StoredActivity.GetSecrets().SetJoin("");
332+
m_StoredActivity.GetParty().SetId("");
333+
m_StoredActivity.GetParty().GetSize().SetCurrentSize(0);
334+
m_StoredActivity.GetParty().GetSize().SetMaxSize(0);
317335
UpdateActivity([=](EDiscordRes res) {});
318336
return;
319337
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /