Update to .NET 8

This commit is contained in:
AeonLucid
2024-07-01 21:52:30 +02:00
parent 2cca797496
commit 3691d229d5
17 changed files with 54 additions and 47 deletions
+5 -8
View File
@@ -15,15 +15,15 @@ jobs:
build: build:
runs-on: windows-2022 runs-on: windows-2022
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Setup Dotnet - name: Setup Dotnet
uses: actions/setup-dotnet@v1 uses: actions/setup-dotnet@v4
with: with:
dotnet-version: '6.0.x' dotnet-version: '8.0.x'
- name: Setup MSBuild - name: Setup MSBuild
uses: microsoft/setup-msbuild@v1.0.3 uses: microsoft/setup-msbuild@v2.0.0
- name: Restore NuGet - name: Restore NuGet
run: dotnet restore ${{env.PROJ_LAUNCHER}} run: dotnet restore ${{env.PROJ_LAUNCHER}}
@@ -39,11 +39,8 @@ jobs:
- name: Build Prospect.Launcher - name: Build Prospect.Launcher
run: dotnet publish -o ./Prospect-Launcher -r win-x64 --no-self-contained -c Release -v minimal ${{env.PROJ_LAUNCHER}} run: dotnet publish -o ./Prospect-Launcher -r win-x64 --no-self-contained -c Release -v minimal ${{env.PROJ_LAUNCHER}}
- name: Compress Prospect.Launcher
run: 7z a launcher.zip ./Prospect-Launcher
- uses: actions/upload-artifact@v2 - uses: actions/upload-artifact@v2
with: with:
name: Prospect.Launcher name: Prospect.Launcher
path: ./launcher.zip path: ./Prospect-Launcher
retention-days: 14 retention-days: 14
+1 -1
View File
@@ -1,6 +1,6 @@
# Prospect # Prospect
[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/AeonLucid/Prospect/Build?style=for-the-badge)](https://github.com/AeonLucid/Prospect/actions) [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/AeonLucid/Prospect/build.yml?style=for-the-badge)](https://github.com/AeonLucid/Prospect/actions)
Also known as "The Cycle: Frontier". Also known as "The Cycle: Frontier".
@@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<PublishSingleFile>true</PublishSingleFile> <PublishSingleFile>true</PublishSingleFile>
<SelfContained>false</SelfContained> <SelfContained>false</SelfContained>
@@ -117,7 +117,8 @@ public class ClientController : Controller
}); });
} }
_logger.LogWarning("Invalid steam ticket specified, IsValid {IsValid}, HasValidSignature {Sig}, AppId {AppId}", _logger.LogWarning("Invalid steam ticket specified, IsExpired {IsExpired}, IsValid {IsValid}, HasValidSignature {Sig}, AppId {AppId}",
ticket.IsExpired,
ticket.IsValid, ticket.IsValid,
ticket.HasValidSignature, ticket.HasValidSignature,
ticket.AppId); ticket.AppId);
@@ -1,6 +1,6 @@
using System.Text; using System.Text;
using System.Text.Json;
using Microsoft.AspNetCore.Http.Extensions; using Microsoft.AspNetCore.Http.Extensions;
using Newtonsoft.Json;
namespace Prospect.Server.Api.Middleware; namespace Prospect.Server.Api.Middleware;
@@ -45,7 +45,12 @@ public class RequestLoggerMiddleware
var body = await reader.ReadToEndAsync(); var body = await reader.ReadToEndAsync();
if (body.StartsWith("{")) if (body.StartsWith("{"))
{ {
return JsonConvert.SerializeObject(JsonConvert.DeserializeObject(body), Formatting.Indented); var bodyJson = JsonSerializer.SerializeToUtf8Bytes(JsonSerializer.Deserialize<object>(body), new JsonSerializerOptions
{
WriteIndented = true
});
return Encoding.UTF8.GetString(bodyJson);
} }
return body; return body;
@@ -32,5 +32,5 @@ public class FUpdateUserDataRequest
/// <summary> /// <summary>
/// Unique PlayFab assigned ID of the user on whom the operation will be performed. /// Unique PlayFab assigned ID of the user on whom the operation will be performed.
/// </summary> /// </summary>
public string PlayFabId { get; set; } public string? PlayFabId { get; set; }
} }
@@ -1,16 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>true</ImplicitUsings> <ImplicitUsings>true</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="MongoDB.Driver" Version="2.14.1" /> <PackageReference Include="MongoDB.Driver" Version="2.27.0" />
<PackageReference Include="Serilog.AspNetCore" Version="4.1.0" /> <PackageReference Include="Serilog.AspNetCore" Version="8.0.1" />
<PackageReference Include="Sigil" Version="5.0.0" /> <PackageReference Include="Sigil" Version="5.0.0" />
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="6.15.0" /> <PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="7.6.2" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -16,7 +16,7 @@ public class DbUserDataService : BaseDbService<PlayFabUserData>
return await Collection.Find(data => data.PlayFabId == playFabId && data.Key == key).AnyAsync(); return await Collection.Find(data => data.PlayFabId == playFabId && data.Key == key).AnyAsync();
} }
public async Task<PlayFabUserData> FindAsync(string playFabId, string key) public async Task<PlayFabUserData?> FindAsync(string playFabId, string key)
{ {
return await Collection.Find(data => data.PlayFabId == playFabId && data.Key == key).SingleOrDefaultAsync(); return await Collection.Find(data => data.PlayFabId == playFabId && data.Key == key).SingleOrDefaultAsync();
} }
@@ -120,14 +120,14 @@ public class UserDataService
/// <param name="currentUserId"> /// <param name="currentUserId">
/// The authenticated user id. /// The authenticated user id.
/// </param> /// </param>
/// <param name="requestUserId"> /// <param name="targetUserId">
/// The requested user id. /// The target user id.
/// </param> /// </param>
/// <param name="changes"></param> /// <param name="changes"></param>
/// <returns></returns> /// <returns></returns>
public async Task UpdateAsync( public async Task UpdateAsync(
string currentUserId, string currentUserId,
string requestUserId, string? targetUserId,
Dictionary<string, string> changes) Dictionary<string, string> changes)
{ {
if (changes.Count == 0) if (changes.Count == 0)
@@ -140,13 +140,13 @@ public class UserDataService
throw new ArgumentNullException(nameof(currentUserId)); throw new ArgumentNullException(nameof(currentUserId));
} }
if (requestUserId == null) if (targetUserId == null)
{ {
requestUserId = currentUserId; targetUserId = currentUserId;
} }
// Whether we are updating someone else. // Whether we are updating someone else.
var other = currentUserId != requestUserId; var other = currentUserId != targetUserId;
foreach (var (key, value) in changes) foreach (var (key, value) in changes)
{ {
@@ -155,10 +155,11 @@ public class UserDataService
{ {
if (other) if (other)
{ {
_logger.LogWarning("User {PlayFabId} attempted to update non-existing key {Key} of another user {PlayFabIdOther}", currentUserId, key, requestUserId); _logger.LogWarning("User {PlayFabId} attempted to update non-existing key {Key} of another user {PlayFabIdOther}", currentUserId, key, targetUserId);
} }
else else
{ {
_logger.LogDebug("User {PlayFabId} created key {Key}", currentUserId, key);
await _dbUserDataService.InsertAsync(currentUserId, key, value, false); await _dbUserDataService.InsertAsync(currentUserId, key, value, false);
} }
@@ -2,14 +2,14 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Serilog" Version="2.10.0" /> <PackageReference Include="Serilog" Version="4.0.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="4.0.1" /> <PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
+1 -1
View File
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>true</ImplicitUsings> <ImplicitUsings>true</ImplicitUsings>
</PropertyGroup> </PropertyGroup>
@@ -11,12 +11,8 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Remove="Templates\NMTMessage.sbntxt" /> <PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.8.0" PrivateAssets="all" />
</ItemGroup> <PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.4" PrivateAssets="all" />
<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.0.1" PrivateAssets="all" />
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.3" PrivateAssets="all" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -22,6 +22,6 @@ public class FStringTests
var reader = new FNetBitReader(null, writer.GetData(), (int)writer.GetNumBits()); var reader = new FNetBitReader(null, writer.GetData(), (int)writer.GetNumBits());
var read = FString.Deserialize(reader); var read = FString.Deserialize(reader);
Assert.AreEqual(testValue, read); Assert.That(read, Is.EqualTo(testValue));
} }
} }
@@ -11,20 +11,20 @@ public class FPackedHeaderTests
[TestCase((uint)1221642592, (ushort)4660)] [TestCase((uint)1221642592, (ushort)4660)]
public void TestGetSeq(uint input, ushort output) public void TestGetSeq(uint input, ushort output)
{ {
Assert.AreEqual(output, FPackedHeader.GetSeq(input).Value); Assert.That(FPackedHeader.GetSeq(input).Value, Is.EqualTo(output));
} }
[Test] [Test]
[TestCase((uint)1221642592, (ushort)3222)] [TestCase((uint)1221642592, (ushort)3222)]
public void TestGetAckedSeq(uint input, ushort output) public void TestGetAckedSeq(uint input, ushort output)
{ {
Assert.AreEqual(output, FPackedHeader.GetAckedSeq(input).Value); Assert.That(FPackedHeader.GetAckedSeq(input).Value, Is.EqualTo(output));
} }
[Test] [Test]
[TestCase((uint)1221642592, (uint)0)] [TestCase((uint)1221642592, (uint)0)]
public void TestGetHistoryWordCount(uint input, uint output) public void TestGetHistoryWordCount(uint input, uint output)
{ {
Assert.AreEqual(output, FPackedHeader.GetHistoryWordCount(input)); Assert.That(FPackedHeader.GetHistoryWordCount(input), Is.EqualTo(output));
} }
} }
@@ -1,17 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<IsPackable>false</IsPackable> <IsPackable>false</IsPackable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.11.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0" />
<PackageReference Include="NUnit" Version="3.13.2" /> <PackageReference Include="NUnit" Version="4.1.0" />
<PackageReference Include="NUnit3TestAdapter" Version="4.0.0" /> <PackageReference Include="NUnit3TestAdapter" Version="4.5.0" />
<PackageReference Include="coverlet.collector" Version="3.1.0" /> <PackageReference Include="coverlet.collector" Version="6.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -7,6 +7,10 @@ namespace Prospect.Unreal.Net;
public ref struct FActorSpawnParameters public ref struct FActorSpawnParameters
{ {
public FActorSpawnParameters()
{
}
/// <summary> /// <summary>
/// A name to assign as the Name of the Actor being spawned. /// A name to assign as the Name of the Actor being spawned.
/// If no value is specified, the name of the spawned Actor will be automatically generated using the form [Class]_[Number]. /// If no value is specified, the name of the spawned Actor will be automatically generated using the form [Class]_[Number].
+2 -2
View File
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
@@ -20,7 +20,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Serilog" Version="2.10.0" /> <PackageReference Include="Serilog" Version="4.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>