Add NoRequireDiscord flag when initializing Discord GameSDK.

This commit is contained in:
2023-01-08 13:00:35 +08:00
parent 723ec937ad
commit a7baef2c9d

View File

@@ -1,6 +1,7 @@
using Discord; using Discord;
using System; using System;
using UnityEngine; using UnityEngine;
using Logger = Cryville.Common.Logger;
namespace Cryville.Crtr { namespace Cryville.Crtr {
internal class DiscordController : MonoBehaviour { internal class DiscordController : MonoBehaviour {
@@ -16,22 +17,31 @@ namespace Cryville.Crtr {
void Start() { void Start() {
Instance = this; Instance = this;
launchTime = (long)(DateTime.UtcNow - DateTime.UnixEpoch).TotalSeconds; launchTime = (long)(DateTime.UtcNow - DateTime.UnixEpoch).TotalSeconds;
dc = new Discord.Discord(CLIENT_ID, (UInt64)CreateFlags.Default); try {
am = dc.GetActivityManager(); dc = new Discord.Discord(CLIENT_ID, (UInt64)CreateFlags.NoRequireDiscord);
SetIdle(); Logger.Log("main", 1, "Discord", "Connected to Discord");
am = dc.GetActivityManager();
SetIdle();
}
catch (ResultException) {
Logger.Log("main", 3, "Discord", "Cannot connect to Discord");
}
} }
void Update() { void Update() {
if (dc == null) return;
dc.RunCallbacks(); dc.RunCallbacks();
} }
void OnApplicationQuit() { void OnApplicationQuit() {
if (dc == null) return;
dc.Dispose(); dc.Dispose();
} }
void Callback(Result result) { } void Callback(Result result) { }
public void SetIdle() { public void SetIdle() {
if (dc == null) return;
am.UpdateActivity(new Activity { am.UpdateActivity(new Activity {
State = "Idle", State = "Idle",
Instance = false, Instance = false,
@@ -40,6 +50,7 @@ namespace Cryville.Crtr {
} }
public void SetPlaying(string detail, double? duration) { public void SetPlaying(string detail, double? duration) {
if (dc == null) return;
long now = (long)(DateTime.UtcNow - DateTime.UnixEpoch).TotalSeconds; long now = (long)(DateTime.UtcNow - DateTime.UnixEpoch).TotalSeconds;
am.UpdateActivity(new Activity { am.UpdateActivity(new Activity {
State = "Playing a chart", State = "Playing a chart",