From 16aa2cfd621d6b9a6e4fcdc9323afc18891ea7d5 Mon Sep 17 00:00:00 2001 From: Thomas Guillemard Date: Mon, 19 Aug 2019 22:28:01 +0200 Subject: [PATCH] Discord Presence: Fix a crash when no valid program is loaded (#741) * Discord Presence: Fix a crash when no valid program is loaded --- Ryujinx/Program.cs | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/Ryujinx/Program.cs b/Ryujinx/Program.cs index ac6682903a..d0518441b8 100644 --- a/Ryujinx/Program.cs +++ b/Ryujinx/Program.cs @@ -37,7 +37,7 @@ namespace Ryujinx AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; AppDomain.CurrentDomain.ProcessExit += CurrentDomain_ProcessExit; - if (device.System.State.DiscordIntegrationEnabled == true) + if (device.System.State.DiscordIntegrationEnabled) { DiscordClient = new DiscordRpcClient("568815339807309834"); DiscordPresence = new RichPresence @@ -108,15 +108,33 @@ namespace Ryujinx Logger.PrintWarning(LogClass.Application, "Please specify the folder with the NSOs/IStorage or a NSO/NRO."); } - if (device.System.State.DiscordIntegrationEnabled == true) + if (device.System.State.DiscordIntegrationEnabled) { if (File.ReadAllLines(Path.Combine(ApplicationDirectory, "RPsupported.dat")).Contains(device.System.TitleID)) { DiscordPresence.Assets.LargeImageKey = device.System.TitleID; } - DiscordPresence.Details = $"Playing {device.System.TitleName}"; - DiscordPresence.State = device.System.TitleID.ToUpper(); + string state = device.System.TitleID; + + if (state == null) + { + state = "Ryujinx"; + } + else + { + state = state.ToUpper(); + } + + string details = "Idling"; + + if (device.System.TitleName != null) + { + details = $"Playing {device.System.TitleName}"; + } + + DiscordPresence.Details = details; + DiscordPresence.State = state; DiscordPresence.Assets.LargeImageText = device.System.TitleName; DiscordPresence.Assets.SmallImageKey = "ryujinx"; DiscordPresence.Assets.SmallImageText = "Ryujinx is an emulator for the Nintendo Switch";