diff --git a/Assets/Cryville/Crtr/DiscordController.cs b/Assets/Cryville/Crtr/DiscordController.cs index dc0be32..e3bf07e 100644 --- a/Assets/Cryville/Crtr/DiscordController.cs +++ b/Assets/Cryville/Crtr/DiscordController.cs @@ -1,6 +1,7 @@ using Discord; using System; using UnityEngine; +using Logger = Cryville.Common.Logger; namespace Cryville.Crtr { internal class DiscordController : MonoBehaviour { @@ -16,22 +17,31 @@ namespace Cryville.Crtr { void Start() { Instance = this; launchTime = (long)(DateTime.UtcNow - DateTime.UnixEpoch).TotalSeconds; - dc = new Discord.Discord(CLIENT_ID, (UInt64)CreateFlags.Default); - am = dc.GetActivityManager(); - SetIdle(); + try { + dc = new Discord.Discord(CLIENT_ID, (UInt64)CreateFlags.NoRequireDiscord); + 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() { + if (dc == null) return; dc.RunCallbacks(); } void OnApplicationQuit() { + if (dc == null) return; dc.Dispose(); } void Callback(Result result) { } public void SetIdle() { + if (dc == null) return; am.UpdateActivity(new Activity { State = "Idle", Instance = false, @@ -40,6 +50,7 @@ namespace Cryville.Crtr { } public void SetPlaying(string detail, double? duration) { + if (dc == null) return; long now = (long)(DateTime.UtcNow - DateTime.UnixEpoch).TotalSeconds; am.UpdateActivity(new Activity { State = "Playing a chart",