Compare commits

...

12 Commits

Author SHA1 Message Date
Bishbash777
5804165d2b 205 fixes. (#590)
All checks were successful
Release / Get Version (push) Successful in 7s
Release / Build and Publish Nuget (push) Successful in 2m33s
Release / Build and Publish Package (push) Successful in 3m9s
(cherry picked from commit e41a26dbd2fb966b21757fa0248f6b4a4e716aad)
2024-10-15 01:18:02 +07:00
zznty
1960d2a0de fix world path being truncated if missing trailing slash
Some checks failed
Release / Get Version (push) Failing after 1s
Release / Build and Publish Nuget (push) Has been skipped
Release / Build and Publish Package (push) Has been skipped
2024-10-14 23:20:49 +07:00
zznty
0c53b2f1d3 add RegisterAuxAssembly for compat with loader wrapper
All checks were successful
Release / Get Version (push) Successful in 8s
Release / Build and Publish Nuget (push) Successful in 1m51s
Release / Build and Publish Package (push) Successful in 13m54s
2024-10-14 18:18:21 +07:00
zznty
b6e88b359f fix assembly rewriter stripping assembly resources
All checks were successful
Release / Get Version (push) Successful in 11s
Release / Build and Publish Nuget (push) Successful in 2m14s
Release / Build and Publish Package (push) Successful in 19m29s
2024-10-14 00:15:05 +07:00
zznty
b60100171d fix assembly rewriter paths on publish
All checks were successful
Release / Get Version (push) Successful in 10s
Release / Build and Publish Nuget (push) Successful in 8m54s
Release / Build and Publish Package (push) Successful in 17m25s
2024-10-13 22:46:22 +07:00
zznty
65e2f342a3 fix exception when destruction occurs before game has been initialized
All checks were successful
Release / Get Version (push) Successful in 15s
Release / Build and Publish Nuget (push) Successful in 2m21s
Release / Build and Publish Package (push) Successful in 2m51s
2024-10-13 22:29:05 +07:00
zznty
6a695f2abf fix backwards compat with some plugins 2024-10-13 22:26:09 +07:00
zznty
9289ab8003 fix compiler paths on publish 2024-10-13 22:17:07 +07:00
zznty
f1ea1930f7 move torch to official harmony for better compatibility
All checks were successful
Release / Get Version (push) Successful in 9s
Release / Build and Publish Nuget (push) Successful in 1m36s
Release / Build and Publish Package (push) Successful in 2m1s
2024-08-26 15:38:40 +07:00
zznty
fa88faffa2 add torch dockerfile 2024-08-26 15:38:19 +07:00
zznty
a7ba540fb1 remove protobuf dependency
All checks were successful
Release / Get Version (push) Successful in 9s
Release / Build and Publish Nuget (push) Successful in 1m29s
Release / Build and Publish Package (push) Successful in 2m6s
2024-08-25 22:21:11 +07:00
zznty
365fcfd2ef fix multiplayer manager patch
All checks were successful
Release / Get Version (push) Successful in 9s
Release / Build and Publish Nuget (push) Successful in 1m40s
Release / Build and Publish Package (push) Successful in 2m1s
2024-08-25 17:13:06 +07:00
17 changed files with 317 additions and 271 deletions

25
.dockerignore Normal file
View File

@@ -0,0 +1,25 @@
**/.dockerignore
**/.env
**/.git
**/.gitignore
**/.project
**/.settings
**/.toolstarget
**/.vs
**/.vscode
**/.idea
**/*.*proj.user
**/*.dbmdl
**/*.jfm
**/azds.yaml
**/bin
**/charts
**/docker-compose*
**/Dockerfile*
**/node_modules
**/npm-debug.log
**/obj
**/secrets.dev.yaml
**/values.dev.yaml
LICENSE
README.md

38
Dockerfile Normal file
View File

@@ -0,0 +1,38 @@
FROM mcr.microsoft.com/dotnet/runtime:8.0-windowsservercore-ltsc2022 AS base
USER $APP_UID
WORKDIR /app
FROM mcr.microsoft.com/dotnet/sdk:8.0-windowsservercore-ltsc2022 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["NuGet.config", "."]
COPY ["Directory.Build.props", "."]
COPY ["Torch.API/Torch.API.csproj", "Torch.API/"]
COPY ["Torch/Torch.csproj", "Torch/"]
COPY ["Torch.Server/Torch.Server.csproj", "Torch.Server/"]
RUN dotnet restore "Torch.Server/Torch.Server.csproj" --locked-mode
COPY . .
WORKDIR "/src/Torch.Server"
RUN dotnet build "Torch.Server.csproj" -c %BUILD_CONFIGURATION% -o /app/build
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "Torch.Server.csproj" -c %BUILD_CONFIGURATION% -o /app/publish --no-self-contained /p:UseAppHost=false
FROM mcr.microsoft.com/windows/servercore:ltsc2022
ADD ["https://aka.ms/dotnet/8.0/windowsdesktop-runtime-win-x64.exe", "installer.exe"]
RUN installer.exe /install /quiet /norestart && del installer.exe
ADD ["https://github.com/abbodi1406/vcredist/releases/latest/download/VisualCppRedist_AIO_x86_x64.exe", "vc.exe"]
USER ContainerAdministrator
RUN vc.exe /ai39 && del vc.exe
USER ContainerUser
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Torch.Server.dll"]

View File

@@ -1,4 +1,5 @@
using System; using System;
using System.ComponentModel;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
@@ -140,6 +141,22 @@ namespace Torch.API
event Action<ITorchServer> Initialized; event Action<ITorchServer> Initialized;
TimeSpan ElapsedPlayTime { get; set; } TimeSpan ElapsedPlayTime { get; set; }
#region Backwards compat
/// <summary>
/// Path of the dedicated instance folder.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
new string InstancePath => ((ITorchBase)this).InstancePath;
/// <summary>
/// Name of the dedicated instance.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)]
new string InstanceName => ((ITorchBase)this).InstanceName;
#endregion
} }
/// <summary> /// <summary>

View File

@@ -18,7 +18,7 @@
<PackageReference Include="NuGet.Commands" Version="6.11.0" /> <PackageReference Include="NuGet.Commands" Version="6.11.0" />
<PackageReference Include="NuGet.DependencyResolver.Core" Version="6.11.0" /> <PackageReference Include="NuGet.DependencyResolver.Core" Version="6.11.0" />
<PackageReference Include="SemanticVersioning" Version="2.0.2" /> <PackageReference Include="SemanticVersioning" Version="2.0.2" />
<PackageReference Include="SpaceEngineersDedicated.ReferenceAssemblies" Version="1.204.18"> <PackageReference Include="SpaceEngineersDedicated.ReferenceAssemblies" Version="1.*">
<ExcludeAssets>runtime</ExcludeAssets> <ExcludeAssets>runtime</ExcludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="System.Linq.Async" Version="6.0.1" /> <PackageReference Include="System.Linq.Async" Version="6.0.1" />

View File

@@ -54,9 +54,9 @@
}, },
"SpaceEngineersDedicated.ReferenceAssemblies": { "SpaceEngineersDedicated.ReferenceAssemblies": {
"type": "Direct", "type": "Direct",
"requested": "[1.204.18, )", "requested": "[1.*, )",
"resolved": "1.204.18", "resolved": "1.205.23",
"contentHash": "GT7/9CBMx4jjor41zLOOl87YYM/JdJD8xp9ccXyuhP2oUaz25H3ZmCQuGeAuZNENKru1a/7hZrId4PwlMDGoew==", "contentHash": "J7mF5hY39PzzCZps6vhIRzKiq8vD6Af9TgumTJR068vjEi+BzyeEFhqX+cl2Dd1ngOmsBtGWc5m+vxgTfs5YuA==",
"dependencies": { "dependencies": {
"SharpDX": "4.2.0-keen-cringe", "SharpDX": "4.2.0-keen-cringe",
"protobuf-net": "1.0.0" "protobuf-net": "1.0.0"

View File

@@ -56,19 +56,20 @@
"System.Text.Json": "5.0.1" "System.Text.Json": "5.0.1"
} }
}, },
"HarmonyX": {
"type": "Transitive",
"resolved": "2.13.0-torch",
"contentHash": "ehrCDqzHrNNUlNnRgIys2npuQqbGZ378lixy4pg8/2yQMejctX/p448XTnGGfrCTx6DaHfgQv9Da89JALJgeWA==",
"dependencies": {
"MonoMod.RuntimeDetour": "25.1.2"
}
},
"JetBrains.Annotations": { "JetBrains.Annotations": {
"type": "Transitive", "type": "Transitive",
"resolved": "2024.2.0", "resolved": "2024.2.0",
"contentHash": "GNnqCFW/163p1fOehKx0CnAqjmpPrUSqrgfHM6qca+P+RN39C9rhlfZHQpJhxmQG/dkOYe/b3Z0P8b6Kv5m1qw==" "contentHash": "GNnqCFW/163p1fOehKx0CnAqjmpPrUSqrgfHM6qca+P+RN39C9rhlfZHQpJhxmQG/dkOYe/b3Z0P8b6Kv5m1qw=="
}, },
"Lib.Harmony.Thin": {
"type": "Transitive",
"resolved": "2.3.3-torch",
"contentHash": "djQtMUpURRgP+Ytf1EgQwu4XnJL3J3bz5kyTVcRDNb632N62/A4CbduG96CUsKhL944yGNAJnLX3zfWldPYOTw==",
"dependencies": {
"MonoMod.Core": "1.1.0",
"System.Text.Json": "8.0.1"
}
},
"MahApps.Metro": { "MahApps.Metro": {
"type": "Transitive", "type": "Transitive",
"resolved": "2.4.10", "resolved": "2.4.10",
@@ -308,48 +309,36 @@
}, },
"MonoMod.Backports": { "MonoMod.Backports": {
"type": "Transitive", "type": "Transitive",
"resolved": "1.1.2", "resolved": "1.1.0",
"contentHash": "baYlNy8n8kmaNhNvqmZ/dIPOeO1r9//dG1i2WbunMWtWZ2EKtIgmXaS+ZzphzTsikkGnoD4Jwr5g0TVdpDjgpw==", "contentHash": "GUAjCrCZEddqHKHFA7Lh61PgTzoKY7gfBShFe0hQe0p8iynHhBK3TWGyRi+QIw/PGfaRPwx6c33CPGFURBVM6g==",
"dependencies": { "dependencies": {
"MonoMod.ILHelpers": "1.1.0" "MonoMod.ILHelpers": "1.0.1"
} }
}, },
"MonoMod.Core": { "MonoMod.Core": {
"type": "Transitive", "type": "Transitive",
"resolved": "1.1.2", "resolved": "1.1.0",
"contentHash": "6Yvjx2W0QFnPNyBjCKnrhYimskBE2MUKEMJz0t+2fJO67Jt4Lmams6BdZPTVudQykmEWTh5c2fwEfAMxKQtC4Q==", "contentHash": "Ks8RntZGVcktr2QF/AovTEbuOkrgXz6omjrvT5LRveOIQJuy+IFuEQPBVWu+cSKVIoZD5XkpRFvlVrItgPIrXw==",
"dependencies": { "dependencies": {
"Mono.Cecil": "0.11.5", "Mono.Cecil": "0.11.5",
"MonoMod.Backports": "1.1.2", "MonoMod.Backports": "1.1.0",
"MonoMod.ILHelpers": "1.1.0", "MonoMod.ILHelpers": "1.0.1",
"MonoMod.Utils": "25.0.6" "MonoMod.Utils": "25.0.4"
} }
}, },
"MonoMod.ILHelpers": { "MonoMod.ILHelpers": {
"type": "Transitive", "type": "Transitive",
"resolved": "1.1.0", "resolved": "1.0.1",
"contentHash": "L2FWjhTrv7tcIxshfZ+M3OcaNr4cNw0IwiVZEgwqRnZ5QAN3+RrNJ8ZwCzwXUWyPDqooJxMcjjg8PsSYUiNBjQ==" "contentHash": "6djj/Hz+/eTomo1H/sJEJNxBz2ZdhXjvH0MOmyU2xRtbjaIfBQuyVV0zNUbJhMY/8qoWrz7WXfskfFhdaY0afA=="
},
"MonoMod.RuntimeDetour": {
"type": "Transitive",
"resolved": "25.1.2",
"contentHash": "eNf/V6FqS5ErkvdA+vyVM5d7SFeKCkltn5XhT2GrjJ2xec6BG3E7lk/52qVIqDSsMrU+M6dTM8W+fl4IxKQWHw==",
"dependencies": {
"Mono.Cecil": "0.11.5",
"MonoMod.Backports": "1.1.2",
"MonoMod.Core": "1.1.2",
"MonoMod.ILHelpers": "1.1.0",
"MonoMod.Utils": "25.0.6"
}
}, },
"MonoMod.Utils": { "MonoMod.Utils": {
"type": "Transitive", "type": "Transitive",
"resolved": "25.0.6", "resolved": "25.0.4",
"contentHash": "FAGqXHT4ENtg3UTA5PKBgLYcRP8w+u4zMUN2M73yfb0aYLIpCTVOcTfO1iTM2Jse0ukBxjd+ovO5KnCYt+Z0ag==", "contentHash": "cB94MaZtFD9u4clYEFTwM4jGXnJnzXsxYF3yBpMZKHhXOas66tMF2frbdYte023i0MH4C5iRJbDjxHmA4x5VgA==",
"dependencies": { "dependencies": {
"Mono.Cecil": "0.11.5", "Mono.Cecil": "0.11.5",
"MonoMod.Backports": "1.1.2", "MonoMod.Backports": "1.1.0",
"MonoMod.ILHelpers": "1.1.0" "MonoMod.ILHelpers": "1.0.1"
} }
}, },
"Newtonsoft.Json": { "Newtonsoft.Json": {
@@ -456,19 +445,8 @@
}, },
"protobuf-net": { "protobuf-net": {
"type": "Transitive", "type": "Transitive",
"resolved": "3.2.30", "resolved": "1.0.0",
"contentHash": "C/UTlmxEJHAHpqm8xQK1UyJKaIynVCSNG4mVrbLgnZ7ccH28nN49O8iMJvKEodTgVbnimvy+3mIiAdW6mATwnw==", "contentHash": "kTGOK0E87473sOImOjgZOnz3kTC2aMLffoRWQLYNuBLJnwNNmjanF9IkevZ9Q7yYLeABQfcF3BpeepuMntMVNw=="
"dependencies": {
"protobuf-net.Core": "3.2.30"
}
},
"protobuf-net.Core": {
"type": "Transitive",
"resolved": "3.2.30",
"contentHash": "v2ZxxYrz+X212ukSx+uqkLuPu414bvmSAnTyf+PBUKR9ENJxO4P/csorA/27456MCp1JNoMssDj/f91RDiwBfQ==",
"dependencies": {
"System.Collections.Immutable": "7.0.0"
}
}, },
"SemanticVersioning": { "SemanticVersioning": {
"type": "Transitive", "type": "Transitive",
@@ -490,8 +468,8 @@
}, },
"SpaceEngineersDedicated.ReferenceAssemblies": { "SpaceEngineersDedicated.ReferenceAssemblies": {
"type": "Transitive", "type": "Transitive",
"resolved": "1.204.18", "resolved": "1.205.23",
"contentHash": "GT7/9CBMx4jjor41zLOOl87YYM/JdJD8xp9ccXyuhP2oUaz25H3ZmCQuGeAuZNENKru1a/7hZrId4PwlMDGoew==", "contentHash": "J7mF5hY39PzzCZps6vhIRzKiq8vD6Af9TgumTJR068vjEi+BzyeEFhqX+cl2Dd1ngOmsBtGWc5m+vxgTfs5YuA==",
"dependencies": { "dependencies": {
"SharpDX": "4.2.0-keen-cringe", "SharpDX": "4.2.0-keen-cringe",
"protobuf-net": "1.0.0" "protobuf-net": "1.0.0"
@@ -567,10 +545,18 @@
"System.Security.Cryptography.Pkcs": "8.0.0" "System.Security.Cryptography.Pkcs": "8.0.0"
} }
}, },
"System.Text.Encodings.Web": {
"type": "Transitive",
"resolved": "8.0.0",
"contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ=="
},
"System.Text.Json": { "System.Text.Json": {
"type": "Transitive", "type": "Transitive",
"resolved": "5.0.1", "resolved": "8.0.1",
"contentHash": "/UM3UK1dXKl8Ybysg/21gM4S8DJgkR+yLU8JwqCVbuNqQNImelntgYFAN5QxR8sJJ1kMx//hOUdf0lltosi8cQ==" "contentHash": "7AWk2za1hSEJBppe/Lg+uDcam2TrDqwIKa9XcPssSwyjC2xa39EKEGul3CO5RWNF+hMuZG4zlBDrvhBdDTg4lg==",
"dependencies": {
"System.Text.Encodings.Web": "8.0.0"
}
}, },
"Torch.SixLabors.ImageSharp": { "Torch.SixLabors.ImageSharp": {
"type": "Transitive", "type": "Transitive",
@@ -625,15 +611,14 @@
"type": "Project", "type": "Project",
"dependencies": { "dependencies": {
"ControlzEx": "[5.0.2, )", "ControlzEx": "[5.0.2, )",
"HarmonyX": "[2.13.0-torch, )", "Lib.Harmony.Thin": "[2.3.3-torch, )",
"MahApps.Metro": "[2.4.10, )", "MahApps.Metro": "[2.4.10, )",
"Microsoft.CodeAnalysis.CSharp": "[4.11.0, )", "Microsoft.CodeAnalysis.CSharp": "[4.11.0, )",
"Microsoft.CodeAnalysis.Common": "[4.11.0, )", "Microsoft.CodeAnalysis.Common": "[4.11.0, )",
"NLog": "[5.3.3, )", "NLog": "[5.3.3, )",
"System.ComponentModel.Annotations": "[5.0.0, )", "System.ComponentModel.Annotations": "[5.0.0, )",
"Torch.API": "[1.0.0, )", "Torch.API": "[1.0.0, )",
"Torch.SixLabors.ImageSharp": "[1.0.0-beta6, )", "Torch.SixLabors.ImageSharp": "[1.0.0-beta6, )"
"protobuf-net": "[3.2.30, )"
} }
}, },
"torch.api": { "torch.api": {
@@ -645,7 +630,7 @@
"NuGet.Commands": "[6.11.0, )", "NuGet.Commands": "[6.11.0, )",
"NuGet.DependencyResolver.Core": "[6.11.0, )", "NuGet.DependencyResolver.Core": "[6.11.0, )",
"SemanticVersioning": "[2.0.2, )", "SemanticVersioning": "[2.0.2, )",
"SpaceEngineersDedicated.ReferenceAssemblies": "[1.204.18, )", "SpaceEngineersDedicated.ReferenceAssemblies": "[1.*, )",
"System.Linq.Async": "[6.0.1, )" "System.Linq.Async": "[6.0.1, )"
} }
}, },
@@ -703,6 +688,11 @@
"type": "Transitive", "type": "Transitive",
"resolved": "4.4.0", "resolved": "4.4.0",
"contentHash": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog==" "contentHash": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog=="
},
"System.Text.Encodings.Web": {
"type": "Transitive",
"resolved": "8.0.0",
"contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ=="
} }
} }
} }

View File

@@ -134,7 +134,7 @@ namespace Torch.Server.Managers
worldPath = DedicatedConfig.Worlds.First().WorldPath; worldPath = DedicatedConfig.Worlds.First().WorldPath;
else else
// make sure we won't end up with a file path when we expect it to be a directory // make sure we won't end up with a file path when we expect it to be a directory
worldPath = Path.EndsInDirectorySeparator(worldPath) ? worldPath : Path.GetDirectoryName(worldPath); worldPath = worldPath.EndsWith(".sbc") ? Path.GetDirectoryName(worldPath) : worldPath;
SelectWorld(worldPath, false); SelectWorld(worldPath, false);
@@ -235,7 +235,7 @@ namespace Torch.Server.Managers
try try
{ {
MyObjectBuilderSerializer.DeserializeXML(sandboxPath, out MyObjectBuilder_Checkpoint checkpoint, out ulong sizeInBytes); MyObjectBuilderSerializerKeen.DeserializeXML(sandboxPath, out MyObjectBuilder_Checkpoint checkpoint, out ulong sizeInBytes);
if (checkpoint == null) if (checkpoint == null)
{ {
Log.Error($"Failed to load {DedicatedConfig.LoadWorld}, checkpoint null ({sizeInBytes} bytes, instance {Torch.Config.InstancePath})"); Log.Error($"Failed to load {DedicatedConfig.LoadWorld}, checkpoint null ({sizeInBytes} bytes, instance {Torch.Config.InstancePath})");
@@ -368,14 +368,14 @@ namespace Torch.Server.Managers
public void LoadSandbox() public void LoadSandbox()
{ {
if (!MyObjectBuilderSerializer.DeserializeXML(_checkpointPath, out MyObjectBuilder_Checkpoint checkpoint)) if (!MyObjectBuilderSerializerKeen.DeserializeXML(_checkpointPath, out MyObjectBuilder_Checkpoint checkpoint))
throw new SerializationException("Error reading checkpoint, see keen log for details"); throw new SerializationException("Error reading checkpoint, see keen log for details");
Checkpoint = new CheckpointViewModel(checkpoint); Checkpoint = new CheckpointViewModel(checkpoint);
// migrate old saves // migrate old saves
if (File.Exists(_worldConfigPath)) if (File.Exists(_worldConfigPath))
{ {
if (!MyObjectBuilderSerializer.DeserializeXML(_worldConfigPath, out MyObjectBuilder_WorldConfiguration worldConfig)) if (!MyObjectBuilderSerializerKeen.DeserializeXML(_worldConfigPath, out MyObjectBuilder_WorldConfiguration worldConfig))
throw new SerializationException("Error reading settings, see keen log for details"); throw new SerializationException("Error reading settings, see keen log for details");
WorldConfiguration = new WorldConfigurationViewModel(worldConfig); WorldConfiguration = new WorldConfigurationViewModel(worldConfig);
} }

View File

@@ -10,7 +10,7 @@ namespace Torch.Server.Managers
public static void Patch(PatchContext ctx) public static void Patch(PatchContext ctx)
{ {
ctx.GetPattern(typeof(MyDedicatedServerBase).GetMethod(nameof(MyDedicatedServerBase.BanClient))).Prefixes.Add(typeof(MultiplayerManagerDedicatedPatchShim).GetMethod(nameof(BanPrefix))); ctx.GetPattern(typeof(MyDedicatedServerBase).GetMethod(nameof(MyDedicatedServerBase.BanClient))).Prefixes.Add(typeof(MultiplayerManagerDedicatedPatchShim).GetMethod(nameof(BanPrefix)));
ctx.GetPattern(typeof(MyDedicatedServerBase).GetMethod(nameof(MyDedicatedServerBase.KickClient))).Prefixes.Add(typeof(MultiplayerManagerDedicatedPatchShim).GetMethod(nameof(KickPrefix))); ctx.GetPattern(typeof(MyMultiplayerServerBase).GetMethod(nameof(MyMultiplayerServerBase.KickClient))).Prefixes.Add(typeof(MultiplayerManagerDedicatedPatchShim).GetMethod(nameof(KickPrefix)));
} }
public static void BanPrefix(ulong userId, bool banned) public static void BanPrefix(ulong userId, bool banned)

View File

@@ -157,19 +157,20 @@
"resolved": "6.6.4", "resolved": "6.6.4",
"contentHash": "vLZS+oa+ndUHYPlx/8n9bBTT3dHkCF0riml4paKq4D663+cZd47x1uagQo32D/gKFZ/sfmV1oqKaLmH0elxq4A==" "contentHash": "vLZS+oa+ndUHYPlx/8n9bBTT3dHkCF0riml4paKq4D663+cZd47x1uagQo32D/gKFZ/sfmV1oqKaLmH0elxq4A=="
}, },
"HarmonyX": {
"type": "Transitive",
"resolved": "2.13.0-torch",
"contentHash": "ehrCDqzHrNNUlNnRgIys2npuQqbGZ378lixy4pg8/2yQMejctX/p448XTnGGfrCTx6DaHfgQv9Da89JALJgeWA==",
"dependencies": {
"MonoMod.RuntimeDetour": "25.1.2"
}
},
"JetBrains.Annotations": { "JetBrains.Annotations": {
"type": "Transitive", "type": "Transitive",
"resolved": "2024.2.0", "resolved": "2024.2.0",
"contentHash": "GNnqCFW/163p1fOehKx0CnAqjmpPrUSqrgfHM6qca+P+RN39C9rhlfZHQpJhxmQG/dkOYe/b3Z0P8b6Kv5m1qw==" "contentHash": "GNnqCFW/163p1fOehKx0CnAqjmpPrUSqrgfHM6qca+P+RN39C9rhlfZHQpJhxmQG/dkOYe/b3Z0P8b6Kv5m1qw=="
}, },
"Lib.Harmony.Thin": {
"type": "Transitive",
"resolved": "2.3.3-torch",
"contentHash": "djQtMUpURRgP+Ytf1EgQwu4XnJL3J3bz5kyTVcRDNb632N62/A4CbduG96CUsKhL944yGNAJnLX3zfWldPYOTw==",
"dependencies": {
"MonoMod.Core": "1.1.0",
"System.Text.Json": "8.0.1"
}
},
"MdXaml.Plugins": { "MdXaml.Plugins": {
"type": "Transitive", "type": "Transitive",
"resolved": "1.27.0", "resolved": "1.27.0",
@@ -317,48 +318,36 @@
}, },
"MonoMod.Backports": { "MonoMod.Backports": {
"type": "Transitive", "type": "Transitive",
"resolved": "1.1.2", "resolved": "1.1.0",
"contentHash": "baYlNy8n8kmaNhNvqmZ/dIPOeO1r9//dG1i2WbunMWtWZ2EKtIgmXaS+ZzphzTsikkGnoD4Jwr5g0TVdpDjgpw==", "contentHash": "GUAjCrCZEddqHKHFA7Lh61PgTzoKY7gfBShFe0hQe0p8iynHhBK3TWGyRi+QIw/PGfaRPwx6c33CPGFURBVM6g==",
"dependencies": { "dependencies": {
"MonoMod.ILHelpers": "1.1.0" "MonoMod.ILHelpers": "1.0.1"
} }
}, },
"MonoMod.Core": { "MonoMod.Core": {
"type": "Transitive", "type": "Transitive",
"resolved": "1.1.2", "resolved": "1.1.0",
"contentHash": "6Yvjx2W0QFnPNyBjCKnrhYimskBE2MUKEMJz0t+2fJO67Jt4Lmams6BdZPTVudQykmEWTh5c2fwEfAMxKQtC4Q==", "contentHash": "Ks8RntZGVcktr2QF/AovTEbuOkrgXz6omjrvT5LRveOIQJuy+IFuEQPBVWu+cSKVIoZD5XkpRFvlVrItgPIrXw==",
"dependencies": { "dependencies": {
"Mono.Cecil": "0.11.5", "Mono.Cecil": "0.11.5",
"MonoMod.Backports": "1.1.2", "MonoMod.Backports": "1.1.0",
"MonoMod.ILHelpers": "1.1.0", "MonoMod.ILHelpers": "1.0.1",
"MonoMod.Utils": "25.0.6" "MonoMod.Utils": "25.0.4"
} }
}, },
"MonoMod.ILHelpers": { "MonoMod.ILHelpers": {
"type": "Transitive", "type": "Transitive",
"resolved": "1.1.0", "resolved": "1.0.1",
"contentHash": "L2FWjhTrv7tcIxshfZ+M3OcaNr4cNw0IwiVZEgwqRnZ5QAN3+RrNJ8ZwCzwXUWyPDqooJxMcjjg8PsSYUiNBjQ==" "contentHash": "6djj/Hz+/eTomo1H/sJEJNxBz2ZdhXjvH0MOmyU2xRtbjaIfBQuyVV0zNUbJhMY/8qoWrz7WXfskfFhdaY0afA=="
},
"MonoMod.RuntimeDetour": {
"type": "Transitive",
"resolved": "25.1.2",
"contentHash": "eNf/V6FqS5ErkvdA+vyVM5d7SFeKCkltn5XhT2GrjJ2xec6BG3E7lk/52qVIqDSsMrU+M6dTM8W+fl4IxKQWHw==",
"dependencies": {
"Mono.Cecil": "0.11.5",
"MonoMod.Backports": "1.1.2",
"MonoMod.Core": "1.1.2",
"MonoMod.ILHelpers": "1.1.0",
"MonoMod.Utils": "25.0.6"
}
}, },
"MonoMod.Utils": { "MonoMod.Utils": {
"type": "Transitive", "type": "Transitive",
"resolved": "25.0.6", "resolved": "25.0.4",
"contentHash": "FAGqXHT4ENtg3UTA5PKBgLYcRP8w+u4zMUN2M73yfb0aYLIpCTVOcTfO1iTM2Jse0ukBxjd+ovO5KnCYt+Z0ag==", "contentHash": "cB94MaZtFD9u4clYEFTwM4jGXnJnzXsxYF3yBpMZKHhXOas66tMF2frbdYte023i0MH4C5iRJbDjxHmA4x5VgA==",
"dependencies": { "dependencies": {
"Mono.Cecil": "0.11.5", "Mono.Cecil": "0.11.5",
"MonoMod.Backports": "1.1.2", "MonoMod.Backports": "1.1.0",
"MonoMod.ILHelpers": "1.1.0" "MonoMod.ILHelpers": "1.0.1"
} }
}, },
"Newtonsoft.Json": { "Newtonsoft.Json": {
@@ -460,19 +449,8 @@
}, },
"protobuf-net": { "protobuf-net": {
"type": "Transitive", "type": "Transitive",
"resolved": "3.2.30", "resolved": "1.0.0",
"contentHash": "C/UTlmxEJHAHpqm8xQK1UyJKaIynVCSNG4mVrbLgnZ7ccH28nN49O8iMJvKEodTgVbnimvy+3mIiAdW6mATwnw==", "contentHash": "kTGOK0E87473sOImOjgZOnz3kTC2aMLffoRWQLYNuBLJnwNNmjanF9IkevZ9Q7yYLeABQfcF3BpeepuMntMVNw=="
"dependencies": {
"protobuf-net.Core": "3.2.30"
}
},
"protobuf-net.Core": {
"type": "Transitive",
"resolved": "3.2.30",
"contentHash": "v2ZxxYrz+X212ukSx+uqkLuPu414bvmSAnTyf+PBUKR9ENJxO4P/csorA/27456MCp1JNoMssDj/f91RDiwBfQ==",
"dependencies": {
"System.Collections.Immutable": "7.0.0"
}
}, },
"SemanticVersioning": { "SemanticVersioning": {
"type": "Transitive", "type": "Transitive",
@@ -494,8 +472,8 @@
}, },
"SpaceEngineersDedicated.ReferenceAssemblies": { "SpaceEngineersDedicated.ReferenceAssemblies": {
"type": "Transitive", "type": "Transitive",
"resolved": "1.204.18", "resolved": "1.205.23",
"contentHash": "GT7/9CBMx4jjor41zLOOl87YYM/JdJD8xp9ccXyuhP2oUaz25H3ZmCQuGeAuZNENKru1a/7hZrId4PwlMDGoew==", "contentHash": "J7mF5hY39PzzCZps6vhIRzKiq8vD6Af9TgumTJR068vjEi+BzyeEFhqX+cl2Dd1ngOmsBtGWc5m+vxgTfs5YuA==",
"dependencies": { "dependencies": {
"SharpDX": "4.2.0-keen-cringe", "SharpDX": "4.2.0-keen-cringe",
"protobuf-net": "1.0.0" "protobuf-net": "1.0.0"
@@ -558,10 +536,18 @@
"System.Security.Cryptography.Pkcs": "8.0.0" "System.Security.Cryptography.Pkcs": "8.0.0"
} }
}, },
"System.Text.Encodings.Web": {
"type": "Transitive",
"resolved": "8.0.0",
"contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ=="
},
"System.Text.Json": { "System.Text.Json": {
"type": "Transitive", "type": "Transitive",
"resolved": "5.0.1", "resolved": "8.0.1",
"contentHash": "/UM3UK1dXKl8Ybysg/21gM4S8DJgkR+yLU8JwqCVbuNqQNImelntgYFAN5QxR8sJJ1kMx//hOUdf0lltosi8cQ==" "contentHash": "7AWk2za1hSEJBppe/Lg+uDcam2TrDqwIKa9XcPssSwyjC2xa39EKEGul3CO5RWNF+hMuZG4zlBDrvhBdDTg4lg==",
"dependencies": {
"System.Text.Encodings.Web": "8.0.0"
}
}, },
"Torch.SixLabors.ImageSharp": { "Torch.SixLabors.ImageSharp": {
"type": "Transitive", "type": "Transitive",
@@ -576,15 +562,14 @@
"type": "Project", "type": "Project",
"dependencies": { "dependencies": {
"ControlzEx": "[5.0.2, )", "ControlzEx": "[5.0.2, )",
"HarmonyX": "[2.13.0-torch, )", "Lib.Harmony.Thin": "[2.3.3-torch, )",
"MahApps.Metro": "[2.4.10, )", "MahApps.Metro": "[2.4.10, )",
"Microsoft.CodeAnalysis.CSharp": "[4.11.0, )", "Microsoft.CodeAnalysis.CSharp": "[4.11.0, )",
"Microsoft.CodeAnalysis.Common": "[4.11.0, )", "Microsoft.CodeAnalysis.Common": "[4.11.0, )",
"NLog": "[5.3.3, )", "NLog": "[5.3.3, )",
"System.ComponentModel.Annotations": "[5.0.0, )", "System.ComponentModel.Annotations": "[5.0.0, )",
"Torch.API": "[1.0.0, )", "Torch.API": "[1.0.0, )",
"Torch.SixLabors.ImageSharp": "[1.0.0-beta6, )", "Torch.SixLabors.ImageSharp": "[1.0.0-beta6, )"
"protobuf-net": "[3.2.30, )"
} }
}, },
"torch.api": { "torch.api": {
@@ -596,7 +581,7 @@
"NuGet.Commands": "[6.11.0, )", "NuGet.Commands": "[6.11.0, )",
"NuGet.DependencyResolver.Core": "[6.11.0, )", "NuGet.DependencyResolver.Core": "[6.11.0, )",
"SemanticVersioning": "[2.0.2, )", "SemanticVersioning": "[2.0.2, )",
"SpaceEngineersDedicated.ReferenceAssemblies": "[1.204.18, )", "SpaceEngineersDedicated.ReferenceAssemblies": "[1.*, )",
"System.Linq.Async": "[6.0.1, )" "System.Linq.Async": "[6.0.1, )"
} }
} }
@@ -629,6 +614,11 @@
"type": "Transitive", "type": "Transitive",
"resolved": "4.4.0", "resolved": "4.4.0",
"contentHash": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog==" "contentHash": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog=="
},
"System.Text.Encodings.Web": {
"type": "Transitive",
"resolved": "8.0.0",
"contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ=="
} }
} }
} }

View File

@@ -38,19 +38,20 @@
"System.Text.Json": "5.0.1" "System.Text.Json": "5.0.1"
} }
}, },
"HarmonyX": {
"type": "Transitive",
"resolved": "2.13.0-torch",
"contentHash": "ehrCDqzHrNNUlNnRgIys2npuQqbGZ378lixy4pg8/2yQMejctX/p448XTnGGfrCTx6DaHfgQv9Da89JALJgeWA==",
"dependencies": {
"MonoMod.RuntimeDetour": "25.1.2"
}
},
"JetBrains.Annotations": { "JetBrains.Annotations": {
"type": "Transitive", "type": "Transitive",
"resolved": "2024.2.0", "resolved": "2024.2.0",
"contentHash": "GNnqCFW/163p1fOehKx0CnAqjmpPrUSqrgfHM6qca+P+RN39C9rhlfZHQpJhxmQG/dkOYe/b3Z0P8b6Kv5m1qw==" "contentHash": "GNnqCFW/163p1fOehKx0CnAqjmpPrUSqrgfHM6qca+P+RN39C9rhlfZHQpJhxmQG/dkOYe/b3Z0P8b6Kv5m1qw=="
}, },
"Lib.Harmony.Thin": {
"type": "Transitive",
"resolved": "2.3.3-torch",
"contentHash": "djQtMUpURRgP+Ytf1EgQwu4XnJL3J3bz5kyTVcRDNb632N62/A4CbduG96CUsKhL944yGNAJnLX3zfWldPYOTw==",
"dependencies": {
"MonoMod.Core": "1.1.0",
"System.Text.Json": "8.0.1"
}
},
"MahApps.Metro": { "MahApps.Metro": {
"type": "Transitive", "type": "Transitive",
"resolved": "2.4.10", "resolved": "2.4.10",
@@ -158,48 +159,36 @@
}, },
"MonoMod.Backports": { "MonoMod.Backports": {
"type": "Transitive", "type": "Transitive",
"resolved": "1.1.2", "resolved": "1.1.0",
"contentHash": "baYlNy8n8kmaNhNvqmZ/dIPOeO1r9//dG1i2WbunMWtWZ2EKtIgmXaS+ZzphzTsikkGnoD4Jwr5g0TVdpDjgpw==", "contentHash": "GUAjCrCZEddqHKHFA7Lh61PgTzoKY7gfBShFe0hQe0p8iynHhBK3TWGyRi+QIw/PGfaRPwx6c33CPGFURBVM6g==",
"dependencies": { "dependencies": {
"MonoMod.ILHelpers": "1.1.0" "MonoMod.ILHelpers": "1.0.1"
} }
}, },
"MonoMod.Core": { "MonoMod.Core": {
"type": "Transitive", "type": "Transitive",
"resolved": "1.1.2", "resolved": "1.1.0",
"contentHash": "6Yvjx2W0QFnPNyBjCKnrhYimskBE2MUKEMJz0t+2fJO67Jt4Lmams6BdZPTVudQykmEWTh5c2fwEfAMxKQtC4Q==", "contentHash": "Ks8RntZGVcktr2QF/AovTEbuOkrgXz6omjrvT5LRveOIQJuy+IFuEQPBVWu+cSKVIoZD5XkpRFvlVrItgPIrXw==",
"dependencies": { "dependencies": {
"Mono.Cecil": "0.11.5", "Mono.Cecil": "0.11.5",
"MonoMod.Backports": "1.1.2", "MonoMod.Backports": "1.1.0",
"MonoMod.ILHelpers": "1.1.0", "MonoMod.ILHelpers": "1.0.1",
"MonoMod.Utils": "25.0.6" "MonoMod.Utils": "25.0.4"
} }
}, },
"MonoMod.ILHelpers": { "MonoMod.ILHelpers": {
"type": "Transitive", "type": "Transitive",
"resolved": "1.1.0", "resolved": "1.0.1",
"contentHash": "L2FWjhTrv7tcIxshfZ+M3OcaNr4cNw0IwiVZEgwqRnZ5QAN3+RrNJ8ZwCzwXUWyPDqooJxMcjjg8PsSYUiNBjQ==" "contentHash": "6djj/Hz+/eTomo1H/sJEJNxBz2ZdhXjvH0MOmyU2xRtbjaIfBQuyVV0zNUbJhMY/8qoWrz7WXfskfFhdaY0afA=="
},
"MonoMod.RuntimeDetour": {
"type": "Transitive",
"resolved": "25.1.2",
"contentHash": "eNf/V6FqS5ErkvdA+vyVM5d7SFeKCkltn5XhT2GrjJ2xec6BG3E7lk/52qVIqDSsMrU+M6dTM8W+fl4IxKQWHw==",
"dependencies": {
"Mono.Cecil": "0.11.5",
"MonoMod.Backports": "1.1.2",
"MonoMod.Core": "1.1.2",
"MonoMod.ILHelpers": "1.1.0",
"MonoMod.Utils": "25.0.6"
}
}, },
"MonoMod.Utils": { "MonoMod.Utils": {
"type": "Transitive", "type": "Transitive",
"resolved": "25.0.6", "resolved": "25.0.4",
"contentHash": "FAGqXHT4ENtg3UTA5PKBgLYcRP8w+u4zMUN2M73yfb0aYLIpCTVOcTfO1iTM2Jse0ukBxjd+ovO5KnCYt+Z0ag==", "contentHash": "cB94MaZtFD9u4clYEFTwM4jGXnJnzXsxYF3yBpMZKHhXOas66tMF2frbdYte023i0MH4C5iRJbDjxHmA4x5VgA==",
"dependencies": { "dependencies": {
"Mono.Cecil": "0.11.5", "Mono.Cecil": "0.11.5",
"MonoMod.Backports": "1.1.2", "MonoMod.Backports": "1.1.0",
"MonoMod.ILHelpers": "1.1.0" "MonoMod.ILHelpers": "1.0.1"
} }
}, },
"Newtonsoft.Json": { "Newtonsoft.Json": {
@@ -301,19 +290,8 @@
}, },
"protobuf-net": { "protobuf-net": {
"type": "Transitive", "type": "Transitive",
"resolved": "3.2.30", "resolved": "1.0.0",
"contentHash": "C/UTlmxEJHAHpqm8xQK1UyJKaIynVCSNG4mVrbLgnZ7ccH28nN49O8iMJvKEodTgVbnimvy+3mIiAdW6mATwnw==", "contentHash": "kTGOK0E87473sOImOjgZOnz3kTC2aMLffoRWQLYNuBLJnwNNmjanF9IkevZ9Q7yYLeABQfcF3BpeepuMntMVNw=="
"dependencies": {
"protobuf-net.Core": "3.2.30"
}
},
"protobuf-net.Core": {
"type": "Transitive",
"resolved": "3.2.30",
"contentHash": "v2ZxxYrz+X212ukSx+uqkLuPu414bvmSAnTyf+PBUKR9ENJxO4P/csorA/27456MCp1JNoMssDj/f91RDiwBfQ==",
"dependencies": {
"System.Collections.Immutable": "7.0.0"
}
}, },
"SemanticVersioning": { "SemanticVersioning": {
"type": "Transitive", "type": "Transitive",
@@ -335,8 +313,8 @@
}, },
"SpaceEngineersDedicated.ReferenceAssemblies": { "SpaceEngineersDedicated.ReferenceAssemblies": {
"type": "Transitive", "type": "Transitive",
"resolved": "1.204.18", "resolved": "1.205.23",
"contentHash": "GT7/9CBMx4jjor41zLOOl87YYM/JdJD8xp9ccXyuhP2oUaz25H3ZmCQuGeAuZNENKru1a/7hZrId4PwlMDGoew==", "contentHash": "J7mF5hY39PzzCZps6vhIRzKiq8vD6Af9TgumTJR068vjEi+BzyeEFhqX+cl2Dd1ngOmsBtGWc5m+vxgTfs5YuA==",
"dependencies": { "dependencies": {
"SharpDX": "4.2.0-keen-cringe", "SharpDX": "4.2.0-keen-cringe",
"protobuf-net": "1.0.0" "protobuf-net": "1.0.0"
@@ -391,10 +369,18 @@
"resolved": "4.4.0", "resolved": "4.4.0",
"contentHash": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog==" "contentHash": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog=="
}, },
"System.Text.Encodings.Web": {
"type": "Transitive",
"resolved": "8.0.0",
"contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ=="
},
"System.Text.Json": { "System.Text.Json": {
"type": "Transitive", "type": "Transitive",
"resolved": "5.0.1", "resolved": "8.0.1",
"contentHash": "/UM3UK1dXKl8Ybysg/21gM4S8DJgkR+yLU8JwqCVbuNqQNImelntgYFAN5QxR8sJJ1kMx//hOUdf0lltosi8cQ==" "contentHash": "7AWk2za1hSEJBppe/Lg+uDcam2TrDqwIKa9XcPssSwyjC2xa39EKEGul3CO5RWNF+hMuZG4zlBDrvhBdDTg4lg==",
"dependencies": {
"System.Text.Encodings.Web": "8.0.0"
}
}, },
"Torch.SixLabors.ImageSharp": { "Torch.SixLabors.ImageSharp": {
"type": "Transitive", "type": "Transitive",
@@ -449,15 +435,14 @@
"type": "Project", "type": "Project",
"dependencies": { "dependencies": {
"ControlzEx": "[5.0.2, )", "ControlzEx": "[5.0.2, )",
"HarmonyX": "[2.13.0-torch, )", "Lib.Harmony.Thin": "[2.3.3-torch, )",
"MahApps.Metro": "[2.4.10, )", "MahApps.Metro": "[2.4.10, )",
"Microsoft.CodeAnalysis.CSharp": "[4.11.0, )", "Microsoft.CodeAnalysis.CSharp": "[4.11.0, )",
"Microsoft.CodeAnalysis.Common": "[4.11.0, )", "Microsoft.CodeAnalysis.Common": "[4.11.0, )",
"NLog": "[5.3.3, )", "NLog": "[5.3.3, )",
"System.ComponentModel.Annotations": "[5.0.0, )", "System.ComponentModel.Annotations": "[5.0.0, )",
"Torch.API": "[1.0.0, )", "Torch.API": "[1.0.0, )",
"Torch.SixLabors.ImageSharp": "[1.0.0-beta6, )", "Torch.SixLabors.ImageSharp": "[1.0.0-beta6, )"
"protobuf-net": "[3.2.30, )"
} }
}, },
"torch.api": { "torch.api": {
@@ -469,7 +454,7 @@
"NuGet.Commands": "[6.11.0, )", "NuGet.Commands": "[6.11.0, )",
"NuGet.DependencyResolver.Core": "[6.11.0, )", "NuGet.DependencyResolver.Core": "[6.11.0, )",
"SemanticVersioning": "[2.0.2, )", "SemanticVersioning": "[2.0.2, )",
"SpaceEngineersDedicated.ReferenceAssemblies": "[1.204.18, )", "SpaceEngineersDedicated.ReferenceAssemblies": "[1.*, )",
"System.Linq.Async": "[6.0.1, )" "System.Linq.Async": "[6.0.1, )"
} }
} }
@@ -487,6 +472,11 @@
"type": "Transitive", "type": "Transitive",
"resolved": "4.4.0", "resolved": "4.4.0",
"contentHash": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog==" "contentHash": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog=="
},
"System.Text.Encodings.Web": {
"type": "Transitive",
"resolved": "8.0.0",
"contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ=="
} }
} }
} }

View File

@@ -10,6 +10,7 @@ using Torch.API;
using Torch.API.Managers; using Torch.API.Managers;
using Torch.Utils; using Torch.Utils;
using VRage.Game; using VRage.Game;
using VRage.GameServices;
using Color = VRageMath.Color; using Color = VRageMath.Color;
namespace Torch.Managers.ChatManager namespace Torch.Managers.ChatManager
@@ -76,7 +77,7 @@ namespace Torch.Managers.ChatManager
_chatMessageRecievedReplacer = _chatMessageReceivedFactory.Invoke(); _chatMessageRecievedReplacer = _chatMessageReceivedFactory.Invoke();
_scriptedChatMessageRecievedReplacer = _scriptedChatMessageReceivedFactory.Invoke(); _scriptedChatMessageRecievedReplacer = _scriptedChatMessageReceivedFactory.Invoke();
_chatMessageRecievedReplacer.Replace( _chatMessageRecievedReplacer.Replace(
new Action<ulong, string, ChatChannel, long, string, ulong?>(Multiplayer_ChatMessageReceived), new Action<ulong, string, ChatChannel, long, ChatMessageCustomData?>(Multiplayer_ChatMessageReceived),
MyMultiplayer.Static); MyMultiplayer.Static);
_scriptedChatMessageRecievedReplacer.Replace( _scriptedChatMessageRecievedReplacer.Replace(
new Action<string, string, string, Color>(Multiplayer_ScriptedChatMessageReceived), new Action<string, string, string, Color>(Multiplayer_ScriptedChatMessageReceived),
@@ -133,14 +134,14 @@ namespace Torch.Managers.ChatManager
} }
private void Multiplayer_ChatMessageReceived(ulong steamUserId, string messageText, ChatChannel channel, long targetId, string customAuthorName, ulong? customSenderId = null) private void Multiplayer_ChatMessageReceived(ulong steamUserId, string messageText, ChatChannel channel, long targetId, ChatMessageCustomData? customData )
{ {
#pragma warning disable CS0612 #pragma warning disable CS0612
var torchMsg = new TorchChatMessage(steamUserId, messageText, channel, targetId, var torchMsg = new TorchChatMessage(steamUserId, messageText, channel, targetId,
#pragma warning restore CS0612 #pragma warning restore CS0612
(steamUserId == MyGameService.UserId) ? MyFontEnum.DarkBlue : MyFontEnum.Blue); (steamUserId == MyGameService.UserId) ? MyFontEnum.DarkBlue : MyFontEnum.Blue);
if (!RaiseMessageRecieved(torchMsg) && HasHud) if (!RaiseMessageRecieved(torchMsg) && HasHud)
_hudChatMessageReceived.Invoke(MyHud.Chat, steamUserId, messageText, channel, targetId, customAuthorName, customSenderId); _hudChatMessageReceived.Invoke(MyHud.Chat, steamUserId, messageText, channel, targetId, customData);
} }
private void Multiplayer_ScriptedChatMessageReceived(string message, string author, string font, Color color) private void Multiplayer_ScriptedChatMessageReceived(string message, string author, string font, Color color)
@@ -165,7 +166,7 @@ namespace Torch.Managers.ChatManager
protected static bool HasHud => !Sandbox.Engine.Platform.Game.IsDedicated; protected static bool HasHud => !Sandbox.Engine.Platform.Game.IsDedicated;
[ReflectedMethod(Name = _hudChatMessageReceivedName)] [ReflectedMethod(Name = _hudChatMessageReceivedName)]
private static Action<MyHudChat, ulong, string, ChatChannel, long, string, ulong?> _hudChatMessageReceived = null!; private static Action<MyHudChat, ulong, string, ChatChannel, long, ChatMessageCustomData?> _hudChatMessageReceived = null!;
[ReflectedMethod(Name = _hudChatScriptedMessageReceivedName)] [ReflectedMethod(Name = _hudChatScriptedMessageReceivedName)]
private static Action<MyHudChat, string, string, string, Color> _hudChatScriptedMessageReceived = null!; private static Action<MyHudChat, string, string, string, Color> _hudChatScriptedMessageReceived = null!;

View File

@@ -45,6 +45,12 @@ namespace Torch.Patches
private static void WhitelistCtorPrefix(MyScriptCompiler scriptCompiler) private static void WhitelistCtorPrefix(MyScriptCompiler scriptCompiler)
{ {
var baseDir = new FileInfo(typeof(Type).Assembly.Location).DirectoryName!; var baseDir = new FileInfo(typeof(Type).Assembly.Location).DirectoryName!;
var binDir =
#if DEBUG
baseDir;
#else
Path.Join(AppContext.BaseDirectory, "torch64");
#endif
scriptCompiler.AddReferencedAssemblies( scriptCompiler.AddReferencedAssemblies(
typeof(Type).Assembly.Location, typeof(Type).Assembly.Location,
@@ -57,22 +63,22 @@ namespace Torch.Patches
typeof(TypeConverter).Assembly.Location, typeof(TypeConverter).Assembly.Location,
typeof(System.Diagnostics.TraceSource).Assembly.Location, typeof(System.Diagnostics.TraceSource).Assembly.Location,
typeof(System.Security.Policy.Evidence).Assembly.Location, typeof(System.Security.Policy.Evidence).Assembly.Location,
Path.Combine(baseDir, "System.Xml.ReaderWriter.dll"), Path.Join(binDir, "System.Xml.ReaderWriter.dll"),
Path.Combine(MyFileSystem.ExePath, "ProtoBuf.Net.dll"), Path.Join(MyFileSystem.ExePath, "ProtoBuf.Net.dll"),
Path.Combine(MyFileSystem.ExePath, "ProtoBuf.Net.Core.dll"), Path.Join(MyFileSystem.ExePath, "ProtoBuf.Net.Core.dll"),
Path.Combine(baseDir, "netstandard.dll"), Path.Join(binDir, "netstandard.dll"),
Path.Combine(baseDir, "System.Runtime.dll"), Path.Join(baseDir, "System.Runtime.dll"),
Path.Combine(MyFileSystem.ExePath, "Sandbox.Game.dll"), Path.Join(MyFileSystem.ExePath, "Sandbox.Game.dll"),
Path.Combine(MyFileSystem.ExePath, "Sandbox.Common.dll"), Path.Join(MyFileSystem.ExePath, "Sandbox.Common.dll"),
Path.Combine(MyFileSystem.ExePath, "Sandbox.Graphics.dll"), Path.Join(MyFileSystem.ExePath, "Sandbox.Graphics.dll"),
Path.Combine(MyFileSystem.ExePath, "VRage.dll"), Path.Join(MyFileSystem.ExePath, "VRage.dll"),
Path.Combine(MyFileSystem.ExePath, "VRage.Library.dll"), Path.Join(MyFileSystem.ExePath, "VRage.Library.dll"),
Path.Combine(MyFileSystem.ExePath, "VRage.Math.dll"), Path.Join(MyFileSystem.ExePath, "VRage.Math.dll"),
Path.Combine(MyFileSystem.ExePath, "VRage.Game.dll"), Path.Join(MyFileSystem.ExePath, "VRage.Game.dll"),
Path.Combine(MyFileSystem.ExePath, "VRage.Render.dll"), Path.Join(MyFileSystem.ExePath, "VRage.Render.dll"),
Path.Combine(MyFileSystem.ExePath, "VRage.Input.dll"), Path.Join(MyFileSystem.ExePath, "VRage.Input.dll"),
Path.Combine(MyFileSystem.ExePath, "SpaceEngineers.ObjectBuilders.dll"), Path.Join(MyFileSystem.ExePath, "SpaceEngineers.ObjectBuilders.dll"),
Path.Combine(MyFileSystem.ExePath, "SpaceEngineers.Game.dll")); Path.Join(MyFileSystem.ExePath, "SpaceEngineers.Game.dll"));
} }
private static bool InitializePrefix(Thread updateThread, Type[] referencedTypes, string[] symbols) private static bool InitializePrefix(Thread updateThread, Type[] referencedTypes, string[] symbols)

View File

@@ -19,8 +19,11 @@ internal static class AssemblyRewriter
{ {
_defaultResolver = new(); _defaultResolver = new();
_zipResolver = new(_defaultResolver); _zipResolver = new(_defaultResolver);
_defaultResolver.AddSearchDirectory(Directory.GetCurrentDirectory()); _defaultResolver.AddSearchDirectory(AppContext.BaseDirectory);
_defaultResolver.AddSearchDirectory(Path.Combine(Directory.GetCurrentDirectory(), "DedicatedServer64")); _defaultResolver.AddSearchDirectory(Path.Combine(Directory.GetCurrentDirectory(), "DedicatedServer64"));
#if !DEBUG
_defaultResolver.AddSearchDirectory(Path.Join(AppContext.BaseDirectory, "torch64"));
#endif
} }
public static Assembly ProcessWeavers(this Stream stream, ZipArchive archive) public static Assembly ProcessWeavers(this Stream stream, ZipArchive archive)
@@ -60,17 +63,17 @@ internal static class AssemblyRewriter
private static Assembly ProcessInternal(Stream inputStream, IAssemblyResolver resolver) private static Assembly ProcessInternal(Stream inputStream, IAssemblyResolver resolver)
{ {
using var module = ModuleDefinition.ReadModule(inputStream, new() using var assembly = AssemblyDefinition.ReadAssembly(inputStream, new()
{ {
AssemblyResolver = resolver AssemblyResolver = resolver
}); });
foreach (var fieldDefinition in FindAllToRewrite(module)) foreach (var fieldDefinition in FindAllToRewrite(assembly.MainModule))
{ {
fieldDefinition.IsInitOnly = false; fieldDefinition.IsInitOnly = false;
} }
using var memStream = new MemoryStream(); using var memStream = new MemoryStream();
module.Assembly.Write(memStream); assembly.Write(memStream);
return Assembly.Load(memStream.ToArray()); return Assembly.Load(memStream.ToArray());
} }

View File

@@ -14,7 +14,7 @@
<Import Project="..\Torch.Mod\Torch.Mod.projitems" Label="Shared" /> <Import Project="..\Torch.Mod\Torch.Mod.projitems" Label="Shared" />
<ItemGroup> <ItemGroup>
<PackageReference Include="HarmonyX" Version="2.13.0-torch" /> <PackageReference Include="Lib.Harmony.Thin" Version="2.3.3-torch" />
<PackageReference Include="ControlzEx" Version="5.0.2" /> <PackageReference Include="ControlzEx" Version="5.0.2" />
<PackageReference Include="InfoOf.Fody" Version="2.2.0" PrivateAssets="all" /> <PackageReference Include="InfoOf.Fody" Version="2.2.0" PrivateAssets="all" />
@@ -23,7 +23,6 @@
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.11.0" /> <PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.11.0" />
<PackageReference Include="NLog" Version="5.3.3" /> <PackageReference Include="NLog" Version="5.3.3" />
<PackageReference Include="PropertyChanged.Fody" Version="4.1.0" PrivateAssets="all" /> <PackageReference Include="PropertyChanged.Fody" Version="4.1.0" PrivateAssets="all" />
<PackageReference Include="protobuf-net" Version="3.2.30" />
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" /> <PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
<PackageReference Include="Torch.SixLabors.ImageSharp" Version="1.0.0-beta6" /> <PackageReference Include="Torch.SixLabors.ImageSharp" Version="1.0.0-beta6" />
</ItemGroup> </ItemGroup>

View File

@@ -140,20 +140,6 @@ namespace Torch
if (state == TorchGameState.Created) if (state == TorchGameState.Created)
PatchManager.CommitInternal(); PatchManager.CommitInternal();
}; };
var harmonyLog = LogManager.GetLogger("HarmonyX");
HarmonyLib.Tools.Logger.ChannelFilter = HarmonyLib.Tools.Logger.LogChannel.Debug;
HarmonyLib.Tools.Logger.MessageReceived += (_, args) => harmonyLog.Log(args.LogChannel switch
{
HarmonyLib.Tools.Logger.LogChannel.None => LogLevel.Off,
HarmonyLib.Tools.Logger.LogChannel.Info => LogLevel.Info,
HarmonyLib.Tools.Logger.LogChannel.IL => LogLevel.Trace,
HarmonyLib.Tools.Logger.LogChannel.Warn => LogLevel.Warn,
HarmonyLib.Tools.Logger.LogChannel.Error => LogLevel.Error,
HarmonyLib.Tools.Logger.LogChannel.Debug => LogLevel.Debug,
HarmonyLib.Tools.Logger.LogChannel.All => LogLevel.Debug,
_ => throw new ArgumentOutOfRangeException()
}, args.Message);
} }
[Obsolete("Prefer using Managers.GetManager for global managers")] [Obsolete("Prefer using Managers.GetManager for global managers")]
@@ -409,5 +395,15 @@ namespace Torch
/// <inheritdoc/> /// <inheritdoc/>
public event TorchGameStateChangedDel GameStateChanged; public event TorchGameStateChangedDel GameStateChanged;
#region Backwards compat
[Obsolete("Dont use that", true)]
internal static void RegisterAuxAssembly(Assembly assembly)
{
TorchLauncher.RegisterAssembly(assembly);
}
#endregion
} }
} }

View File

@@ -312,7 +312,7 @@ namespace Torch
private void Destroy() private void Destroy()
{ {
_game.Dispose(); _game?.Dispose();
_game = null; _game = null;
MyGameService.ShutDown(); MyGameService.ShutDown();
@@ -462,6 +462,7 @@ namespace Torch
public void SignalDestroy() public void SignalDestroy()
{ {
_destroyGame = true; _destroyGame = true;
if (_game is not null)
SignalStop(); SignalStop();
_commandChanged.Set(); _commandChanged.Set();
} }

View File

@@ -12,15 +12,6 @@
"System.Text.Json": "5.0.1" "System.Text.Json": "5.0.1"
} }
}, },
"HarmonyX": {
"type": "Direct",
"requested": "[2.13.0-torch, )",
"resolved": "2.13.0-torch",
"contentHash": "ehrCDqzHrNNUlNnRgIys2npuQqbGZ378lixy4pg8/2yQMejctX/p448XTnGGfrCTx6DaHfgQv9Da89JALJgeWA==",
"dependencies": {
"MonoMod.RuntimeDetour": "25.1.2"
}
},
"InfoOf.Fody": { "InfoOf.Fody": {
"type": "Direct", "type": "Direct",
"requested": "[2.2.0, )", "requested": "[2.2.0, )",
@@ -30,6 +21,16 @@
"Fody": "6.8.0" "Fody": "6.8.0"
} }
}, },
"Lib.Harmony.Thin": {
"type": "Direct",
"requested": "[2.3.3-torch, )",
"resolved": "2.3.3-torch",
"contentHash": "djQtMUpURRgP+Ytf1EgQwu4XnJL3J3bz5kyTVcRDNb632N62/A4CbduG96CUsKhL944yGNAJnLX3zfWldPYOTw==",
"dependencies": {
"MonoMod.Core": "1.1.0",
"System.Text.Json": "8.0.1"
}
},
"MahApps.Metro": { "MahApps.Metro": {
"type": "Direct", "type": "Direct",
"requested": "[2.4.10, )", "requested": "[2.4.10, )",
@@ -77,15 +78,6 @@
"Fody": "6.6.4" "Fody": "6.6.4"
} }
}, },
"protobuf-net": {
"type": "Direct",
"requested": "[3.2.30, )",
"resolved": "3.2.30",
"contentHash": "C/UTlmxEJHAHpqm8xQK1UyJKaIynVCSNG4mVrbLgnZ7ccH28nN49O8iMJvKEodTgVbnimvy+3mIiAdW6mATwnw==",
"dependencies": {
"protobuf-net.Core": "3.2.30"
}
},
"System.ComponentModel.Annotations": { "System.ComponentModel.Annotations": {
"type": "Direct", "type": "Direct",
"requested": "[5.0.0, )", "requested": "[5.0.0, )",
@@ -168,48 +160,36 @@
}, },
"MonoMod.Backports": { "MonoMod.Backports": {
"type": "Transitive", "type": "Transitive",
"resolved": "1.1.2", "resolved": "1.1.0",
"contentHash": "baYlNy8n8kmaNhNvqmZ/dIPOeO1r9//dG1i2WbunMWtWZ2EKtIgmXaS+ZzphzTsikkGnoD4Jwr5g0TVdpDjgpw==", "contentHash": "GUAjCrCZEddqHKHFA7Lh61PgTzoKY7gfBShFe0hQe0p8iynHhBK3TWGyRi+QIw/PGfaRPwx6c33CPGFURBVM6g==",
"dependencies": { "dependencies": {
"MonoMod.ILHelpers": "1.1.0" "MonoMod.ILHelpers": "1.0.1"
} }
}, },
"MonoMod.Core": { "MonoMod.Core": {
"type": "Transitive", "type": "Transitive",
"resolved": "1.1.2", "resolved": "1.1.0",
"contentHash": "6Yvjx2W0QFnPNyBjCKnrhYimskBE2MUKEMJz0t+2fJO67Jt4Lmams6BdZPTVudQykmEWTh5c2fwEfAMxKQtC4Q==", "contentHash": "Ks8RntZGVcktr2QF/AovTEbuOkrgXz6omjrvT5LRveOIQJuy+IFuEQPBVWu+cSKVIoZD5XkpRFvlVrItgPIrXw==",
"dependencies": { "dependencies": {
"Mono.Cecil": "0.11.5", "Mono.Cecil": "0.11.5",
"MonoMod.Backports": "1.1.2", "MonoMod.Backports": "1.1.0",
"MonoMod.ILHelpers": "1.1.0", "MonoMod.ILHelpers": "1.0.1",
"MonoMod.Utils": "25.0.6" "MonoMod.Utils": "25.0.4"
} }
}, },
"MonoMod.ILHelpers": { "MonoMod.ILHelpers": {
"type": "Transitive", "type": "Transitive",
"resolved": "1.1.0", "resolved": "1.0.1",
"contentHash": "L2FWjhTrv7tcIxshfZ+M3OcaNr4cNw0IwiVZEgwqRnZ5QAN3+RrNJ8ZwCzwXUWyPDqooJxMcjjg8PsSYUiNBjQ==" "contentHash": "6djj/Hz+/eTomo1H/sJEJNxBz2ZdhXjvH0MOmyU2xRtbjaIfBQuyVV0zNUbJhMY/8qoWrz7WXfskfFhdaY0afA=="
},
"MonoMod.RuntimeDetour": {
"type": "Transitive",
"resolved": "25.1.2",
"contentHash": "eNf/V6FqS5ErkvdA+vyVM5d7SFeKCkltn5XhT2GrjJ2xec6BG3E7lk/52qVIqDSsMrU+M6dTM8W+fl4IxKQWHw==",
"dependencies": {
"Mono.Cecil": "0.11.5",
"MonoMod.Backports": "1.1.2",
"MonoMod.Core": "1.1.2",
"MonoMod.ILHelpers": "1.1.0",
"MonoMod.Utils": "25.0.6"
}
}, },
"MonoMod.Utils": { "MonoMod.Utils": {
"type": "Transitive", "type": "Transitive",
"resolved": "25.0.6", "resolved": "25.0.4",
"contentHash": "FAGqXHT4ENtg3UTA5PKBgLYcRP8w+u4zMUN2M73yfb0aYLIpCTVOcTfO1iTM2Jse0ukBxjd+ovO5KnCYt+Z0ag==", "contentHash": "cB94MaZtFD9u4clYEFTwM4jGXnJnzXsxYF3yBpMZKHhXOas66tMF2frbdYte023i0MH4C5iRJbDjxHmA4x5VgA==",
"dependencies": { "dependencies": {
"Mono.Cecil": "0.11.5", "Mono.Cecil": "0.11.5",
"MonoMod.Backports": "1.1.2", "MonoMod.Backports": "1.1.0",
"MonoMod.ILHelpers": "1.1.0" "MonoMod.ILHelpers": "1.0.1"
} }
}, },
"Newtonsoft.Json": { "Newtonsoft.Json": {
@@ -309,13 +289,10 @@
"resolved": "6.11.0", "resolved": "6.11.0",
"contentHash": "v/GGlIj2dd7svplFmASWEueu62veKW0MrMtBaZ7QG8aJTSGv2yE+pgUGhXRcQ4nxNOEq/wLBrz1vkth/1SND7A==" "contentHash": "v/GGlIj2dd7svplFmASWEueu62veKW0MrMtBaZ7QG8aJTSGv2yE+pgUGhXRcQ4nxNOEq/wLBrz1vkth/1SND7A=="
}, },
"protobuf-net.Core": { "protobuf-net": {
"type": "Transitive", "type": "Transitive",
"resolved": "3.2.30", "resolved": "1.0.0",
"contentHash": "v2ZxxYrz+X212ukSx+uqkLuPu414bvmSAnTyf+PBUKR9ENJxO4P/csorA/27456MCp1JNoMssDj/f91RDiwBfQ==", "contentHash": "kTGOK0E87473sOImOjgZOnz3kTC2aMLffoRWQLYNuBLJnwNNmjanF9IkevZ9Q7yYLeABQfcF3BpeepuMntMVNw=="
"dependencies": {
"System.Collections.Immutable": "7.0.0"
}
}, },
"SemanticVersioning": { "SemanticVersioning": {
"type": "Transitive", "type": "Transitive",
@@ -337,8 +314,8 @@
}, },
"SpaceEngineersDedicated.ReferenceAssemblies": { "SpaceEngineersDedicated.ReferenceAssemblies": {
"type": "Transitive", "type": "Transitive",
"resolved": "1.204.18", "resolved": "1.205.23",
"contentHash": "GT7/9CBMx4jjor41zLOOl87YYM/JdJD8xp9ccXyuhP2oUaz25H3ZmCQuGeAuZNENKru1a/7hZrId4PwlMDGoew==", "contentHash": "J7mF5hY39PzzCZps6vhIRzKiq8vD6Af9TgumTJR068vjEi+BzyeEFhqX+cl2Dd1ngOmsBtGWc5m+vxgTfs5YuA==",
"dependencies": { "dependencies": {
"SharpDX": "4.2.0-keen-cringe", "SharpDX": "4.2.0-keen-cringe",
"protobuf-net": "1.0.0" "protobuf-net": "1.0.0"
@@ -388,10 +365,18 @@
"resolved": "4.4.0", "resolved": "4.4.0",
"contentHash": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog==" "contentHash": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog=="
}, },
"System.Text.Encodings.Web": {
"type": "Transitive",
"resolved": "8.0.0",
"contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ=="
},
"System.Text.Json": { "System.Text.Json": {
"type": "Transitive", "type": "Transitive",
"resolved": "5.0.1", "resolved": "8.0.1",
"contentHash": "/UM3UK1dXKl8Ybysg/21gM4S8DJgkR+yLU8JwqCVbuNqQNImelntgYFAN5QxR8sJJ1kMx//hOUdf0lltosi8cQ==" "contentHash": "7AWk2za1hSEJBppe/Lg+uDcam2TrDqwIKa9XcPssSwyjC2xa39EKEGul3CO5RWNF+hMuZG4zlBDrvhBdDTg4lg==",
"dependencies": {
"System.Text.Encodings.Web": "8.0.0"
}
}, },
"torch.api": { "torch.api": {
"type": "Project", "type": "Project",
@@ -402,7 +387,7 @@
"NuGet.Commands": "[6.11.0, )", "NuGet.Commands": "[6.11.0, )",
"NuGet.DependencyResolver.Core": "[6.11.0, )", "NuGet.DependencyResolver.Core": "[6.11.0, )",
"SemanticVersioning": "[2.0.2, )", "SemanticVersioning": "[2.0.2, )",
"SpaceEngineersDedicated.ReferenceAssemblies": "[1.204.18, )", "SpaceEngineersDedicated.ReferenceAssemblies": "[1.*, )",
"System.Linq.Async": "[6.0.1, )" "System.Linq.Async": "[6.0.1, )"
} }
} }
@@ -420,6 +405,11 @@
"type": "Transitive", "type": "Transitive",
"resolved": "4.4.0", "resolved": "4.4.0",
"contentHash": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog==" "contentHash": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog=="
},
"System.Text.Encodings.Web": {
"type": "Transitive",
"resolved": "8.0.0",
"contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ=="
} }
} }
} }