update to se 1.202.120
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user