Skip to content

Commit

Permalink
Merge branch 'main' into feat/mod-updates-ui
Browse files Browse the repository at this point in the history
  • Loading branch information
Sewer56 committed Jan 22, 2025
2 parents 166753e + 77f3b70 commit d0c8bcf
Show file tree
Hide file tree
Showing 193 changed files with 6,033 additions and 2,487 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\src\Abstractions\NexusMods.Abstractions.Hashes\NexusMods.Abstractions.Hashes.csproj" />
<ProjectReference Include="..\..\src\Abstractions\NexusMods.Abstractions.Hashes\NexusMods.Abstractions.Hashes.csproj" />
</ItemGroup>
</Project>
38 changes: 38 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,41 @@
# v0.7.2 - 2024-01-21
This release includes style updates for the Games, Loadouts and Health Check pages along with several important bug fixes.

## UI Improvements
We've given several of the core app pages a face lift to match our latest branding changes. This includes the Games, Loadouts, and Health Check pages. You'll start to notice more stylised icons throughout the app.

![Games page (top left), Loadouts page (top right), Health Check page (bottom left), Diagnostic page (bottom right)](./docs/changelog-assets/25dabc8ad98fdddf1f359c02a6d1d911.webp)

## File Conflicts
A small, but important improvement to File Conflicts has been included in this release. In previous versions, when two mods provide files with the same name, the conflict winner would be chosen at random. We didn't feel this made a lot of sense so now the mod most recently added to the loadout will always win the conflict. To adjust the priority of mods you can now remove the more important mods from the loadout and re-add them. This is a temporary solution which we work on building a UI for conflict management.

## Bannerlord Software Extender support
Bannerlord players can now install and manage Bannerlord Software Extender (BLSE) with the app. The game will also be started with BLSE when configured. In addition, we've added some Health Checks diagnostics which show up when:

* Bannerlord Software Extender is installed but the `BLSE.LoadingInterceptor` or `BLSE.AssemblyResolver` dependencies are missing.
* Bannerlord Software Extender is installed but Harmony is missing.

On Linux, the app will now start BLSE with the `/forcenetcore` argument to avoid any potential issues related to the users's WINE or Proton setup.

## Technical Changes
* Free users will now see a modal prompting them to upgrade to Premium when clicking the "Download all" buttons for Collections. Downloading mods individually is still possible.
* When a loadout is removed, the associated Workspace data is now cleaned up.
* Reduced the number of log messages to make troubleshooting issues easier.

## Bugfixes
* Fixed an issue where collections that include bundled mods would never be installable as it would always show pending downloads.
* Fixed an issue where users in timezones 6 or more hours ahead of UTC would be unable to download collections.

## Known Issues
* Stardew Valley (Native Linux version) is not detected when installed via Heroic Launcher on Linux. The Windows version of the game can be used instead until this issue is fixed.
* Bundled mods included with collections do not appear in the UI but are still applied to your game.
* The success rating for collections is not showing the correct value.
* The game version is not checked when adding a collection meaning you can install outdated mods without being warned.
* The Collections (WIP) page is not filtered by game.
* The "Switch View" option does not persist in the Library/Installed Mods view.
* The "Load Order" heading toggle does not persist in the Load Order view.


# v0.7.1 - 2024-12-17
This release includes styling for the Load Order view, the ability to install and remove collections for all users and several improvements to the analytics we collect that will help inform our design decisions.

Expand Down
10 changes: 6 additions & 4 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
<PackageVersion Include="Avalonia.Labs.Panels" Version="11.2.0" />
<PackageVersion Include="Avalonia.Skia" Version="11.2.2" />
<PackageVersion Include="AvaloniaEdit.TextMate" Version="11.1.0" />
<PackageVersion Include="Jitbit.FastCache" Version="1.1.0" />
<PackageVersion Include="K4os.Compression.LZ4" Version="1.3.8" />
<PackageVersion Include="Bannerlord.ModuleManager" Version="6.0.246" />
<PackageVersion Include="BsDiff" Version="1.1.0" />
Expand All @@ -15,8 +16,8 @@
<PackageVersion Include="Microsoft.Extensions.TimeProvider.Testing" Version="9.0.0" />
<PackageVersion Include="Nerdbank.FullDuplexStream" Version="1.1.12" />
<PackageVersion Include="Nerdbank.Streams" Version="2.11.79" />
<PackageVersion Include="NexusMods.MnemonicDB" Version="0.9.97" />
<PackageVersion Include="NexusMods.MnemonicDB.Abstractions" Version="0.9.97" />
<PackageVersion Include="NexusMods.MnemonicDB" Version="0.9.98" />
<PackageVersion Include="NexusMods.MnemonicDB.Abstractions" Version="0.9.98" />
<PackageVersion Include="NexusMods.Hashing.xxHash3.Paths" Version="3.0.3" />
<PackageVersion Include="NexusMods.Hashing.xxHash3" Version="3.0.3" />
<PackageVersion Include="NexusMods.Paths" Version="0.15.0" />
Expand All @@ -38,6 +39,7 @@
<PackageVersion Include="R3" Version="1.2.9" />
<PackageVersion Include="R3Extensions.Avalonia" Version="1.2.9" />
<PackageVersion Include="ReactiveUI" Version="20.1.63" />
<PackageVersion Include="SmartFormat" Version="3.5.1" />
<PackageVersion Include="Spectre.Console.Testing" Version="0.49.1" />
<PackageVersion Include="SteamKit2" Version="3.0.0" />
<PackageVersion Include="StrawberryShake.Server" Version="14.1.0" />
Expand Down Expand Up @@ -137,12 +139,12 @@
<PackageVersion Include="Humanizer" Version="2.14.1" />
<PackageVersion Include="ini-parser-netstandard" Version="2.5.2" />
<PackageVersion Include="Mutagen.Bethesda.Skyrim" Version="0.44.0" />
<PackageVersion Include="NexusMods.MnemonicDB.SourceGenerator" Version="0.9.97" />
<PackageVersion Include="NexusMods.MnemonicDB.SourceGenerator" Version="0.9.98" />
<PackageVersion Include="NLog.Extensions.Logging" Version="5.3.14" />
<PackageVersion Include="OneOf" Version="3.0.271" />
<PackageVersion Include="ReactiveUI.Fody" Version="19.5.41" />
<PackageVersion Include="Sewer56.BitStream" Version="1.3.0" />
<PackageVersion Include="Splat.Microsoft.Extensions.Logging" Version="15.2.22" />
<PackageVersion Include="TransparentValueObjects" Version="1.0.2" />
</ItemGroup>
</Project>
</Project>
14 changes: 14 additions & 0 deletions NexusMods.App.sln
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Networking.Steam.
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Abstractions.Hashes", "src\Abstractions\NexusMods.Abstractions.Hashes\NexusMods.Abstractions.Hashes.csproj", "{AF703852-D7B0-4BAD-8C75-B6046C6F0490}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Networking.GOG", "src\Networking\NexusMods.Networking.GOG\NexusMods.Networking.GOG.csproj", "{F7FD18A7-2F00-4EB6-84FC-15C57326FDEB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Abstractions.GOG", "src\Abstractions\NexusMods.Abstractions.GOG\NexusMods.Abstractions.GOG.csproj", "{03AC4F34-E69A-41E3-9F00-EE5A558D01B9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NexusMods.Abstractions.Logging", "src\Abstractions\NexusMods.Abstractions.Logging\NexusMods.Abstractions.Logging.csproj", "{9DE1C2AC-927A-4BC6-B2A1-7016902F8BAE}"
EndProject
Global
Expand Down Expand Up @@ -754,6 +758,14 @@ Global
{AF703852-D7B0-4BAD-8C75-B6046C6F0490}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AF703852-D7B0-4BAD-8C75-B6046C6F0490}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AF703852-D7B0-4BAD-8C75-B6046C6F0490}.Release|Any CPU.Build.0 = Release|Any CPU
{F7FD18A7-2F00-4EB6-84FC-15C57326FDEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F7FD18A7-2F00-4EB6-84FC-15C57326FDEB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F7FD18A7-2F00-4EB6-84FC-15C57326FDEB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F7FD18A7-2F00-4EB6-84FC-15C57326FDEB}.Release|Any CPU.Build.0 = Release|Any CPU
{03AC4F34-E69A-41E3-9F00-EE5A558D01B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{03AC4F34-E69A-41E3-9F00-EE5A558D01B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{03AC4F34-E69A-41E3-9F00-EE5A558D01B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{03AC4F34-E69A-41E3-9F00-EE5A558D01B9}.Release|Any CPU.Build.0 = Release|Any CPU
{9DE1C2AC-927A-4BC6-B2A1-7016902F8BAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9DE1C2AC-927A-4BC6-B2A1-7016902F8BAE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9DE1C2AC-927A-4BC6-B2A1-7016902F8BAE}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand Down Expand Up @@ -891,6 +903,8 @@ Global
{24457AAA-8954-4BD6-8EB5-168EAC6EFB1B} = {0CB73565-1207-4A56-A79F-6A8E9BBD795C}
{17023DB9-8E31-4397-B3E1-141149987865} = {897C4198-884F-448A-B0B0-C2A6D971EAE0}
{AF703852-D7B0-4BAD-8C75-B6046C6F0490} = {0CB73565-1207-4A56-A79F-6A8E9BBD795C}
{F7FD18A7-2F00-4EB6-84FC-15C57326FDEB} = {D7E9D8F5-8AC8-4ADA-B219-C549084AD84C}
{03AC4F34-E69A-41E3-9F00-EE5A558D01B9} = {0CB73565-1207-4A56-A79F-6A8E9BBD795C}
{9DE1C2AC-927A-4BC6-B2A1-7016902F8BAE} = {0CB73565-1207-4A56-A79F-6A8E9BBD795C}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
Expand Down
1 change: 1 addition & 0 deletions NexusMods.App.sln.DotSettings
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_BEFORE_INVOCATION_RPAR/@EntryValue">True</s:Boolean>
<s:Int64 x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_LIMIT/@EntryValue">200</s:Int64>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=API/@EntryIndexedValue">API</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=CDN/@EntryIndexedValue">CDN</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=DI/@EntryIndexedValue">DI</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=DTO/@EntryIndexedValue">DTO</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=EA/@EntryIndexedValue">EA</s:String>
Expand Down
Binary file not shown.
4 changes: 2 additions & 2 deletions docs/users/AddGames.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ In this guide, we'll cover adding and removing games in the app.
## Adding a Game
To get started, head to the home screen of the app by clicking the Nexus Mods logo at the top of the spine on the left. From here, click the "My Games" option in the left menu.

![The My Games screen with Stardew Valley, Cyberpunk 2077, Baldur's Gate 3 and Bannerlord unmanaged.](./images/0.7.0/AddGame.webp)
![The My Games screen with Stardew Valley, Cyberpunk 2077, Baldur's Gate 3 and Bannerlord unmanaged.](./images/0.7.2/AddGame.webp)

This page shows a list of games that are currently supported and those that are managed by the app currently.

Expand All @@ -23,7 +23,7 @@ Once the process is complete a new entry will be added to the spine menu on the

To stop managing a game with the app, click the home button at the top of the spine menu on the left, then select "My Games" in the left menu. This will open a screen with a list of both supported and managed games.

![The My Games screen with Stardew Valley and Cyberpunk 2077 managed.](./images/0.7.0/GameAdded.webp)
![The My Games screen with Stardew Valley and Cyberpunk 2077 managed.](./images/0.7.2/GameAdded.webp)

Click on the :material-delete-forever: icon on the game you wish to remove. This process may take a few second as the game is reverted back to the state it was in before you started modding it. Your mods are not deleted and will still be available in the Library section next time you manage the game.

Expand Down
26 changes: 26 additions & 0 deletions docs/users/faq/NexusModsDownloads.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Why can't I log in or download from Nexus Mods?

These issues most often occur when your PC is not correctly handling Nexus Mods `nxm://` links. These links are used for communication between your web browser and the app. To reset the connection, follow the instructions below.

## :fontawesome-brands-windows: Windows
On a Windows PC, you can re-register the app to handle `nxm://` links by simply logging out and back in again. If this isn't working it may be related to your browser configuration, please see [Browsers](#browsers) for more.

## :fontawesome-brands-linux: Linux
On a Linux PC, you can check the default app for `nxm://` downloads and reset it following the instructions below:

- Check which app is currently set as the default by running `xdg-mime query default x-scheme-handler/nxm`.
- If this doesn't return `nexusmods-app-nxm.desktop` run this command:`xdg-settings set default-url-scheme-handler nxm nexusmods-app-nxm.desktop`.
- Restart any open web browser windows to ensure the change is applied.
- In your browser, when selecting what application should be used to open the nxm link, select **NexusMods.App NXM Handler**.

## Browsers
Depending on your choice of browser, there may be additional considerations when troubleshooting this issue.

??? info ":fontawesome-brands-firefox: Setting the default protocol in Firefox"
Mozilla browsers (such as Firefox) include their own protocol handler settings, which override those set by your operating system.

To access these settings click the menu button to the right of the address bar and select "Settings". Under the "General" category locate the section entitled "Files and Applications".

![The settings page in Mozilla Firefox 127.0.1 showing the Files and Applications section](../images/FirefoxProtocols.webp)

Here you will see the `nxm` protocol and the default app which will be used to open it. Using the drop-down you can select the default application for Firefox to use. Setting it to whichever option is set as "Default" will use the application specified by your operating system.
25 changes: 1 addition & 24 deletions docs/users/faq/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,30 +11,7 @@ Our plan is to go game-by-game and work with the modding community at each step

## Why can't I log into the app or download from Nexus Mods?

These issues most often occur when your PC is not correctly handling Nexus Mods `nxm://` links. These links are used for communication between your web browser and the app. To reset the connection, follow the instructions below.

### :fontawesome-brands-windows: Windows
On a Windows PC, you can re-register the app to handle `nxm://` links by simply logging out and back in again. If this isn't working it may be related to your browser configuration, please see [Browsers](#browsers) for more.

### :fontawesome-brands-linux: Linux
On a Linux PC, you can check the default app for `nxm://` downloads and reset it following the instructions below:

- Check which app is currently set as the default by running `xdg-mime query default x-scheme-handler/nxm`.
- If this doesn't return `nexusmods-app-nxm.desktop` run this command:`xdg-settings set default-url-scheme-handler nxm nexusmods-app-nxm.desktop`.
- Restart any open web browser windows to ensure the change is applied.
- In your browser, when selecting what application should be used to open the nxm link, select **NexusMods.App NXM Handler**.

### Browsers
Depending on your choice of browser, there may be additional considerations when troubleshooting this issue.

??? info ":fontawesome-brands-firefox: Setting the default protocol in Firefox"
Mozilla browsers (such as Firefox) include their own protocol handler settings, which override those set by your operating system.

To access these settings click the menu button to the right of the address bar and select "Settings". Under the "General" category locate the section entitled "Files and Applications".

![The settings page in Mozilla Firefox 127.0.1 showing the Files and Applications section](../images/FirefoxProtocols.webp)

Here you will see the `nxm` protocol and the default app which will be used to open it. Using the drop-down you can select the default application for Firefox to use. Setting it to whichever option is set as "Default" will use the application specified by your operating system.
These issues most often occur when your PC is not correctly handling Nexus Mods `nxm://` links. These links are used for communication between your web browser and the app. To reset the connection, see the [troubleshooting guide](./NexusModsDownloads.md).

## How do I find my log files?
To find your log files, please see [this guide](./LogFiles.md).
2 changes: 1 addition & 1 deletion docs/users/features/HealthCheck.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ Diagnostics are divided into several types:

To get more information on the specific Health Check diagnostics for the game you are managing, please see the [Games](../games/index.md) section.

![A design mockup showing examples of multiple Health Check diagnostics](../images/0.5.2/HealthCheckExample.png)
![A design mockup showing examples of multiple Health Check diagnostics](../images/0.7.2/HealthCheckExample.webp)
4 changes: 2 additions & 2 deletions docs/users/features/Loadouts.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ A loadout is automatically created when the game is managed for the first time.
??? tip "Can't see your game?"
If you're managing several games, you may need to scroll down to find the loadouts.

![The My Loadouts screen showing a single loadout for Cyberpunk 2077](../images/0.6.0/LoadoutsSingle.webp)
![The My Loadouts screen showing a single loadout for Cyberpunk 2077](../images/0.7.2/LoadoutsSingle.webp)

From this screen, simply click the "Create New Loadout" tile. A new loadout card will appear in the view and an icon will be added to the spine.

Expand All @@ -34,6 +34,6 @@ Copied loadouts contain the same list of mods (and any additional data) of the o

To remove a loadout, use the :material-delete-forever: icon at the bottom of the loadout card.

![The My Loadouts screen showing a multiple loadouts for Cyberpunk 2077](../images/0.6.0/LoadoutsMultiple.webp)
![The My Loadouts screen showing a multiple loadouts for Cyberpunk 2077](../images/0.7.2/LoadoutsMultiple.webp)

The currently active loadout cannot be removed. To completely remove a game from the app, including all loadouts, please see [Removing a Game](../AddGames.md#removing-a-game).
5 changes: 3 additions & 2 deletions docs/users/games/Bannerlord.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,18 @@ In addition to basic mod management features, players also benefit from these de
### Loadout Health Check
Get information on potential issues in your loadout(s). [Learn more about Health Checks.](../features/HealthCheck.md)

![An example Health Check message prompting the installation of a missing mod.](../images/0.7.0/HealthCheckExampleBannerlord.webp)
![An example Health Check message prompting the installation of a missing mod.](../images/0.7.2/HealthCheckExampleBannerlord.webp)

Diagnostics are shown in the following situations and uses the SubModule.xml file included with mods to generate these messages:
!!! warning "Bannerlord Software Extender (BLSE) is not supported in 0.7.1. This is planned for a future release."

- A mod is installed and requires another mod which is not installed or enabled.
- A mod is installed and requires a specific version of another mod which is not installed or enabled.
- Two mods are installed that are marked as incompatible or conflict with each other.
- The SubModule.xml file in the mod contains errors.
- The installed mods create a "circular dependency" meaning if you follow the dependencies for each mod you get into an infinite loop.
- Load order items need attention. This could be that an entry should be loaded before or after another.
- Bannerlord Software Extender is installed but the `BLSE.LoadingInterceptor` or `BLSE.AssemblyResolver` dependencies are missing.
- Bannerlord Software Extender is installed but Harmony is missing.


### Selective Game Backup
Expand Down
2 changes: 1 addition & 1 deletion docs/users/games/StardewValley.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Manage your installation of Stardew Modding API (SMAPI) by simply downloading an
### Loadout Health Check
Get information on potential issues in your loadout(s). [Learn more about Health Checks.](../features/HealthCheck.md)

![An example Health Check message prompting the installation of a missing mod.](../images/0.5.3/HealthCheckExample.webp)
![An example Health Check message prompting the installation of a missing mod.](../images/0.7.2/HealthCheckExampleSDV.webp)

Diagnostics are shown in the following situations:

Expand Down
Loading

0 comments on commit d0c8bcf

Please sign in to comment.