Просмотр исходного кода

Discord Presence: Fix a crash when no valid program is loaded (#741)

* Discord Presence: Fix a crash when no valid program is loaded
Thomas Guillemard 6 лет назад
Родитель
Сommit
16aa2cfd62
1 измененных файлов с 22 добавлено и 4 удалено
  1. 22 4
      Ryujinx/Program.cs

+ 22 - 4
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";