update to se 1.202.120

This commit is contained in:
zznty
2023-06-13 22:47:03 +07:00
parent 3c6b79dc26
commit 856e7dce59
5 changed files with 20 additions and 18 deletions

View File

@@ -4,6 +4,7 @@ using HarmonyLib;
using Sandbox.Engine.Networking;
using Steamworks;
using VRage.Game;
using VRage.GameServices;
using VRage.Utils;
using Parallel = ParallelTasks.Parallel;
@@ -11,7 +12,7 @@ namespace PluginLoader;
public static class SteamAPI
{
private static MethodInfo DownloadModsBlocking;
private static MethodInfo? _downloadModsBlocking;
public static bool IsSubscribed(ulong id)
{
@@ -26,12 +27,13 @@ public static class SteamAPI
public static void Update(IEnumerable<ulong> ids)
{
if (!ids.Any())
var enumerable = ids as ulong[] ?? ids.ToArray();
if (!enumerable.Any())
return;
var modItems =
new List<MyObjectBuilder_Checkpoint.ModItem>(
ids.Select(x => new MyObjectBuilder_Checkpoint.ModItem(x, "Steam")));
enumerable.Select(x => new MyObjectBuilder_Checkpoint.ModItem(x, "Steam")));
LogFile.WriteLine($"Updating {modItems.Count} workshop items");
// Source: MyWorkshop.DownloadWorldModsBlocking
@@ -43,10 +45,10 @@ public static class SteamAPI
Thread.Sleep(10);
}
if (!result.Success)
if (result.Result is not MyGameServiceCallResult.OK)
{
var exceptions = task.Exceptions;
if (exceptions != null && exceptions.Length > 0)
if (exceptions is { Length: > 0 })
{
var sb = new StringBuilder();
sb.AppendLine("An error occurred while updating workshop items:");
@@ -69,13 +71,13 @@ public static class SteamAPI
var list = new List<WorkshopId>(mods.Select(x => new WorkshopId(x.PublishedFileId, x.PublishedServiceName)));
if (DownloadModsBlocking == null)
DownloadModsBlocking = AccessTools.Method(typeof(MyWorkshop), "DownloadModsBlocking");
if (_downloadModsBlocking == null)
_downloadModsBlocking = AccessTools.Method(typeof(MyWorkshop), "DownloadModsBlocking");
var resultData = (MyWorkshop.ResultData)DownloadModsBlocking.Invoke(mods, new object[]
var resultData = (MyWorkshop.ResultData)_downloadModsBlocking.Invoke(mods, new object[]
{
mods, new MyWorkshop.ResultData { Success = true }, list, new MyWorkshop.CancelToken()
});
mods, new MyWorkshop.ResultData { Result = MyGameServiceCallResult.OK }, list, new MyWorkshop.CancelToken()
})!;
MyLog.Default.DecreaseIndent();
return resultData;