Skip to content

Commit abe8b6e

Browse files
authored
Net 9 and Update Deps (#2251)
* Ports everything to .net 9 and updates the deps * Update build scripts * Allow validation of loadouts that have been deleted (don't sort them by an attribute that may not exist) * Fix the broken networking tests (due to a missing DI call) * Fix package validation * Use .net 9 in release * Add .net 9 in other places * Use `TryGetValue` vs `.Value` in several places * Import missing attribute * Fix compilation error
1 parent 50a3cf8 commit abe8b6e

File tree

44 files changed

+160
-222
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+160
-222
lines changed

.github/workflows/build-linux-pupnet.yaml

+18
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,15 @@ jobs:
6868
with:
6969
ref: ${{ inputs.Target || github.sha }}
7070
submodules: "recursive"
71+
72+
- name: Setup .NET 9.x
73+
uses: actions/setup-dotnet@v4
74+
id: stepid
75+
with:
76+
dotnet-version: '9.x'
77+
78+
- name: Print debug info
79+
run: dotnet --info
7180

7281
- name: Transform inputs
7382
id: transformInputs
@@ -122,6 +131,15 @@ jobs:
122131
with:
123132
ref: ${{ inputs.Target || github.sha }}
124133
submodules: "recursive"
134+
135+
- name: Setup .NET 9.x
136+
uses: actions/setup-dotnet@v4
137+
id: stepid
138+
with:
139+
dotnet-version: '9.x'
140+
141+
- name: Print debug info
142+
run: dotnet --info
125143

126144
- name: Transform inputs
127145
id: transformInputs

.github/workflows/build-windows-pupnet.yaml

+15
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,15 @@ jobs:
8686
with:
8787
ref: ${{ inputs.Target || github.sha }}
8888
submodules: "recursive"
89+
90+
- name: Setup .NET 9.x
91+
uses: actions/setup-dotnet@v4
92+
id: stepid
93+
with:
94+
dotnet-version: '9.x'
95+
96+
- name: Print debug info
97+
run: dotnet --info
8998

9099
- name: Transform inputs
91100
id: transformInputs
@@ -163,6 +172,12 @@ jobs:
163172
$projectName = [System.IO.Path]::GetFileNameWithoutExtension("$env:ProjectFile")
164173
echo "projectDir=$projectDir" >> $env:GITHUB_OUTPUT
165174
echo "projectName=$projectName" >> $env:GITHUB_OUTPUT
175+
176+
- name: Setup .NET 9.x
177+
uses: actions/setup-dotnet@v4
178+
id: stepid
179+
with:
180+
dotnet-version: '9.x'
166181

167182
- name: Print debug info
168183
run: dotnet --info

.github/workflows/clean_environment_tests.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030

3131
build-and-test:
3232
if: github.event_name == 'push' || github.event.pull_request.draft == false
33-
uses: Nexus-Mods/NexusMods.App.Meta/.github/workflows/dotnet-build-and-test-with-osx.yaml@ae64a3be780a74e94b59ee463a413083013c8b0c
33+
uses: Nexus-Mods/NexusMods.App.Meta/.github/workflows/dotnet-build-and-test-with-osx.yaml@main
3434
with:
3535
extra-test-args: "--blame-hang-timeout 20m"
3636
test-filter: "RequiresNetworking!=True&FlakeyTest!=True"

.github/workflows/networking_tests.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,11 @@ jobs:
3030
submodules: "recursive"
3131
lfs: true
3232

33-
- name: Setup .NET 8.x
33+
- name: Setup .NET 9.x
3434
uses: actions/setup-dotnet@v4
3535
id: stepid
3636
with:
37-
dotnet-version: '8.x'
37+
dotnet-version: '9.x'
3838

3939
- name: Print debug info
4040
run: dotnet --info

.github/workflows/publish-nuget-packages.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
2323
publish:
2424
needs: get-version
25-
uses: Nexus-Mods/NexusMods.App.Meta/.github/workflows/publish-nuget-packages.yaml@7153945b739384233c7b3ba188b55201514a6fa8
25+
uses: Nexus-Mods/NexusMods.App.Meta/.github/workflows/publish-nuget-packages.yaml@main
2626
with:
2727
version: ${{ needs.get-version.outputs.version }}
2828
use-nuget: true

.github/workflows/validate-nupkgs.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ jobs:
2424
with:
2525
submodules: "recursive"
2626

27-
- name: Setup .NET SDK
28-
uses: actions/setup-dotnet@v3
27+
- name: Setup .NET 9.x
28+
uses: actions/setup-dotnet@v4
2929
with:
30-
dotnet-version: '8.x'
30+
dotnet-version: '9.x'
3131

3232
- name: Pack
3333
run: dotnet pack

Directory.Build.props

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
</PropertyGroup>
55

66
<PropertyGroup>
7-
<TargetFramework>net8.0</TargetFramework>
7+
<TargetFramework>net9.0</TargetFramework>
88
<ImplicitUsings>enable</ImplicitUsings>
99
<Nullable>enable</Nullable>
1010
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>

Directory.Packages.props

+49-49
Original file line numberDiff line numberDiff line change
@@ -4,53 +4,53 @@
44
<PackageVersion Include="Avalonia.Labs.Panels" Version="11.2.0" />
55
<PackageVersion Include="Avalonia.Skia" Version="11.2.0" />
66
<PackageVersion Include="AvaloniaEdit.TextMate" Version="11.1.0" />
7+
<PackageVersion Include="K4os.Compression.LZ4" Version="1.3.8" />
78
<PackageVersion Include="Bannerlord.ModuleManager" Version="6.0.242" />
8-
<PackageVersion Include="K4os.Compression.LZ4" Version="1.3.7-beta" />
99
<PackageVersion Include="BsDiff" Version="1.1.0" />
1010
<PackageVersion Include="LinqGen" Version="0.3.1" />
11-
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="8.9.1" />
12-
<PackageVersion Include="Microsoft.Extensions.Options" Version="8.0.2" />
11+
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="9.0.0" />
12+
<PackageVersion Include="Microsoft.Extensions.Options" Version="9.0.0" />
1313
<PackageVersion Include="Nerdbank.FullDuplexStream" Version="1.1.12" />
14-
<PackageVersion Include="Nerdbank.Streams" Version="2.11.74" />
15-
<PackageVersion Include="NexusMods.MnemonicDB" Version="0.9.95" />
16-
<PackageVersion Include="NexusMods.MnemonicDB.Abstractions" Version="0.9.95" />
17-
<PackageVersion Include="NexusMods.Hashing.xxHash3.Paths" Version="3.0.2" />
18-
<PackageVersion Include="NexusMods.Hashing.xxHash3" Version="3.0.2" />
19-
<PackageVersion Include="NexusMods.Paths" Version="0.11.0" />
20-
<PackageVersion Include="NexusMods.Paths.Extensions.Nx" Version="0.10.0" />
21-
<PackageVersion Include="NexusMods.Paths.TestingHelpers" Version="0.10.0" />
14+
<PackageVersion Include="Nerdbank.Streams" Version="2.11.79" />
15+
<PackageVersion Include="NexusMods.MnemonicDB" Version="0.9.97" />
16+
<PackageVersion Include="NexusMods.MnemonicDB.Abstractions" Version="0.9.97" />
17+
<PackageVersion Include="NexusMods.Hashing.xxHash3.Paths" Version="3.0.3" />
18+
<PackageVersion Include="NexusMods.Hashing.xxHash3" Version="3.0.3" />
19+
<PackageVersion Include="NexusMods.Paths" Version="0.15.0" />
20+
<PackageVersion Include="NexusMods.Paths.Extensions.Nx" Version="0.15.0" />
21+
<PackageVersion Include="NexusMods.Paths.TestingHelpers" Version="0.15.0" />
2222
<PackageVersion Include="NexusMods.Archives.Nx" Version="0.6.1" />
2323
<PackageVersion Include="NexusMods.Telemetry.OpenTelemetry" Version="1.0.0" />
2424
<PackageVersion Include="FomodInstaller.Interface" Version="1.2.0" />
2525
<PackageVersion Include="FomodInstaller.Scripting.XmlScript" Version="1.0.0" />
2626
<PackageVersion Include="Bannerlord.LauncherManager" Version="1.0.138" />
2727
<PackageVersion Include="FetchBannerlordVersion" Version="1.0.6.46" />
2828
<PackageVersion Include="NLog" Version="5.2.8" />
29-
<PackageVersion Include="Noggog.CSharpExt" Version="2.64.0" />
29+
<PackageVersion Include="Noggog.CSharpExt" Version="2.67.3" />
3030
<PackageVersion Include="ObservableCollections" Version="2.2.0" />
31-
<PackageVersion Include="ObservableCollections.R3" Version="3.1.0" />
31+
<PackageVersion Include="ObservableCollections.R3" Version="3.3.2" />
3232
<PackageVersion Include="QoiSharp" Version="1.0.0" />
3333
<PackageVersion Include="R3" Version="1.2.9" />
3434
<PackageVersion Include="R3Extensions.Avalonia" Version="1.2.9" />
3535
<PackageVersion Include="ReactiveUI" Version="20.1.63" />
3636
<PackageVersion Include="Spectre.Console.Testing" Version="0.49.1" />
37-
<PackageVersion Include="StrawberryShake.Server" Version="13.9.12" />
37+
<PackageVersion Include="StrawberryShake.Server" Version="14.1.0" />
3838
<PackageVersion Include="System.Linq" Version="4.3.0" />
39-
<PackageVersion Include="System.Text.Json" Version="8.0.5" />
40-
<PackageVersion Include="TextMateSharp.Grammars" Version="1.0.63" />
41-
<PackageVersion Include="OpenTelemetry" Version="1.8.1" />
42-
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.8.1" />
43-
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.8.1" />
44-
<PackageVersion Include="Polly.Core" Version="8.4.2" />
45-
<PackageVersion Include="Polly" Version="8.4.2" />
46-
<PackageVersion Include="Verify" Version="26.6.0" />
47-
<PackageVersion Include="ZstdSharp.Port" Version="0.8.1" />
39+
<PackageVersion Include="System.Text.Json" Version="9.0.0" VersionOverride="9.0.0" />
40+
<PackageVersion Include="TextMateSharp.Grammars" Version="1.0.64" />
41+
<PackageVersion Include="OpenTelemetry" Version="1.10.0" />
42+
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.10.0" />
43+
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.10.0" />
44+
<PackageVersion Include="Polly.Core" Version="8.5.0" />
45+
<PackageVersion Include="Polly" Version="8.5.0" />
46+
<PackageVersion Include="Verify" Version="28.2.1" />
47+
<PackageVersion Include="ZstdSharp.Port" Version="0.8.2" />
4848
</ItemGroup>
4949
<ItemGroup>
50-
<PackageVersion Include="MemoryPack.Streaming" Version="1.21.1" />
51-
<PackageVersion Include="MemoryPack" Version="1.21.1" />
50+
<PackageVersion Include="MemoryPack.Streaming" Version="1.21.3" />
51+
<PackageVersion Include="MemoryPack" Version="1.21.3" />
5252
<PackageVersion Include="Spectre.Console" Version="0.49.1" />
53-
<PackageVersion Include="JetBrains.Annotations" Version="2023.3.0" PrivateAssets="all" />
53+
<PackageVersion Include="JetBrains.Annotations" Version="2024.3.0" PrivateAssets="all" />
5454
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0">
5555
<PrivateAssets>all</PrivateAssets>
5656
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
@@ -64,24 +64,24 @@
6464
<PackageVersion Include="Avalonia.Headless" Version="11.2.0" />
6565
<PackageVersion Include="Avalonia.ReactiveUI" Version="11.2.0" />
6666
<PackageVersion Include="Avalonia.Themes.Fluent" Version="11.2.0" />
67-
<PackageVersion Include="Projektanker.Icons.Avalonia.MaterialDesign" Version="9.4.0" />
67+
<PackageVersion Include="Projektanker.Icons.Avalonia.MaterialDesign" Version="9.4.1" />
6868
<PackageVersion Include="Avalonia.Svg.Skia" Version="11.2.0" />
6969
<PackageVersion Include="LiveChartsCore.SkiaSharpView.Avalonia" Version="2.0.0-rc2" />
7070
<!-- keep this version in sync with Avalonia (https://github.com/whistyun/Markdown.Avalonia?tab=readme-ov-file#nuget) -->
7171
<PackageVersion Include="Markdown.Avalonia.Tight" Version="11.0.3-a1" />
7272
<PackageVersion Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
7373
<PackageVersion Include="System.CommandLine.NamingConventionBinder" Version="2.0.0-beta4.22272.1" />
7474
<PackageVersion Include="System.IdentityModel.Tokens.Jwt" Version="7.2.0" />
75-
<PackageVersion Include="System.IO.Hashing" Version="8.0.0" />
75+
<PackageVersion Include="System.IO.Hashing" Version="9.0.0" />
7676
<PackageVersion Include="System.Linq.Async" Version="6.0.1" />
7777
<PackageVersion Include="System.Reactive" Version="6.0.1" />
78-
<PackageVersion Include="Microsoft.AspNetCore.WebUtilities" Version="8.0.8" />
79-
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.1" />
80-
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
81-
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="8.0.0" />
82-
<PackageVersion Include="Microsoft.Extensions.Logging" Version="8.0.0" />
83-
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.1" />
84-
<PackageVersion Include="Microsoft.Extensions.ObjectPool" Version="8.0.8" />
78+
<PackageVersion Include="Microsoft.AspNetCore.WebUtilities" Version="9.0.0" />
79+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="9.0.0" />
80+
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="9.0.0" />
81+
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="9.0.0" />
82+
<PackageVersion Include="Microsoft.Extensions.Logging" Version="9.0.0" />
83+
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.0" />
84+
<PackageVersion Include="Microsoft.Extensions.ObjectPool" Version="9.0.0" />
8585
<PackageVersion Include="Microsoft.IO.RecyclableMemoryStream" Version="3.0.0" />
8686
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.4" />
8787
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.8.0" />
@@ -93,27 +93,27 @@
9393
<PrivateAssets>all</PrivateAssets>
9494
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
9595
</PackageVersion>
96-
<PackageVersion Include="FluentAssertions" Version="6.12.0" />
96+
<PackageVersion Include="FluentAssertions" Version="6.12.2" />
9797
<PackageVersion Include="FluentAssertions.OneOf" Version="0.0.5" />
98-
<PackageVersion Include="FluentAssertions.Analyzers" Version="0.31.0">
98+
<PackageVersion Include="FluentAssertions.Analyzers" Version="0.34.1">
9999
<PrivateAssets>all</PrivateAssets>
100100
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
101101
</PackageVersion>
102-
<PackageVersion Include="GitHubActionsTestLogger" Version="2.3.3">
102+
<PackageVersion Include="GitHubActionsTestLogger" Version="2.4.1">
103103
<PrivateAssets>all</PrivateAssets>
104104
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
105105
</PackageVersion>
106106
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
107-
<PackageVersion Include="NSubstitute" Version="5.1.0" />
107+
<PackageVersion Include="NSubstitute" Version="5.3.0" />
108108
<PackageVersion Include="NSubstitute.Analyzers.CSharp" Version="1.0.17">
109109
<PrivateAssets>all</PrivateAssets>
110110
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
111111
</PackageVersion>
112-
<PackageVersion Include="Verify.Xunit" Version="26.6.0" />
113-
<PackageVersion Include="Verify.ImageMagick" Version="3.4.2" />
114-
<PackageVersion Include="Verify.SourceGenerators" Version="2.2.0" />
112+
<PackageVersion Include="Verify.Xunit" Version="28.2.1" />
113+
<PackageVersion Include="Verify.ImageMagick" Version="3.6.0" />
114+
<PackageVersion Include="Verify.SourceGenerators" Version="2.5.0" />
115115
<PackageVersion Include="xunit" Version="2.9.2" />
116-
<PackageVersion Include="Xunit.DependencyInjection" Version="9.4.0" />
116+
<PackageVersion Include="Xunit.DependencyInjection" Version="9.6.0" />
117117
<PackageVersion Include="Xunit.DependencyInjection.Logging" Version="9.0.0" />
118118
<PackageVersion Include="Xunit.DependencyInjection.SkippableFact" Version="9.0.0" />
119119
<PackageVersion Include="xunit.extensibility.core" Version="2.6.3" />
@@ -122,20 +122,20 @@
122122
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
123123
</PackageVersion>
124124
<PackageVersion Include="Xunit.SkippableFact" Version="1.4.13" />
125-
<PackageVersion Include="BenchmarkDotNet" Version="0.13.12" />
126-
<PackageVersion Include="BitFaster.Caching" Version="2.5.0" />
127-
<PackageVersion Include="CliWrap" Version="3.6.6" />
125+
<PackageVersion Include="BenchmarkDotNet" Version="0.14.0" />
126+
<PackageVersion Include="BitFaster.Caching" Version="2.5.2" />
127+
<PackageVersion Include="CliWrap" Version="3.6.7" />
128128
<PackageVersion Include="DynamicData" Version="9.0.4" />
129129
<PackageVersion Include="GameFinder" Version="4.3.3" />
130130
<PackageVersion Include="Humanizer" Version="2.14.1" />
131131
<PackageVersion Include="ini-parser-netstandard" Version="2.5.2" />
132132
<PackageVersion Include="Mutagen.Bethesda.Skyrim" Version="0.44.0" />
133-
<PackageVersion Include="NexusMods.MnemonicDB.SourceGenerator" Version="0.9.95" />
134-
<PackageVersion Include="NLog.Extensions.Logging" Version="5.3.11" />
133+
<PackageVersion Include="NexusMods.MnemonicDB.SourceGenerator" Version="0.9.97" />
134+
<PackageVersion Include="NLog.Extensions.Logging" Version="5.3.14" />
135135
<PackageVersion Include="OneOf" Version="3.0.271" />
136136
<PackageVersion Include="ReactiveUI.Fody" Version="19.5.41" />
137137
<PackageVersion Include="Sewer56.BitStream" Version="1.3.0" />
138138
<PackageVersion Include="Splat.Microsoft.Extensions.Logging" Version="15.2.22" />
139-
<PackageVersion Include="TransparentValueObjects" Version="1.0.1" />
139+
<PackageVersion Include="TransparentValueObjects" Version="1.0.2" />
140140
</ItemGroup>
141141
</Project>

extern/SMAPI

Submodule SMAPI updated 719 files

src/Abstractions/NexusMods.Abstractions.FileStore.Nx/Models/ArchivedFileContainer.cs

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using NexusMods.Abstractions.MnemonicDB.Attributes;
2+
using NexusMods.MnemonicDB.Abstractions.Attributes;
23
using NexusMods.MnemonicDB.Abstractions.Models;
34
namespace NexusMods.Abstractions.FileStore.Nx.Models;
45

src/Abstractions/NexusMods.Abstractions.Library.Models/DownloadedFile.cs

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using JetBrains.Annotations;
22
using NexusMods.Abstractions.MnemonicDB.Attributes;
3+
using NexusMods.MnemonicDB.Abstractions.Attributes;
34
using NexusMods.MnemonicDB.Abstractions.Models;
45

56
namespace NexusMods.Abstractions.Library.Models;

src/Abstractions/NexusMods.Abstractions.Library.Models/LibraryFile.cs

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using JetBrains.Annotations;
22
using NexusMods.Abstractions.MnemonicDB.Attributes;
3+
using NexusMods.MnemonicDB.Abstractions.Attributes;
34
using NexusMods.MnemonicDB.Abstractions.Models;
45

56
namespace NexusMods.Abstractions.Library.Models;

src/Abstractions/NexusMods.Abstractions.Loadouts.Synchronizers/ALoadoutSynchronizer.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -638,7 +638,7 @@ private async Task ActionIngestFromDisk(SyncActionGroupings<SyncTreeNode> groupi
638638
{
639639
// If we are swapping loadouts, then we need to synchronize the previous loadout first to ingest
640640
// any changes, then we can apply the new loadout.
641-
if (GameInstallMetadata.LastSyncedLoadout.TryGet(loadout.Installation, out var lastAppliedId) && lastAppliedId != loadout.Id)
641+
if (GameInstallMetadata.LastSyncedLoadout.TryGetValue(loadout.Installation, out var lastAppliedId) && lastAppliedId != loadout.Id)
642642
{
643643
var prevLoadout = Loadout.Load(loadout.Db, lastAppliedId);
644644
if (prevLoadout.IsValid())
@@ -1084,7 +1084,7 @@ public async Task DeactivateCurrentLoadout(GameInstallation installation)
10841084
public Optional<LoadoutId> GetCurrentlyActiveLoadout(GameInstallation installation)
10851085
{
10861086
var metadata = installation.GetMetadata(Connection);
1087-
if (!GameInstallMetadata.LastSyncedLoadout.TryGet(metadata, out var lastAppliedLoadout))
1087+
if (!GameInstallMetadata.LastSyncedLoadout.TryGetValue(metadata, out var lastAppliedLoadout))
10881088
return Optional<LoadoutId>.None;
10891089
return LoadoutId.From(lastAppliedLoadout);
10901090
}
@@ -1246,7 +1246,7 @@ public async Task DeleteLoadout(LoadoutId loadoutId, GarbageCollectorRunMode gcR
12461246
{
12471247
var loadout = Loadout.Load(Connection.Db, loadoutId);
12481248
var metadata = GameInstallMetadata.Load(Connection.Db, loadout.InstallationInstance.GameMetadataId);
1249-
if (GameInstallMetadata.LastSyncedLoadout.TryGet(metadata, out var lastAppliedLoadout) && lastAppliedLoadout == loadoutId.Value)
1249+
if (GameInstallMetadata.LastSyncedLoadout.TryGetValue(metadata, out var lastAppliedLoadout) && lastAppliedLoadout == loadoutId.Value)
12501250
{
12511251
await DeactivateCurrentLoadout(loadout.InstallationInstance);
12521252
}

src/Abstractions/NexusMods.Abstractions.Loadouts/DiskStateExtensions.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public static class DiskStateExtensions
1919
/// </summary>
2020
public static Optional<LoadoutId> LastSynchronizedLoadout(this GameInstallMetadata.ReadOnly metadata)
2121
{
22-
if (GameInstallMetadata.LastSyncedLoadout.TryGet(metadata, out var lastApplied))
22+
if (GameInstallMetadata.LastSyncedLoadout.TryGetValue(metadata, out var lastApplied))
2323
return LoadoutId.From(lastApplied);
2424
return Optional<LoadoutId>.None;
2525
}

src/Abstractions/NexusMods.Abstractions.Loadouts/Extensions/LoadoutItemExtensions.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public static class LoadoutItemExtensions
1717
yield return item;
1818

1919
// TODO: Fix this once we fix Attr.TryGet on value types
20-
if (item.Contains(LoadoutItem.Parent) && LoadoutItem.Parent.TryGet(item, out var parent))
20+
if (item.Contains(LoadoutItem.Parent) && LoadoutItem.Parent.TryGetValue(item, out var parent))
2121
{
2222
item = LoadoutItem.Load(item.Db, parent);
2323
}

src/Abstractions/NexusMods.Abstractions.Loadouts/Loadout.cs

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
using NexusMods.MnemonicDB.Abstractions.BuiltInEntities;
1111
using NexusMods.MnemonicDB.Abstractions.Models;
1212
using NexusMods.MnemonicDB.Abstractions.TxFunctions;
13+
using EntityExtensions = NexusMods.Abstractions.MnemonicDB.Attributes.Extensions.EntityExtensions;
1314
using ULongAttribute = NexusMods.Abstractions.MnemonicDB.Attributes.ULongAttribute;
1415

1516
namespace NexusMods.Abstractions.Loadouts;

0 commit comments

Comments
 (0)