瀏覽代碼

misc: chore: Rewrite play report checker to use a simple loop instead of Gommon Optionals
(I love how a class that's supposed to guard against null values entering your code still allows them thats so cool)

Evan Husted 1 年之前
父節點
當前提交
ea2287af03
共有 1 個文件被更改,包括 12 次插入12 次删除
  1. 12 12
      src/Ryujinx/DiscordIntegrationModule.cs

+ 12 - 12
src/Ryujinx/DiscordIntegrationModule.cs

@@ -132,18 +132,18 @@ namespace Ryujinx.Ava
             if (_discordPresencePlaying is null) return;
             if (!playReport.IsDictionary) return;
 
-            _playReportValues
-                .FindFirst(x => x.Key.EqualsIgnoreCase(TitleIDs.CurrentApplication.Value))
-                .Convert(x => x.Value)
-                .IfPresent(x =>
-                {
-                    if (!playReport.AsDictionary().TryGetValue(x.ReportKey, out MessagePackObject valuePackObject))
-                        return;
-
-                    _discordPresencePlaying.Details = x.Formatter(valuePackObject.ToObject());
-                    UpdatePlayingState();
-                    Logger.Info?.Print(LogClass.UI, "Updated Discord RPC based on a supported play report.");
-                });
+            foreach ((string titleId, (string reportKey, Func<object, string> formatter)) in _playReportValues)
+            {
+                if (!TitleIDs.CurrentApplication.Value.Value.EqualsIgnoreCase(titleId))
+                    continue;
+                
+                if (!playReport.AsDictionary().TryGetValue(reportKey, out MessagePackObject valuePackObject))
+                    return;
+
+                _discordPresencePlaying.Details = formatter(valuePackObject.ToObject());
+                UpdatePlayingState();
+                Logger.Info?.Print(LogClass.UI, "Updated Discord RPC based on a supported play report.");
+            }
         }
 
         // title ID -> Play Report key & value formatter