mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-23 08:43:50 +02:00
Fix Discord RPC 2
This commit is contained in:
45
Discord.cs
45
Discord.cs
@@ -61,7 +61,17 @@ namespace VRCX
|
|||||||
|
|
||||||
private void Update()
|
private void Update()
|
||||||
{
|
{
|
||||||
if (m_Client != null)
|
if (m_Client == null)
|
||||||
|
{
|
||||||
|
m_Client = new DiscordRpcClient(DiscordAppId);
|
||||||
|
if (m_Client.Initialize() == false)
|
||||||
|
{
|
||||||
|
m_Client.Dispose();
|
||||||
|
m_Client = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_Client != null && !m_Lock.IsWriteLockHeld)
|
||||||
{
|
{
|
||||||
m_Lock.EnterReadLock();
|
m_Lock.EnterReadLock();
|
||||||
try
|
try
|
||||||
@@ -76,24 +86,14 @@ namespace VRCX
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetActive(bool active)
|
public void SetInactive()
|
||||||
{
|
{
|
||||||
if (!active && m_Client != null)
|
if (m_Client != null)
|
||||||
{
|
{
|
||||||
m_Client.ClearPresence();
|
m_Client.ClearPresence();
|
||||||
m_Client.Dispose();
|
m_Client.Dispose();
|
||||||
m_Client = null;
|
m_Client = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (active && m_Client == null)
|
|
||||||
{
|
|
||||||
m_Client = new DiscordRpcClient(DiscordAppId);
|
|
||||||
if (m_Client.Initialize() == false)
|
|
||||||
{
|
|
||||||
m_Client.Dispose();
|
|
||||||
m_Client = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://stackoverflow.com/questions/1225052/best-way-to-shorten-utf8-string-based-on-byte-length
|
// https://stackoverflow.com/questions/1225052/best-way-to-shorten-utf8-string-based-on-byte-length
|
||||||
@@ -114,15 +114,18 @@ namespace VRCX
|
|||||||
|
|
||||||
public void SetText(string details, string state)
|
public void SetText(string details, string state)
|
||||||
{
|
{
|
||||||
m_Lock.EnterWriteLock();
|
if (m_Client != null && !m_Lock.IsReadLockHeld)
|
||||||
try
|
|
||||||
{
|
{
|
||||||
m_Presence.Details = LimitByteLength(details, 127);
|
m_Lock.EnterWriteLock();
|
||||||
m_Presence.State = LimitByteLength(state, 127);
|
try
|
||||||
}
|
{
|
||||||
finally
|
m_Presence.Details = LimitByteLength(details, 127);
|
||||||
{
|
m_Presence.State = LimitByteLength(state, 127);
|
||||||
m_Lock.ExitWriteLock();
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
m_Lock.ExitWriteLock();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4274,7 +4274,7 @@ speechSynthesis.getVoices();
|
|||||||
this.lastLocationReset();
|
this.lastLocationReset();
|
||||||
this.clearNowPlaying();
|
this.clearNowPlaying();
|
||||||
this.updateVRLastLocation();
|
this.updateVRLastLocation();
|
||||||
this.setDiscordActive(isGameRunning);
|
this.nextDiscordUpdate = 0;
|
||||||
}
|
}
|
||||||
if (isSteamVRRunning !== this.isSteamVRRunning) {
|
if (isSteamVRRunning !== this.isSteamVRRunning) {
|
||||||
this.isSteamVRRunning = isSteamVRRunning;
|
this.isSteamVRRunning = isSteamVRRunning;
|
||||||
@@ -7881,7 +7881,6 @@ speechSynthesis.getVoices();
|
|||||||
configRepository.setBool('discordJoinButton', this.discordJoinButton);
|
configRepository.setBool('discordJoinButton', this.discordJoinButton);
|
||||||
configRepository.setBool('discordHideInvite', this.discordHideInvite);
|
configRepository.setBool('discordHideInvite', this.discordHideInvite);
|
||||||
configRepository.setBool('discordHideImage', this.discordHideImage);
|
configRepository.setBool('discordHideImage', this.discordHideImage);
|
||||||
this.setDiscordActive(this.isGameRunning);
|
|
||||||
this.lastLocation$.tag = '';
|
this.lastLocation$.tag = '';
|
||||||
this.updateDiscord();
|
this.updateDiscord();
|
||||||
};
|
};
|
||||||
@@ -10003,6 +10002,7 @@ speechSynthesis.getVoices();
|
|||||||
!this.isGameRunning ||
|
!this.isGameRunning ||
|
||||||
(!currentLocation && !this.lastLocation$.tag)
|
(!currentLocation && !this.lastLocation$.tag)
|
||||||
) {
|
) {
|
||||||
|
Discord.SetInactive();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var L = this.lastLocation$;
|
var L = this.lastLocation$;
|
||||||
@@ -10172,15 +10172,6 @@ speechSynthesis.getVoices();
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
$app.methods.setDiscordActive = function (isGameRunning) {
|
|
||||||
if (this.discordActive && isGameRunning) {
|
|
||||||
Discord.SetActive(true);
|
|
||||||
} else {
|
|
||||||
Discord.SetText('', '');
|
|
||||||
Discord.SetActive(false);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
$app.methods.lookupUser = async function (ref) {
|
$app.methods.lookupUser = async function (ref) {
|
||||||
if (ref.userId) {
|
if (ref.userId) {
|
||||||
this.showUserDialog(ref.userId);
|
this.showUserDialog(ref.userId);
|
||||||
|
|||||||
Reference in New Issue
Block a user