Compare commits

..

37 Commits

Author SHA1 Message Date
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
zznty
9b9d8b7241 fix world checkpoint loading
All checks were successful
Release / Get Version (push) Successful in 10s
Release / Build and Publish Nuget (push) Successful in 1m46s
Release / Build and Publish Package (push) Successful in 1m58s
2024-08-25 16:53:19 +07:00
zznty
ba7ed276e6 also increase steam connect timeout 2024-08-25 16:53:04 +07:00
zznty
08063c4ce8 update harmonyx 2024-08-25 16:52:27 +07:00
zznty
0d74a5c1a8 update deps
All checks were successful
Release / Get Version (push) Successful in 11s
Release / Build and Publish Package (push) Successful in 2m11s
Release / Build and Publish Nuget (push) Successful in 4m0s
2024-08-22 14:05:36 +07:00
zznty
1d852d4bd9 update NetBeauty
Some checks failed
Release / Get Version (push) Successful in 8s
Release / Build and Publish Package (push) Successful in 5m16s
Release / Build and Publish Nuget (push) Failing after 1m24s
2024-05-15 21:34:54 +07:00
zznty
b76af4a8b0 feature: Add console command listener for nogui scenarios
Some checks failed
Release / Get Version (push) Successful in 8s
Release / Build and Publish Nuget (push) Successful in 3m35s
Release / Build and Publish Package (push) Failing after 4m22s
2024-05-15 21:16:22 +07:00
zznty
28e26dbf5e port over script compiler patch changes 2024-05-15 21:13:35 +07:00
zznty
46ee2b61a5 refactoring and proper game state destruction 2024-05-15 21:12:54 +07:00
zznty
bfa3604524 update deps and se version 2024-05-15 20:07:32 +07:00
ab092125b0 fix sleet version
All checks were successful
Release / Get Version (push) Successful in 2m58s
Release / Build and Publish Package (push) Successful in 4m36s
Release / Build and Publish Nuget (push) Successful in 5m1s
2024-05-11 18:31:38 +00:00
e320d8fbd5 fucking m*crosoft
Some checks failed
Release / Get Version (push) Successful in 14s
Release / Build and Publish Package (push) Successful in 5m45s
Release / Build and Publish Nuget (push) Failing after 8m5s
2024-01-28 12:54:48 +00:00
2d28ce7415 Update .github/workflows/release.yaml
Some checks failed
Release / Get Version (push) Successful in 18s
Release / Build and Publish Package (push) Successful in 6m35s
Release / Build and Publish Nuget (push) Failing after 11m48s
2024-01-28 12:38:34 +00:00
fd64c77aed Update .github/workflows/release.yaml
Some checks failed
Release / Get Version (push) Successful in 12s
Release / Build and Publish Nuget (push) Failing after 2m40s
Release / Build and Publish Package (push) Successful in 3m41s
2024-01-17 10:16:24 +00:00
aeaf755d08 Update .github/workflows/release.yaml
Some checks failed
Release / Get Version (push) Successful in 12s
Release / Build and Publish Nuget (push) Failing after 5m20s
Release / Build and Publish Package (push) Successful in 6m2s
2024-01-17 09:53:00 +00:00
667f52f33b Update .github/workflows/release.yaml
Some checks failed
Release / Get Version (push) Successful in 27s
Release / Build and Publish Nuget (push) Failing after 2m1s
Release / Build and Publish Package (push) Failing after 2m56s
2024-01-16 17:49:07 +00:00
zznty
4c5751fccf . 2024-01-08 20:00:41 +07:00
zznty
bd11bc223d fucking dotnet breaking cringe 2024-01-08 19:51:06 +07:00
zznty
ccd04585c4 maybe 2024-01-08 19:48:16 +07:00
zznty
88ad741f3b dotnettt 2024-01-08 19:43:53 +07:00
zznty
29bfcced62 fix this cringe with rids 2024-01-08 19:40:44 +07:00
zznty
5fac281f37 update deps 2024-01-08 19:35:46 +07:00
zznty
6698359c08 Update Directory.Build.props 2023-12-18 18:40:47 +03:00
zznty
7bbdb79257 actually hardcode runtime version 2023-12-17 22:01:28 +07:00
zznty
afa40d3532 build selfcontained on windows because microsoft broke windows targeting in net8 2023-12-17 21:46:35 +07:00
zznty
4afae0fe56 net 8 target 2023-12-17 21:35:51 +07:00
zznty
f43e61c7bb fix dotnet version 2023-12-15 18:00:30 +07:00
zznty
646916dc7b force update dependencies 2023-12-14 00:56:46 +07:00
205 changed files with 1262 additions and 6466 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

View File

@@ -4,79 +4,56 @@ on:
push:
branches: [master]
env:
BUILD_CONFIGURATION: Release
DOTNET_NOLOGO: true
DOTNET_CLI_TELEMETRY_OPTOUT: true
jobs:
build:
name: Build
get-version:
name: Get Version
runs-on: ubuntu-latest
env:
BUILD_CONFIGURATION: Release
DOTNET_NOLOGO: true
DOTNET_CLI_TELEMETRY_OPTOUT: true
outputs:
version: ${{ steps.version.outputs.version }}
steps:
- uses: actions/checkout@master
name: Checkout
with:
ref: ${{ github.head_ref }}
fetch-depth: 0
- name: Git Version
id: version
uses: paulhatch/semantic-version@v5.3.0
with:
tag_prefix: ''
major_pattern: 'breaking:'
minor_pattern: 'feature:'
build-nuget:
name: Build and Publish Nuget
runs-on: ubuntu-latest
needs: [get-version]
steps:
- uses: actions/checkout@master
name: Checkout
- uses: actions/setup-dotnet@v3
name: Setup dotnet
with:
dotnet-version: '8.0.x'
- name: Restore dependencies
run: dotnet restore Torch.Server/Torch.Server.csproj --locked-mode
- name: Git Version
id: version
uses: codacy/git-version@2.7.1
- name: Build
run: dotnet build Torch.Server/Torch.Server.csproj --no-restore -c ${{ env.BUILD_CONFIGURATION }} -p:Version="${{ steps.version.outputs.version }}" -p:AssemblyVersion="${{ steps.version.outputs.version }}"
- name: Publish
run: dotnet publish Torch.Server/Torch.Server.csproj --no-build --sc -c ${{ env.BUILD_CONFIGURATION }} -o ./publish
- uses: vimtor/action-zip@v1
name: Zip Release
with:
files: publish/
dest: release.zip
- name: Create release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.version.outputs.version }}
release_name: Release v${{ steps.version.outputs.version }}
body: ${{ steps.github_release.outputs.changelog }}
draft: true
prerelease: false
- name: Upload release asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: release.zip
asset_name: torch-server.zip
asset_content_type: application/zip
- uses: eregon/publish-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
release_id: ${{ steps.create_release.outputs.id }}
run: dotnet build Torch.Server/Torch.Server.csproj --no-restore -c ${{ env.BUILD_CONFIGURATION }} -p:Version="${{ needs.get-version.outputs.version }}" -p:AssemblyVersion="${{ needs.get-version.outputs.version }}"
- run: dotnet pack -c Release ./Torch.API/Torch.API.csproj -o pack -p:Version="${{ steps.version.outputs.version }}" -p:AssemblyVersion="${{ steps.version.outputs.version }}" --no-build
- run: dotnet pack -c Release ./Torch/Torch.csproj -o pack -p:Version="${{ steps.version.outputs.version }}" -p:AssemblyVersion="${{ steps.version.outputs.version }}" --no-build
- run: dotnet pack -c Release ./Torch.Server/Torch.Server.csproj -o pack -p:Version="${{ steps.version.outputs.version }}" -p:AssemblyVersion="${{ steps.version.outputs.version }}" --no-build
- run: mkdir blank && sed -i 's/torchVersion/${{ steps.version.outputs.version }}/g' Torch.Server.ReferenceAssemblies.net7.nuspec && nuget pack Torch.Server.ReferenceAssemblies.net7.nuspec -BasePath ./blank -OutputDirectory pack -NonInteractive -NoPackageAnalysis
- run: dotnet pack -c Release ./Torch.API/Torch.API.csproj -o pack -p:Version="${{ needs.get-version.outputs.version }}" -p:AssemblyVersion="${{ needs.get-version.outputs.version }}" --no-build
- run: dotnet pack -c Release ./Torch/Torch.csproj -o pack -p:Version="${{ needs.get-version.outputs.version }}" -p:AssemblyVersion="${{ needs.get-version.outputs.version }}" --no-build
- run: dotnet pack -c Release ./Torch.Server/Torch.Server.csproj -o pack -p:Version="${{ needs.get-version.outputs.version }}" -p:AssemblyVersion="${{ needs.get-version.outputs.version }}" --no-build
- name: Install Sleet
run: dotnet tool install -g sleet
run: dotnet tool install -g sleet --version 5.1.3
- name: Push Nuget Package
env:
SLEET_FEED_TYPE: s3
@@ -85,4 +62,40 @@ jobs:
SLEET_FEED_SERVICEURL: https://storage.yandexcloud.net
SLEET_FEED_ACCESSKEYID: ${{ secrets.S3_KEY_ID }}
SLEET_FEED_SECRETACCESSKEY: ${{ secrets.S3_KEY }}
run: sleet push ./pack
run: /root/.dotnet/tools/sleet push ./pack
build:
name: Build and Publish Package
runs-on: ubuntu-latest
needs: [get-version]
steps:
- uses: actions/checkout@master
name: Checkout
- uses: actions/setup-dotnet@v3
name: Setup dotnet
with:
dotnet-version: '8.0.x'
- name: Restore dependencies
run: dotnet restore Torch.Server/Torch.Server.csproj --locked-mode -r win-x64
- name: Publish
run: dotnet publish Torch.Server/Torch.Server.csproj --no-restore --sc -r win-x64 -c ${{ env.BUILD_CONFIGURATION }} -o ./publish -p:Version="${{ needs.get-version.outputs.version }}" -p:AssemblyVersion="${{ needs.get-version.outputs.version }}"
- uses: vimtor/action-zip@v1
name: Zip Release
with:
files: publish/
dest: torch-server.zip
- name: Create Release
uses: akkuman/gitea-release-action@v1
env:
NODE_OPTIONS: '--experimental-fetch' # if nodejs < 18
with:
tag_name: ${{ needs.get-version.outputs.version }}
name: Release v${{ needs.get-version.outputs.version }}
body: ${{ steps.github_release.outputs.changelog }}
files: |-
./torch-server.zip

View File

@@ -1,8 +1,8 @@
<Project>
<PropertyGroup>
<TargetFramework>net7.0-windows</TargetFramework>
<TargetFramework>net8.0-windows</TargetFramework>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
<EnableWindowsTargeting>true</EnableWindowsTargeting>
</PropertyGroup>
</Project>
</Project>

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,11 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VRage.Game.ModAPI;
namespace Torch.API
namespace Torch.API
{
/// <summary>
/// Represents a player on the server.

View File

@@ -1,13 +1,10 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Extensions.Configuration;
using Torch.API.Managers;
using Torch.API.Session;
using VRage.Game.ModAPI;
using Version = SemanticVersioning.Version;
namespace Torch.API
@@ -144,6 +141,22 @@ namespace Torch.API
event Action<ITorchServer> Initialized;
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>

View File

@@ -1,17 +1,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Sandbox.Engine.Multiplayer;
using Sandbox.Game.Gui;
using Sandbox.Game.Multiplayer;
using Torch.Utils;
using VRage.Game;
using VRage.Network;
using VRage.Replication;
using VRageMath;
using VRageRender;
namespace Torch.API.Managers
{

View File

@@ -1,11 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VRage.Collections;
using VRage.Game;
using VRage.Network;
using VRageMath;
namespace Torch.API.Managers

View File

@@ -1,8 +1,5 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Torch.API.Managers
{

View File

@@ -1,8 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Torch.API.Managers
{

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Torch.API.Managers
namespace Torch.API.Managers
{
/// <summary>
/// Base interface for Torch managers.

View File

@@ -1,7 +1,4 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using VRage.Game;
using VRage.Game.ModAPI;
namespace Torch.API.Managers

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Torch.API.Managers
namespace Torch.API.Managers
{
public interface IMultiplayerManagerClient : IMultiplayerManagerBase
{

View File

@@ -1,8 +1,5 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VRage.Game.ModAPI;
namespace Torch.API.Managers

View File

@@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VRage;
using VRage;
using VRage.Library.Collections;
using VRage.Network;

View File

@@ -1,7 +1,6 @@
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Reflection;
using System.Runtime.Loader;
using Torch.API.WebAPI.Plugins;
namespace Torch.API.Managers;

View File

@@ -1,8 +1,6 @@
using System;
using System.Collections.Generic;
using Torch.API.Plugins;
using VRage.Collections;
using VRage.Plugins;
namespace Torch.API.Managers
{

View File

@@ -1,14 +1,4 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Sandbox.Game.Entities.Blocks;
using Sandbox.ModAPI.Ingame;
using VRage.Game.ModAPI.Ingame;
namespace Torch.API.ModAPI.Ingame
namespace Torch.API.ModAPI.Ingame
{
public static class GridExtensions
{

View File

@@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.CompilerServices;
//Needed so Torch can set the instance here without exposing anything bad to mods or creating a circular dependency.
[assembly: InternalsVisibleTo("Torch")]

View File

@@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
namespace Torch.API.Plugins
{

View File

@@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls;
using System.Windows.Controls;
namespace Torch.API.Plugins
{

View File

@@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace Torch.API.Plugins
{

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Torch.API
namespace Torch.API
{
/// <summary>
/// Used to indicate the state of the dedicated server.

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Torch.API.Session
namespace Torch.API.Session
{
/// <summary>
/// The result of a save operation

View File

@@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Sandbox.Game.World;
using Sandbox.Game.World;
using Torch.API.Managers;
namespace Torch.API.Session

View File

@@ -1,9 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Torch.API.Managers;
using VRage.Game;

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Torch.API.Session
namespace Torch.API.Session
{
/// <summary>
/// Represents the state of a <see cref="ITorchSession"/>

View File

@@ -12,15 +12,14 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="JorgeSerrano.Json.JsonSnakeCaseNamingPolicy" Version="0.9.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="8.0.0" />
<PackageReference Include="NLog" Version="5.2.7" />
<PackageReference Include="NuGet.Commands" Version="6.8.0" />
<PackageReference Include="NuGet.DependencyResolver.Core" Version="6.8.0" />
<PackageReference Include="JetBrains.Annotations" Version="2024.2.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="8.0.2" />
<PackageReference Include="NLog" Version="5.3.3" />
<PackageReference Include="NuGet.Commands" Version="6.11.0" />
<PackageReference Include="NuGet.DependencyResolver.Core" Version="6.11.0" />
<PackageReference Include="SemanticVersioning" Version="2.0.2" />
<PackageReference Include="SpaceEngineersDedicated.ReferenceAssemblies" Version="1.203.505.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>compile</IncludeAssets>
<PackageReference Include="SpaceEngineersDedicated.ReferenceAssemblies" Version="1.204.18">
<ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
<PackageReference Include="System.Linq.Async" Version="6.0.1" />
</ItemGroup>

View File

@@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Sandbox;
using Sandbox;
namespace Torch.API
{

View File

@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace Torch.Utils
{

View File

@@ -1,7 +1,5 @@
#nullable enable
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
namespace Torch.API.WebAPI.Plugins;

View File

@@ -5,7 +5,6 @@ using System.Net.Http;
using System.Net.Http.Json;
using System.Text.Json;
using System.Threading.Tasks;
using JorgeSerrano.Json;
using Version = SemanticVersioning.Version;
namespace Torch.API.WebAPI.Update;
@@ -38,7 +37,7 @@ public class GithubQuery : IUpdateQuery
{
var response = await _client.GetFromJsonAsync<Release>($"/repos/{repository}/releases/latest", new JsonSerializerOptions(JsonSerializerDefaults.Web)
{
PropertyNamingPolicy = new JsonSnakeCaseNamingPolicy()
PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower
});
if (response is null)

View File

@@ -1,49 +1,49 @@
{
"version": 1,
"dependencies": {
"net7.0-windows7.0": {
"JorgeSerrano.Json.JsonSnakeCaseNamingPolicy": {
"net8.0-windows7.0": {
"JetBrains.Annotations": {
"type": "Direct",
"requested": "[0.9.0, )",
"resolved": "0.9.0",
"contentHash": "xCqODS+wzpUXNtg4bMMvXG5PLbP0iTwRzRn2R+zWHKm83E6tbV2bCagawXp1EnZeNpd5OXpMxehulZWns8efzQ=="
"requested": "[2024.2.0, )",
"resolved": "2024.2.0",
"contentHash": "GNnqCFW/163p1fOehKx0CnAqjmpPrUSqrgfHM6qca+P+RN39C9rhlfZHQpJhxmQG/dkOYe/b3Z0P8b6Kv5m1qw=="
},
"Microsoft.Extensions.Configuration.Binder": {
"type": "Direct",
"requested": "[8.0.0, )",
"resolved": "8.0.0",
"contentHash": "mBMoXLsr5s1y2zOHWmKsE9veDcx8h1x/c3rz4baEdQKTeDcmQAPNbB54Pi/lhFO3K431eEq6PFbMgLaa6PHFfA==",
"requested": "[8.0.2, )",
"resolved": "8.0.2",
"contentHash": "7IQhGK+wjyGrNsPBjJcZwWAr+Wf6D4+TwOptUt77bWtgNkiV8tDEbhFS+dDamtQFZ2X7kWG9m71iZQRj2x3zgQ==",
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0"
}
},
"NLog": {
"type": "Direct",
"requested": "[5.2.7, )",
"resolved": "5.2.7",
"contentHash": "Ww/0b6V1NL8iqpFKtRKVQFFX03LoowNzYeNG6FpVzmhgCfLAkW0h/4lT3+V8mHfyvtHptNoV8Cz0YePLFRUaPA=="
"requested": "[5.3.3, )",
"resolved": "5.3.3",
"contentHash": "cy0+hlrUbYu+6mgUsILqCcqlJ2Csqyt2lm8y9T9kE8nhgwl8SvR+LM21QX4nmzFCPiowbrTFYxNF8+gWpy7/HQ=="
},
"NuGet.Commands": {
"type": "Direct",
"requested": "[6.8.0, )",
"resolved": "6.8.0",
"contentHash": "jTlbIYNXIiO25s/A2UMBHYhLmNm/lJP+/a/X4OJebejnSKmeKjXeCd9NYH+D9y21JMh3eS0khkCpPnLIgdHsCQ==",
"requested": "[6.11.0, )",
"resolved": "6.11.0",
"contentHash": "8GjJQZVbNJuttVynsRWsgqhTZiBbjxRr2PgZ3E7zPxDBmKUazkQ1s/FqScm83w8Xq5OdEtegkU0dZhibfRkKeg==",
"dependencies": {
"Microsoft.Extensions.FileProviders.Abstractions": "6.0.0",
"Microsoft.Extensions.FileSystemGlobbing": "6.0.0",
"NuGet.Credentials": "6.8.0",
"NuGet.ProjectModel": "6.8.0"
"NuGet.Credentials": "6.11.0",
"NuGet.ProjectModel": "6.11.0"
}
},
"NuGet.DependencyResolver.Core": {
"type": "Direct",
"requested": "[6.8.0, )",
"resolved": "6.8.0",
"contentHash": "dTdE5VmQnWfZU2tM4glgsO1ZpFZoEqLKUtpDkr11dkVV4nQn5/MqK9Wmvp/SbU1t7AoSEf7yIMAew9SHxganYA==",
"requested": "[6.11.0, )",
"resolved": "6.11.0",
"contentHash": "SoiPKPooA+IF+iCsX1ykwi3M0e+yBL34QnwIP3ujhQEn1dhlP/N1XsYAnKkJPxV15EZCahuuS4HtnBsZx+CHKA==",
"dependencies": {
"NuGet.Configuration": "6.8.0",
"NuGet.LibraryModel": "6.8.0",
"NuGet.Protocol": "6.8.0"
"NuGet.Configuration": "6.11.0",
"NuGet.LibraryModel": "6.11.0",
"NuGet.Protocol": "6.11.0"
}
},
"SemanticVersioning": {
@@ -54,10 +54,11 @@
},
"SpaceEngineersDedicated.ReferenceAssemblies": {
"type": "Direct",
"requested": "[1.203.505.1, )",
"resolved": "1.203.505.1",
"contentHash": "YokcOxKdIvtJ2fYdkF48/wvbdaDlNl+bbUd11vkdPRdHaprRj5b2F1wUk7faL0J0UIX87lyhgC/HsNn9rHVbJw==",
"requested": "[1.204.18, )",
"resolved": "1.204.18",
"contentHash": "GT7/9CBMx4jjor41zLOOl87YYM/JdJD8xp9ccXyuhP2oUaz25H3ZmCQuGeAuZNENKru1a/7hZrId4PwlMDGoew==",
"dependencies": {
"SharpDX": "4.2.0-keen-cringe",
"protobuf-net": "1.0.0"
}
},
@@ -108,80 +109,85 @@
},
"NuGet.Common": {
"type": "Transitive",
"resolved": "6.8.0",
"contentHash": "voNZyM5L5s0CCDPU//vXKQke0M8y6kGvG+0Ll6gc/xV7Jh1C3/5OhHRzvekxBS6a9DO/lsFhTZtyCkL6n9lHEw==",
"resolved": "6.11.0",
"contentHash": "T3bCiKUSx8wdYpcqr6Dbx93zAqFp689ee/oa1tH22XI/xl7EUzQ7No/WlE1FUqvEX1+Mqar3wRNAn2O/yxo94g==",
"dependencies": {
"NuGet.Frameworks": "6.8.0"
"NuGet.Frameworks": "6.11.0"
}
},
"NuGet.Configuration": {
"type": "Transitive",
"resolved": "6.8.0",
"contentHash": "FFEoY1L9G+C74HfSYt6epHTIuS5xJ8D+d9LZ5nnqhujMoBlQgHphaCTfRlul+e/bNIkAp1fDObzsGlPmu3CKAg==",
"resolved": "6.11.0",
"contentHash": "73QprQqmumFrv3Ooi4YWpRYeBj8jZy9gNdOaOCp4pPInpt41SJJAz/aP4je+StwIJvi5HsgPPecLKekDIQEwKg==",
"dependencies": {
"NuGet.Common": "6.8.0",
"NuGet.Common": "6.11.0",
"System.Security.Cryptography.ProtectedData": "4.4.0"
}
},
"NuGet.Credentials": {
"type": "Transitive",
"resolved": "6.8.0",
"contentHash": "0Cp5iSgmweBKjDbywqNVVlVFCtjmt4z7ol5ED3hjMGNQp1HgthOZ+PSVD2xa+5rf4/in2Nt2/4W938KqreigJg==",
"resolved": "6.11.0",
"contentHash": "TeMvEyoqkIxDnYJjPCpD48vV5XoDATmyX2kGYYB2MIzWBT24ZjWauTda72hYBzg0OLLiuafxfnNJKGG6IHHzOQ==",
"dependencies": {
"NuGet.Protocol": "6.8.0"
"NuGet.Protocol": "6.11.0"
}
},
"NuGet.Frameworks": {
"type": "Transitive",
"resolved": "6.8.0",
"contentHash": "cN9NyahKgYYScioH4CKn+TYj1eSODxd0RECFnQt6ZmzT6z7PfXlbYpVzbiPsxNgY23iNDMOVkSmOqNZyYxNlQA=="
"resolved": "6.11.0",
"contentHash": "Ew/mrfmLF5phsprysHbph2+tdZ10HMHAURavsr/Kx1WhybDG4vmGuoNLbbZMZOqnPRdpyCTc42OKWLoedxpYtA=="
},
"NuGet.LibraryModel": {
"type": "Transitive",
"resolved": "6.8.0",
"contentHash": "qdNqSa1E/VgpY95XJuLtJrSA74XpWCn5iGf/9r7FMa5smSZt7nClHcMrxOalfzilMKl4prUkE7AVw2AvKZ39Mg==",
"resolved": "6.11.0",
"contentHash": "KUV2eeMICMb24OPcICn/wgncNzt6+W+lmFVO5eorTdo1qV4WXxYGyG1NTPiCY+Nrv5H/Ilnv9UaUM2ozqSmnjw==",
"dependencies": {
"NuGet.Common": "6.8.0",
"NuGet.Versioning": "6.8.0"
"NuGet.Common": "6.11.0",
"NuGet.Versioning": "6.11.0"
}
},
"NuGet.Packaging": {
"type": "Transitive",
"resolved": "6.8.0",
"contentHash": "lyDnMCAWtoHNsNKGexIl6yHtyxuvn2j3rpKMrYYf86KwTV+JVY9eFIixNdwEPjBXBzWHQGpDKj9Im8v02t9AQQ==",
"resolved": "6.11.0",
"contentHash": "VmUv2LedVuPY1tfNybORO2I9IuqOzeV7I5JBD+PwNvJq2bAqovi4FCw2cYI0g+kjOJXBN2lAJfrfnqtUOlVJdQ==",
"dependencies": {
"Newtonsoft.Json": "13.0.3",
"NuGet.Configuration": "6.8.0",
"NuGet.Versioning": "6.8.0",
"NuGet.Configuration": "6.11.0",
"NuGet.Versioning": "6.11.0",
"System.Security.Cryptography.Pkcs": "6.0.4"
}
},
"NuGet.ProjectModel": {
"type": "Transitive",
"resolved": "6.8.0",
"contentHash": "4lXoQxLn2fAN+Yu9SHLRcjPCXNVj039FMXE9vUm14ZjCk889dGCEbUWtF3PUqqRpMGnp6IckDd8zubvXI4H1cw==",
"resolved": "6.11.0",
"contentHash": "g0KtmDH6fas97WsN73yV2h1F5JT9o6+Y0wlPK+ij9YLKaAXaF6+1HkSaQMMJ+xh9/jCJG9G6nau6InOlb1g48g==",
"dependencies": {
"NuGet.DependencyResolver.Core": "6.8.0"
"NuGet.DependencyResolver.Core": "6.11.0"
}
},
"NuGet.Protocol": {
"type": "Transitive",
"resolved": "6.8.0",
"contentHash": "Nfvij7QlEevDbuRCXkhCrHk1oJN+mYkmeVzNvS9hxNTmwdtHqB+zhUIMFBlbye3MUicgc4bbtLAwoF+EKjUvcg==",
"resolved": "6.11.0",
"contentHash": "p5B8oNLLnGhUfMbcS16aRiegj11pD6k+LELyRBqvNFR/pE3yR1XT+g1XS33ME9wvoU+xbCGnl4Grztt1jHPinw==",
"dependencies": {
"NuGet.Packaging": "6.8.0"
"NuGet.Packaging": "6.11.0"
}
},
"NuGet.Versioning": {
"type": "Transitive",
"resolved": "6.8.0",
"contentHash": "WBu15cdv1lqKkPKXDQOEmEzwKemwrczKYlc2jtuZgRYiZ8TG8F4QzPYiE0Q9eVIpMSk8Aky7mUephf19HjBPOw=="
"resolved": "6.11.0",
"contentHash": "v/GGlIj2dd7svplFmASWEueu62veKW0MrMtBaZ7QG8aJTSGv2yE+pgUGhXRcQ4nxNOEq/wLBrz1vkth/1SND7A=="
},
"protobuf-net": {
"type": "Transitive",
"resolved": "1.0.0",
"contentHash": "kTGOK0E87473sOImOjgZOnz3kTC2aMLffoRWQLYNuBLJnwNNmjanF9IkevZ9Q7yYLeABQfcF3BpeepuMntMVNw=="
},
"SharpDX": {
"type": "Transitive",
"resolved": "4.2.0-keen-cringe",
"contentHash": "LaJN3h1Gi1FWVdef2I5WtOH9gwzKCBniH0CragarbkN2QheYY6Lqm+91PcOfp1w/4wdVb+k8Kjv3sO393Tphtw=="
},
"System.Formats.Asn1": {
"type": "Transitive",
"resolved": "6.0.0",
@@ -201,7 +207,7 @@
"contentHash": "cJV7ScGW7EhatRsjehfvvYVBvtiSMKgN8bOVI0bQhnF5bU7vnHVIsH49Kva7i7GWaWYvmEzkYVk1TC+gZYBEog=="
}
},
"net7.0-windows7.0/win-x64": {
"net8.0-windows7.0/win-x64": {
"System.Security.Cryptography.Pkcs": {
"type": "Transitive",
"resolved": "6.0.4",

View File

@@ -1,8 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ProtoBuf;
using Sandbox.ModAPI;

View File

@@ -1,7 +1,4 @@
using System;
using System.Collections.Generic;
using System.Text;
using ProtoBuf;
using ProtoBuf;
using Sandbox.ModAPI;
namespace Torch.Mod.Messages

View File

@@ -1,6 +1,4 @@
using System;
using System.Collections.Generic;
using System.Text;
using ProtoBuf;
using Sandbox.ModAPI;

View File

@@ -1,6 +1,4 @@
using System;
using System.Collections.Generic;
using System.Text;
using ProtoBuf;
using Sandbox.ModAPI;
using VRage.ModAPI;

View File

@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>Torch.Server.ReferenceAssemblies.net7</id>
<version>torchVersion</version>
<title>Torch Server Reference Assemblies</title>
<authors>zznty</authors>
<owners>zznty</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Torch Server Reference Assemblies (.NET 7 edition)</description>
<repository type="git" url="https://github.com/PveTeam/Torch" />
<dependencies>
<group targetFramework="net7.0-windows7.0">
<dependency id="SpaceEngineersDedicated.ReferenceAssemblies" version="1.203.22.3" />
<dependency id="Torch.Server" version="torchVersion" />
</group>
</dependencies>
<frameworkReferences>
<group targetFramework="net7.0-windows7.0">
<frameworkReference name="Microsoft.WindowsDesktop.App.WPF" />
</group>
</frameworkReferences>
</metadata>
</package>

View File

@@ -13,9 +13,9 @@
</PropertyGroup>
<!-- <Import Project="$(SolutionDir)\TransformOnBuild.targets" /> -->
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="NLog" Version="5.2.7" />
<PackageReference Include="xunit" Version="2.6.2" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.0" />
<PackageReference Include="NLog" Version="5.3.3" />
<PackageReference Include="xunit" Version="2.9.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Torch.API\Torch.API.csproj" />

View File

@@ -2,8 +2,6 @@
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using Torch.Server.ViewModels;
using VRage.Game;
using Xunit;

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Torch.Commands;
using Torch.Commands;
namespace Torch.Server.Commands
{

View File

@@ -1,24 +1,13 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Threading;
using Microsoft.Extensions.Configuration;
using NLog;
using NLog.Targets;
using Sandbox.Engine.Utils;
using SpaceEngineers.Game;
using Torch.Utils;
using VRage.FileSystem;
namespace Torch.Server
{

View File

@@ -1,7 +1,6 @@
using System.Collections.Generic;
using System.Threading;
using System.Windows.Media;
using System.Windows.Threading;
using NLog;
using NLog.Targets;
using Torch.Server.ViewModels;

View File

@@ -0,0 +1,54 @@
using NLog;
using System;
using System.Threading;
using Torch.API;
using Torch.API.Managers;
using Torch.Commands;
using Torch.Managers;
namespace Torch.Server.Managers
{
internal class ConsoleCommandManager(ITorchBase torchInstance) : Manager(torchInstance)
{
private static readonly Logger Log = LogManager.GetCurrentClassLogger();
[Dependency]
private CommandManager _commandManager;
public override void Attach()
{
if (!Torch.Config.NoGui)
return;
Log.Info("Starting console command listener");
new Thread(CommandListener)
{
Name = "Console Command Listener",
IsBackground = true,
}.Start();
}
private void CommandListener()
{
while (Torch.GameState < TorchGameState.Unloading)
{
var line = Console.ReadLine();
if (line == null)
break;
Torch.Invoke(() =>
{
if (!_commandManager.HandleCommandFromServer(line, LogResponse))
Log.Error("Invalid input '{0}'", line);
});
}
}
private void LogResponse(TorchChatMessage message)
{
Log.Info(message.Message);
}
}
}

View File

@@ -1,19 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Controls;
using NLog;
using NLog.Fluent;
using Torch.API;
using Torch.Collections;
using Torch.Managers;
using Torch.Server.ViewModels.Entities;
using Torch.Utils;
namespace Torch.Server.Managers
{

View File

@@ -1,21 +1,12 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.Serialization;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Havok;
using NLog;
using Sandbox;
using Sandbox.Engine.Networking;
using Sandbox.Engine.Utils;
using Sandbox.Game;
using Sandbox.Game.Gui;
using Torch.API;
using Torch.API.Managers;
using Torch.Collections;
@@ -23,13 +14,10 @@ using Torch.Managers;
using Torch.Mod;
using Torch.Server.ViewModels;
using Torch.Utils;
using VRage;
using VRage.FileSystem;
using VRage.Game;
using VRage.Game.ObjectBuilder;
using VRage.ObjectBuilders;
using VRage.ObjectBuilders.Private;
using VRage.Plugins;
namespace Torch.Server.Managers
{
@@ -140,7 +128,15 @@ namespace Torch.Server.Managers
return;
}
SelectWorld(DedicatedConfig.LoadWorld ?? DedicatedConfig.Worlds.First().WorldPath, false);
var worldPath = DedicatedConfig.LoadWorld;
if (worldPath == null)
worldPath = DedicatedConfig.Worlds.First().WorldPath;
else
// 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);
SelectWorld(worldPath, false);
_instanceLoaded?.Invoke(DedicatedConfig);
}

View File

@@ -2,11 +2,8 @@
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using NLog;
using NLog.Fluent;
using Sandbox;
using Sandbox.Engine.Multiplayer;
using Sandbox.Engine.Networking;
@@ -16,12 +13,10 @@ using Torch.API;
using Torch.API.Managers;
using Torch.Managers;
using Torch.Utils;
using Torch.ViewModels;
using VRage.Game;
using VRage.Game.ModAPI;
using VRage.GameServices;
using VRage.Network;
using VRage.Steam;
namespace Torch.Server.Managers
{

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NLog;
using Sandbox;
using System.Threading.Tasks;
using Torch.API.Event;
using Torch.Event;
using VRage.Network;

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NLog;
using Sandbox.Engine.Multiplayer;
using Sandbox.Engine.Multiplayer;
using Torch.Managers.PatchManager;
using Torch.API.Managers;
@@ -16,7 +10,7 @@ namespace Torch.Server.Managers
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.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)

View File

@@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
namespace Torch.Server
{

View File

@@ -1,9 +1,5 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using NLog;
using Sandbox.Game.World;
using Torch.Managers.PatchManager;

View File

@@ -1,15 +1,10 @@
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Reflection.Emit;
using NLog;
using Sandbox.Engine.Multiplayer;
using Sandbox.Game.World;
using Torch.API.Managers;
using Torch.Managers.PatchManager;
using Torch.Managers.PatchManager.MSIL;
using Torch.Server.Managers;
using VRage.Game.ModAPI;
namespace Torch.Patches
{
@@ -31,10 +26,18 @@ namespace Torch.Patches
// Reduce response timeout from 100 seconds to 5 seconds.
foreach (var instruction in instructions)
{
if (instruction.OpCode == OpCodes.Ldc_I4 && instruction.Operand is MsilOperandInline.MsilOperandInt32 inlineI32 && inlineI32.Value == 1000)
if (instruction.OpCode == OpCodes.Ldc_I4 && instruction.Operand is
MsilOperandInline.MsilOperandInt32 { Value: 1000 } operandResponseTimeout)
{
_log.Info("Patching Steam response timeout to 5 seconds");
inlineI32.Value = 50;
operandResponseTimeout.Value = 50;
}
if (instruction.OpCode == OpCodes.Ldc_I4 && instruction.Operand is
MsilOperandInline.MsilOperandInt32 { Value: 10000 } inlineI32)
{
_log.Info("Patching Steam connect timeout to 60 seconds");
inlineI32.Value = 60000;
}
yield return instruction;

View File

@@ -1,5 +1,4 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;

View File

@@ -1,8 +1,6 @@
using System;
using System.IO;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Configuration.Xml;
using NLog;
using NLog.Config;
using NLog.Targets;
using Torch.API;

File diff suppressed because it is too large Load Diff

View File

@@ -7,6 +7,7 @@
<Copyright>Copyright © Torch API 2017</Copyright>
<OutputPath>..\bin\$(Platform)\$(Configuration)\</OutputPath>
<UseWPF>true</UseWPF>
<UseWindowsForms>true</UseWindowsForms>
<SatelliteResourceLanguages>en</SatelliteResourceLanguages>
<NeutralLanguage>en</NeutralLanguage>
<TieredPGO>true</TieredPGO>
@@ -14,8 +15,6 @@
<PropertyGroup>
<BeautyLibsDir>torch64</BeautyLibsDir>
<NoBeautyFlag>True</NoBeautyFlag>
<ForceBeauty>True</ForceBeauty>
</PropertyGroup>
<PropertyGroup>
@@ -31,24 +30,22 @@
<PackageReference Include="Ben.Demystifier" Version="0.4.1" />
<PackageReference Include="ControlzEx" Version="5.0.2" />
<PackageReference Include="MahApps.Metro" Version="2.4.10" />
<PackageReference Include="MdXaml" Version="1.22.0" />
<PackageReference Include="Microsoft.Diagnostics.Runtime" Version="3.1.456101" />
<PackageReference Include="MdXaml" Version="1.27.0" />
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="8.0.0" />
<PackageReference Include="Microsoft.Diagnostics.Runtime" Version="3.1.512801" />
<PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Xml" Version="8.0.0" />
<PackageReference Include="NLog" Version="5.2.7" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />
<PackageReference Include="NLog" Version="5.3.3" />
<PackageReference Include="PropertyChanged.Fody" Version="4.1.0" PrivateAssets="all" />
<PackageReference Include="Steamworks.NET" Version="20.1.0">
<PackageReference Include="Steamworks.NET" Version="20.2.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>compile</IncludeAssets>
</PackageReference>
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
<PackageReference Include="System.Management" Version="8.0.0" />
<PackageReference Include="nulastudio.NetCoreBeauty" Version="1.2.9.5" />
<PackageReference Include="SpaceEngineersDedicated.ReferenceAssemblies" Version="1.203.505.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>compile</IncludeAssets>
</PackageReference>
<PackageReference Include="nulastudio.NetBeauty" Version="2.1.4.5" />
</ItemGroup>
<ItemGroup>

View File

@@ -20,7 +20,6 @@ using Torch.API.Managers;
using Torch.API.Session;
using Torch.Commands;
using Torch.Managers.PatchManager;
using Torch.Mod;
using Torch.Server.Commands;
using Torch.Server.Managers;
using Torch.Utils;
@@ -60,6 +59,7 @@ namespace Torch.Server
var sessionManager = Managers.GetManager<ITorchSessionManager>();
sessionManager.AddFactory(_ => new MultiplayerManagerDedicated(this));
sessionManager.AddFactory(_ => new ConsoleCommandManager(this));
sessionManager.SessionStateChanged += OnSessionStateChanged;
// Needs to be done at some point after MyVRageWindows.Init
@@ -75,7 +75,7 @@ namespace Torch.Server
if (State == ServerState.Running)
Stop();
Environment.Exit(0);
Destroy();
};
}
@@ -244,7 +244,18 @@ namespace Torch.Server
new Thread(() =>
{
if (save)
{
var saveResult = Save().Result;
if (saveResult is not (GameSaveResult.Success or GameSaveResult.TimedOut))
{
Log.Error("Save failed due to {Reason}. Restart aborted!", saveResult);
return;
}
}
StopInternal();
Destroy();
LogManager.Flush();
if (
@@ -254,7 +265,7 @@ namespace Torch.Server
#endif
ApplicationContext.Current.IsService
)
Environment.Exit(0);
return;
var exe = Path.Combine(AppContext.BaseDirectory, "Torch.Server.exe");
@@ -274,8 +285,6 @@ namespace Torch.Server
}
Process.Start(exe, $"--waitForPid {Environment.ProcessId} --tempAutostart true {string.Join(" ", args)}");
Environment.Exit(0);
})
{
Name = "Restart thread"

View File

@@ -1,12 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
using VRage.Game;
namespace Torch.Server.ViewModels
namespace Torch.Server.ViewModels
{
public class BlockLimitViewModel : ViewModel
{

View File

@@ -1,9 +1,5 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Torch.Collections;
using VRage;
using VRage.Game;
using VRage.Game.ModAPI;

View File

@@ -1,14 +1,10 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Collections.Generic;
using System.Threading.Tasks;
using NLog;
using Sandbox.Engine.Utils;
using Torch.Collections;
using Torch.Server.Managers;
using Torch.Utils;
using VRage.Game;
using VRage.GameServices;
namespace Torch.Server.ViewModels
{

View File

@@ -1,10 +1,5 @@
using System;
using System.Collections.Generic;
using System.Drawing.Text;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using Sandbox.Game.Entities.Cube;
using Sandbox.ModAPI;
using Sandbox.ModAPI.Interfaces;

View File

@@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Sandbox.ModAPI;
using Sandbox.ModAPI.Interfaces;
namespace Torch.Server.ViewModels.Blocks

View File

@@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows;
namespace Torch.Server.ViewModels.Entities
{

View File

@@ -1,16 +1,11 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Windows.Controls;
using NLog;
using Sandbox.Game.Entities;
using Sandbox.Game.World;
using Torch.API.Managers;
using Torch.Collections;
using Torch.Server.Managers;
using Torch.Utils;
using VRage.Game.Entity;
using VRage.Game.ModAPI;
using VRage.ModAPI;
using VRageMath;

View File

@@ -1,12 +1,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using Sandbox.Definitions;
using Sandbox.Game.Entities;
using Sandbox.Game.Entities.Cube;
using Sandbox.ModAPI;
using Torch.API.Managers;
using Torch.Collections;
using Torch.Server.ViewModels.Blocks;
using VRage.Game;

View File

@@ -1,8 +1,4 @@
using System.Collections.Generic;
using System.Linq;
using Sandbox.Game.Entities;
using VRage.Game.Entity;
using VRage.Game.ModAPI;
using Sandbox.Game.Entities;
using System.Threading.Tasks;
using Torch.Collections;

View File

@@ -1,18 +1,11 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls;
using Sandbox.Game.Entities;
using Sandbox.Game.Entities.Character;
using Torch.Server.ViewModels.Entities;
using VRage.Game.ModAPI;
using VRage.ModAPI;
using System.Windows.Threading;
using NLog;
using Torch.Collections;
using Torch.Server.Views.Entities;
namespace Torch.Server.ViewModels
{

View File

@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Torch.Server.ViewModels
namespace Torch.Server.ViewModels
{
public interface ILazyLoad
{

View File

@@ -1,9 +1,6 @@
using System;
using System.Threading.Tasks;
using System.Threading.Tasks;
using NLog;
using VRage.Game;
using Torch.Utils;
using VRage.GameServices;
namespace Torch.Server.ViewModels
{

View File

@@ -1,9 +1,5 @@
using System;
using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Torch.API;
using Torch.API.Managers;
using Torch.API.Plugins;
using Torch.Collections;

View File

@@ -1,13 +1,8 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using NLog;
using Torch.API;
using Torch.API.Plugins;
using Torch.Server.Views;

View File

@@ -1,14 +1,7 @@
using System;
using System.Collections.Generic;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using Torch;
using Torch.Collections;
using Torch.Views;
using VRage.Game;
using VRage.Library.Utils;
using VRage.Serialization;
namespace Torch.Server.ViewModels
{

View File

@@ -1,17 +1,5 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Text.RegularExpressions;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace Torch.Server
{

View File

@@ -1,35 +1,20 @@
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Threading;
using NLog;
using Torch;
using Sandbox;
using Sandbox.Engine.Multiplayer;
using Sandbox.Game.Gui;
using Sandbox.Game.Multiplayer;
using Sandbox.Game.World;
using Torch.API;
using Torch.API.Managers;
using Torch.API.Session;
using Torch.Managers;
using Torch.Server.Managers;
using Torch.Server.Views;
using VRage.Game;
using Color = VRageMath.Color;
namespace Torch.Server

View File

@@ -6,17 +6,14 @@ using System.Runtime.CompilerServices;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Media;
using System.Windows.Threading;
using JetBrains.Annotations;
using Sandbox;
using Torch.API;
using Torch.API.Managers;
using Torch.Server.Annotations;
using Torch.Server.Managers;
using Torch.Server.ViewModels;
using Torch.Views;
using VRage.Game.ModAPI;
using VRage.Serialization;
namespace Torch.Server.Views
{

View File

@@ -1,9 +1,5 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
namespace Torch.Server.Views.Converters

View File

@@ -1,6 +1,5 @@
using System;
using System.Globalization;
using System.Windows;
using System.Windows.Data;
using Sandbox.Definitions;
using VRage.Game;

View File

@@ -3,11 +3,8 @@ using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using System.Windows.Navigation;
namespace Torch.Server.Views.Converters
{

View File

@@ -1,16 +1,12 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using Sandbox.Engine.Networking;
using Torch.Server.ViewModels;
using Torch.Utils;
using VRage.Game;
namespace Torch.Server.Views.Converters
{

View File

@@ -1,9 +1,5 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using VRageMath;

View File

@@ -1,22 +1,5 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Sandbox.ModAPI;
using Sandbox.ModAPI.Interfaces;
using Torch.Server.ViewModels.Blocks;
using VRage.Game.ModAPI;
namespace Torch.Server.Views.Blocks
{

View File

@@ -1,17 +1,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Torch.Server.ViewModels.Blocks;
using Torch.Server.Views.Converters;

View File

@@ -1,17 +1,5 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace Torch.Server.Views.Entities
{

View File

@@ -1,17 +1,5 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace Torch.Server.Views.Entities
{

View File

@@ -1,17 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Torch.Server.ViewModels.Entities;
namespace Torch.Server.Views.Entities

View File

@@ -1,20 +1,8 @@
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using NLog;
using Torch.Collections;
using Torch.Server.ViewModels;
using Torch.Server.ViewModels.Blocks;
using Torch.Server.ViewModels.Entities;

View File

@@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows;
namespace Torch.Server.Views
{

View File

@@ -1,11 +1,7 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using Torch.Collections;
using Torch.Server.ViewModels;
namespace Torch.Server.Views;

View File

@@ -1,21 +1,7 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Diagnostics;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Sandbox.Engine.Networking;
using VRage.Game;
namespace Torch.Server
{

View File

@@ -1,31 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using NLog;
using Torch;
using Sandbox;
using Sandbox.Engine.Multiplayer;
using Sandbox.Game.Gui;
using Sandbox.Game.Multiplayer;
using Sandbox.Game.World;
using Sandbox.ModAPI;
using Torch.API;
using Torch.API.Managers;
using Torch.API.Session;
using Torch.Managers;
using Torch.Server.Managers;
using Torch.Utils;
using Torch.ViewModels;
using VRage.Game.ModAPI;

View File

@@ -3,24 +3,14 @@ using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using JetBrains.Annotations;
using NLog;
using Torch.API.WebAPI;
using Torch.Collections;
using Torch.Server.Annotations;
using Torch.Managers;
using Torch.API.Managers;
using Torch.API.Plugins;
using Torch.API.WebAPI.Plugin;

View File

@@ -1,18 +1,6 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using Torch.API.WebAPI;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.ComponentModel;
using Torch.API.WebAPI.Plugin;

View File

@@ -1,21 +1,7 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.ComponentModel;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using NLog;
using Torch.API;
using Torch.API.Managers;
using Torch.Managers;

View File

@@ -3,18 +3,7 @@ using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using Torch.Server.Managers;
using Torch.Views;
using VRage.Game.ModAPI;

View File

@@ -1,17 +1,5 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Torch.Server.ViewModels;
namespace Torch.Server.Views

View File

@@ -2,19 +2,11 @@
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Diagnostics;
using System.Windows.Navigation;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Media;
using System.Windows.Threading;
using Torch.API.Managers;
using Torch.API.Plugins;
using Torch.Server.Annotations;
using Torch.Server.Managers;
using Torch.Server.ViewModels;
namespace Torch.Server.Views
{

View File

@@ -1,26 +1,11 @@
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
using System.Timers;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Threading;
using NLog;
using NLog.Targets.Wrappers;
using Sandbox;
using Torch.API;
using Torch.API.Managers;
using Torch.Server.Managers;
using Torch.Server.ViewModels;
using Torch.Server.Views;
using MessageBoxResult = System.Windows.MessageBoxResult;
@@ -65,7 +50,7 @@ namespace Torch.Server
Themes.uiSource = this;
Themes.SetConfig((TorchConfig) Config);
Title = $"{Config.InstanceName} - Torch {server.TorchVersion}, SE {server.GameVersion}";
Title = $"{server.InstanceName} - Torch {server.TorchVersion}, SE {server.GameVersion}";
}
private void OnLoaded(object sender, RoutedEventArgs e)
@@ -113,10 +98,10 @@ namespace Torch.Server
//_config.Save(); //you idiot
if (_server?.State == ServerState.Running)
if (_server.CurrentSession is not null)
_server.Stop();
Environment.Exit(0);
_server.Destroy();
}
}
}

View File

@@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Globalization;
using System.Windows.Controls;
namespace Torch.Server.Views.ValidationRules

View File

@@ -1,18 +1,8 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using NLog;
using Sandbox.Definitions;
using Sandbox.Engine.Networking;
using Sandbox.Game.World;
using Torch.Server.Managers;
@@ -22,7 +12,6 @@ using VRage;
using VRage.Dedicated;
using VRage.FileSystem;
using VRage.Game;
using VRage.Game.Localization;
using VRage.Utils;
namespace Torch.Server

Some files were not shown because too many files have changed in this diff Show More