Merge pull request #1113 from wabbajack-tools/code-cleanup

Code cleanup
This commit is contained in:
Timothy Baldridge 2020-10-01 12:34:36 -06:00 committed by GitHub
commit 66506283ec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
35 changed files with 51 additions and 94 deletions

View File

@ -1,6 +1,6 @@
### Changelog ### Changelog
#### Version - 2.3.0.0 - 9/21/2020 #### Version - 2.3.0.1 - 10/1/2020
* Rewrote the file extraction routines. New code uses less memory, less disk space, and performs less thrashing on HDDs * Rewrote the file extraction routines. New code uses less memory, less disk space, and performs less thrashing on HDDs
* Reworked IPS4 integration to reduce download failures * Reworked IPS4 integration to reduce download failures
* Profiles can now contain an (optional) file `compiler_settings.json` that includes options for other games to be used during install. * Profiles can now contain an (optional) file `compiler_settings.json` that includes options for other games to be used during install.
@ -9,6 +9,9 @@ This is now the only way to include extra games in the install process, implicit
* Includes a "Favor performance over RAM" optional mode (defaults to off) that will use excessive amounts of RAM in exchange * Includes a "Favor performance over RAM" optional mode (defaults to off) that will use excessive amounts of RAM in exchange
for almost 1GB/sec install speed on the correct hardware. Don't enable this unless you have a fast SSD and at least 2.5GB of RAM for every for almost 1GB/sec install speed on the correct hardware. Don't enable this unless you have a fast SSD and at least 2.5GB of RAM for every
install thread. install thread.
* Fixed Extraction so that zip files no longer cause WJ to CTD
* Better path logging during install and compilation
* Fix the "this was created with a newer version of Wabbajack" issue
* If a downloaded file doesn't match the expected hash, try alternative download locations, if allowed * If a downloaded file doesn't match the expected hash, try alternative download locations, if allowed

View File

@ -6,8 +6,8 @@
<AssemblyName>wabbajack-cli</AssemblyName> <AssemblyName>wabbajack-cli</AssemblyName>
<Company>Wabbajack</Company> <Company>Wabbajack</Company>
<Platforms>x64</Platforms> <Platforms>x64</Platforms>
<AssemblyVersion>2.3.0.0</AssemblyVersion> <AssemblyVersion>2.3.0.1</AssemblyVersion>
<FileVersion>2.3.0.0</FileVersion> <FileVersion>2.3.0.1</FileVersion>
<Copyright>Copyright © 2019-2020</Copyright> <Copyright>Copyright © 2019-2020</Copyright>
<Description>An automated ModList installer</Description> <Description>An automated ModList installer</Description>
<PublishReadyToRun>true</PublishReadyToRun> <PublishReadyToRun>true</PublishReadyToRun>

View File

@ -11,8 +11,7 @@ namespace Wabbajack.Common
{ {
public static class Consts public static class Consts
{ {
public static Version? CurrentWabbajackVersion { get; set; } public static Version? CurrentMinimumWabbajackVersion = new Version("2.2.2.0");
public static bool TestMode { get; set; } = false; public static bool TestMode { get; set; } = false;
public static RelativePath GameFolderFilesDir = (RelativePath)"Game Folder Files"; public static RelativePath GameFolderFilesDir = (RelativePath)"Game Folder Files";

View File

@ -65,10 +65,6 @@ namespace Wabbajack
/// When the switch is on, the source will be subscribed to, and its updates passed through. /// When the switch is on, the source will be subscribed to, and its updates passed through.
/// When the switch is off, the subscription to the source observable will be stopped, and no signal will be published. /// When the switch is off, the subscription to the source observable will be stopped, and no signal will be published.
/// </summary> /// </summary>
/// <param name="source">Source observable to subscribe to if on</param>
/// <param name="filterSwitch">On/Off signal of whether to subscribe to source observable</param>
/// <param name="valueOnOff">Value to fire when switching off</param>
/// <returns>Observable that publishes data from source, if the switch is on.</returns>
public static IObservable<T> FlowSwitch<T>(this IObservable<T> source, IObservable<bool> filterSwitch, T valueWhenOff) public static IObservable<T> FlowSwitch<T>(this IObservable<T> source, IObservable<bool> filterSwitch, T valueWhenOff)
{ {
return filterSwitch return filterSwitch

View File

@ -742,10 +742,6 @@ namespace Wabbajack.Common
/// <summary> /// <summary>
/// Roundtrips the value through the JSON routines /// Roundtrips the value through the JSON routines
/// </summary> /// </summary>
/// <typeparam name="TV"></typeparam>
/// <typeparam name="TR"></typeparam>
/// <param name="tv"></param>
/// <returns></returns>
public static T ViaJSON<T>(this T tv) public static T ViaJSON<T>(this T tv)
{ {
var json = tv.ToJson(); var json = tv.ToJson();
@ -844,7 +840,7 @@ namespace Wabbajack.Common
{ {
return benchmarkFile.FromJson<long>(); return benchmarkFile.FromJson<long>();
} }
catch (Exception ex) catch (Exception)
{ {
// ignored // ignored
} }

View File

@ -4,8 +4,8 @@
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>netcoreapp3.1</TargetFramework>
<UseWPF>true</UseWPF> <UseWPF>true</UseWPF>
<AssemblyVersion>2.3.0.0</AssemblyVersion> <AssemblyVersion>2.3.0.1</AssemblyVersion>
<FileVersion>2.3.0.0</FileVersion> <FileVersion>2.3.0.1</FileVersion>
<Copyright>Copyright © 2019-2020</Copyright> <Copyright>Copyright © 2019-2020</Copyright>
<Description>Wabbajack Application Launcher</Description> <Description>Wabbajack Application Launcher</Description>
<PublishReadyToRun>true</PublishReadyToRun> <PublishReadyToRun>true</PublishReadyToRun>

View File

@ -57,7 +57,7 @@ namespace Wabbajack.Lib
: base(steps) : base(steps)
{ {
//set in MainWindowVM //set in MainWindowVM
WabbajackVersion = Consts.CurrentWabbajackVersion; WabbajackVersion = Consts.CurrentMinimumWabbajackVersion;
} }
public static void Info(string msg) public static void Info(string msg)

View File

@ -193,7 +193,7 @@ namespace Wabbajack.Lib.Downloaders
}; };
return await Download(newArchive, destination); return await Download(newArchive, destination);
} }
catch (Exception ex) catch (Exception)
{ {
return false; return false;
} }

View File

@ -284,7 +284,7 @@ namespace Wabbajack.Lib.Downloaders
return (newArchive, tempFile); return (newArchive, tempFile);
} }
public async Task<bool> ValidateUpgrade(Hash srcHash, AbstractDownloadState newArchiveState) public override async Task<bool> ValidateUpgrade(Hash srcHash, AbstractDownloadState newArchiveState)
{ {
var state = (State)newArchiveState; var state = (State)newArchiveState;
return Game == state.Game && ModID == state.ModID; return Game == state.Game && ModID == state.ModID;

View File

@ -6,7 +6,6 @@ using System.IO.MemoryMappedFiles;
using System.Net.Http; using System.Net.Http;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using AngleSharp;
using Wabbajack.Common; using Wabbajack.Common;
using Wabbajack.Common.Exceptions; using Wabbajack.Common.Exceptions;
using Wabbajack.Common.Serialization.Json; using Wabbajack.Common.Serialization.Json;

View File

@ -1,12 +1,9 @@
using Compression.BSA; using System;
using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.Linq; using System.Linq;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using AngleSharp.Common;
using Wabbajack.Common; using Wabbajack.Common;
using Wabbajack.Lib.CompilationSteps; using Wabbajack.Lib.CompilationSteps;
using Wabbajack.Lib.Downloaders; using Wabbajack.Lib.Downloaders;
@ -61,7 +58,7 @@ namespace Wabbajack.Lib
MO2Ini = MO2Folder.Combine("ModOrganizer.ini").LoadIniFile(); MO2Ini = MO2Folder.Combine("ModOrganizer.ini").LoadIniFile();
var mo2game = (string)MO2Ini.General.gameName; var mo2game = (string)MO2Ini.General.gameName;
CompilingGame = GameRegistry.Games.First(g => g.Value.MO2Name == mo2game).Value; CompilingGame = GameRegistry.Games.First(g => g.Value.MO2Name == mo2game).Value;
GamePath = new AbsolutePath((string)MO2Ini.General.gamePath.Replace("\\\\", "\\")); GamePath = CompilingGame.GameLocation();
ModListOutputFile = outputFile; ModListOutputFile = outputFile;
Settings = new CompilerSettings(); Settings = new CompilerSettings();
} }
@ -103,6 +100,13 @@ namespace Wabbajack.Lib
Info("Using Profiles: " + string.Join(", ", SelectedProfiles.OrderBy(p => p))); Info("Using Profiles: " + string.Join(", ", SelectedProfiles.OrderBy(p => p)));
Utils.Log($"Compiling Game: {CompilingGame}");
Utils.Log($"Games from setting files:");
foreach (var game in Settings.IncludedGames)
{
Utils.Log($"- {game}");
}
Utils.Log($"VFS File Location: {VFSCacheName}"); Utils.Log($"VFS File Location: {VFSCacheName}");
Utils.Log($"MO2 Folder: {MO2Folder}"); Utils.Log($"MO2 Folder: {MO2Folder}");
Utils.Log($"Downloads Folder: {MO2DownloadsFolder}"); Utils.Log($"Downloads Folder: {MO2DownloadsFolder}");
@ -343,7 +347,7 @@ namespace Wabbajack.Lib
ModList = new ModList ModList = new ModList
{ {
GameType = CompilingGame.Game, GameType = CompilingGame.Game,
WabbajackVersion = Consts.CurrentWabbajackVersion, WabbajackVersion = Consts.CurrentMinimumWabbajackVersion,
Archives = SelectedArchives.ToList(), Archives = SelectedArchives.ToList(),
ModManager = ModManager.MO2, ModManager = ModManager.MO2,
Directives = InstallDirectives, Directives = InstallDirectives,

View File

@ -84,6 +84,12 @@ namespace Wabbajack.Lib
Utils.Log("Exiting because we couldn't find the game folder."); Utils.Log("Exiting because we couldn't find the game folder.");
return false; return false;
} }
Utils.Log($"Install Folder: {OutputFolder}");
Utils.Log($"Downloads Folder: {DownloadFolder}");
Utils.Log($"Game Folder: {GameFolder.Value}");
Utils.Log($"Wabbajack Folder: {AbsolutePath.EntryPoint}");
var watcher = new DiskSpaceWatcher(cancel, new[]{OutputFolder, DownloadFolder, GameFolder.Value, AbsolutePath.EntryPoint}, (long)2 << 31, var watcher = new DiskSpaceWatcher(cancel, new[]{OutputFolder, DownloadFolder, GameFolder.Value, AbsolutePath.EntryPoint}, (long)2 << 31,
drive => drive =>

View File

@ -91,7 +91,7 @@ namespace Wabbajack.Lib.ModListRegistry
var client = new Http.Client(); var client = new Http.Client();
return (await client.GetStringAsync(Consts.UnlistedModlistMetadataURL)).FromJsonString<List<ModlistMetadata>>(); return (await client.GetStringAsync(Consts.UnlistedModlistMetadataURL)).FromJsonString<List<ModlistMetadata>>();
} }
catch (Exception ex) catch (Exception)
{ {
Utils.LogStatus("Error loading unlisted modlists"); Utils.LogStatus("Error loading unlisted modlists");
return new List<ModlistMetadata>(); return new List<ModlistMetadata>();

View File

@ -17,16 +17,13 @@
<Version>3.1.0</Version> <Version>3.1.0</Version>
</PackageReference> </PackageReference>
<PackageReference Include="Fody"> <PackageReference Include="Fody">
<Version>6.2.5</Version> <Version>6.2.6</Version>
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Genbox.AlphaFS"> <PackageReference Include="Genbox.AlphaFS">
<Version>2.2.2.1</Version> <Version>2.2.2.1</Version>
</PackageReference> </PackageReference>
<PackageReference Include="GraphQL.Client">
<Version>3.1.6</Version>
</PackageReference>
<PackageReference Include="HtmlAgilityPack"> <PackageReference Include="HtmlAgilityPack">
<Version>1.11.24</Version> <Version>1.11.24</Version>
</PackageReference> </PackageReference>
@ -69,9 +66,6 @@
<PackageReference Include="YamlDotNet.NetCore"> <PackageReference Include="YamlDotNet.NetCore">
<Version>1.0.0</Version> <Version>1.0.0</Version>
</PackageReference> </PackageReference>
<PackageReference Include="YoutubeExplode">
<Version>5.1.4</Version>
</PackageReference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Compression.BSA\Compression.BSA.csproj" /> <ProjectReference Include="..\Compression.BSA\Compression.BSA.csproj" />

View File

@ -1,11 +1,9 @@
using System.Net; using System.Threading.Tasks;
using System.Threading.Tasks;
using Wabbajack.BuildServer.Test; using Wabbajack.BuildServer.Test;
using Wabbajack.Common; using Wabbajack.Common;
using Wabbajack.Lib; using Wabbajack.Lib;
using Xunit; using Xunit;
using Xunit.Abstractions; using Xunit.Abstractions;
using Wabbajack.Common;
namespace Wabbajack.Server.Test namespace Wabbajack.Server.Test
{ {

View File

@ -80,7 +80,7 @@ namespace Wabbajack.BuildServer.Controllers
return NotFound("File is Valid"); return NotFound("File is Valid");
} }
} }
catch (Exception ex) catch (Exception)
{ {
//_logger.LogInformation( //_logger.LogInformation(
// $"Refusing to upgrade ({request.OldArchive.State.PrimaryKeyString}), due to upgrade failure"); // $"Refusing to upgrade ({request.OldArchive.State.PrimaryKeyString}), due to upgrade failure");

View File

@ -3,15 +3,12 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using AngleSharp.Io;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Wabbajack.Common; using Wabbajack.Common;
using Wabbajack.Common.Exceptions; using Wabbajack.Common.Exceptions;
using Wabbajack.Lib;
using Wabbajack.Lib.NexusApi; using Wabbajack.Lib.NexusApi;
using Wabbajack.Server.DataLayer; using Wabbajack.Server.DataLayer;
using Wabbajack.Server.Services; using Wabbajack.Server.Services;

View File

@ -2,7 +2,6 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using AngleSharp.Common;
using Dapper; using Dapper;
using Wabbajack.Common; using Wabbajack.Common;
using Wabbajack.Lib.Downloaders; using Wabbajack.Lib.Downloaders;

View File

@ -17,7 +17,6 @@ namespace Wabbajack.Server.Services
private TimeSpan _delay; private TimeSpan _delay;
protected ILogger<TP> _logger; protected ILogger<TP> _logger;
protected QuickSync _quickSync; protected QuickSync _quickSync;
private bool _isSetup;
public AbstractService(ILogger<TP> logger, AppSettings settings, QuickSync quickSync, TimeSpan delay) public AbstractService(ILogger<TP> logger, AppSettings settings, QuickSync quickSync, TimeSpan delay)
{ {
@ -26,7 +25,6 @@ namespace Wabbajack.Server.Services
_logger = logger; _logger = logger;
_quickSync = quickSync; _quickSync = quickSync;
_isSetup = false;
} }
public virtual async Task Setup() public virtual async Task Setup()
@ -42,7 +40,6 @@ namespace Wabbajack.Server.Services
Task.Run(async () => Task.Run(async () =>
{ {
await Setup(); await Setup();
_isSetup = true;
while (true) while (true)

View File

@ -19,8 +19,6 @@ namespace Wabbajack.Server.Services
} }
public class DiscordWebHook : AbstractService<DiscordWebHook, int> public class DiscordWebHook : AbstractService<DiscordWebHook, int>
{ {
private AppSettings _settings;
private ILogger<DiscordWebHook> _logger;
private Random _random = new Random(); private Random _random = new Random();
public DiscordWebHook(ILogger<DiscordWebHook> logger, AppSettings settings, QuickSync quickSync) : base(logger, settings, quickSync, TimeSpan.FromHours(1)) public DiscordWebHook(ILogger<DiscordWebHook> logger, AppSettings settings, QuickSync quickSync) : base(logger, settings, quickSync, TimeSpan.FromHours(1))

View File

@ -345,7 +345,7 @@ namespace Wabbajack.Server.Services
{ {
await _sql.AddNexusModInfo(ns.Game, ns.ModID, queryTime, mod); await _sql.AddNexusModInfo(ns.Game, ns.ModID, queryTime, mod);
} }
catch (Exception _) catch (Exception)
{ {
// Could be a PK constraint failure // Could be a PK constraint failure
} }
@ -368,13 +368,13 @@ namespace Wabbajack.Server.Services
{ {
await _sql.AddNexusModFiles(ns.Game, ns.ModID, queryTime, files); await _sql.AddNexusModFiles(ns.Game, ns.ModID, queryTime, files);
} }
catch (Exception _) catch (Exception)
{ {
// Could be a PK constraint failure // Could be a PK constraint failure
} }
} }
} }
catch (Exception ex) catch (Exception)
{ {
return ArchiveStatus.InValid; return ArchiveStatus.InValid;
} }

View File

@ -118,7 +118,7 @@ namespace Wabbajack.Server.Services
{ {
modlist = entry.FromJson<ModList>(); modlist = entry.FromJson<ModList>();
} }
catch (JsonReaderException ex) catch (JsonReaderException)
{ {
_logger.LogWarning($"Bad Modlist {list.Links.MachineURL}"); _logger.LogWarning($"Bad Modlist {list.Links.MachineURL}");
await _discord.Send(Channel.Ham, await _discord.Send(Channel.Ham,

View File

@ -52,7 +52,7 @@ namespace Wabbajack.Server.Services
var (daily, hourly) = await client.GetRemainingApiCalls(); var (daily, hourly) = await client.GetRemainingApiCalls();
await _sql.SetNexusAPIKey(key.Key, daily, hourly); await _sql.SetNexusAPIKey(key.Key, daily, hourly);
} }
catch (Exception ex) catch (Exception)
{ {
_logger.Log(LogLevel.Warning, "Update error, purging API key"); _logger.Log(LogLevel.Warning, "Update error, purging API key");
await _sql.DeleteNexusAPIKey(key.Key); await _sql.DeleteNexusAPIKey(key.Key);
@ -82,7 +82,7 @@ namespace Wabbajack.Server.Services
var hourlyRemaining = int.Parse(response.Headers.GetValues("x-rl-hourly-remaining").First()); var hourlyRemaining = int.Parse(response.Headers.GetValues("x-rl-hourly-remaining").First());
await _sql.SetNexusAPIKey(ApiKey, dailyRemaining, hourlyRemaining); await _sql.SetNexusAPIKey(ApiKey, dailyRemaining, hourlyRemaining);
} }
catch (Exception ex) catch (Exception)
{ {
} }
} }

View File

@ -35,7 +35,6 @@ namespace Wabbajack.Server.Services
_logger.Log(LogLevel.Information, "Starting"); _logger.Log(LogLevel.Information, "Starting");
var results = await NexusUpdatesFeeds.GetUpdates(); var results = await NexusUpdatesFeeds.GetUpdates();
NexusApiClient client = null;
long updated = 0; long updated = 0;
foreach (var result in results) foreach (var result in results)
{ {

View File

@ -170,11 +170,11 @@ namespace Wabbajack.Server.Services
var lst = p.Split("_", StringSplitOptions.RemoveEmptyEntries).Select(Hash.FromHex).ToArray(); var lst = p.Split("_", StringSplitOptions.RemoveEmptyEntries).Select(Hash.FromHex).ToArray();
return (lst[0], lst[1]); return (lst[0], lst[1]);
} }
catch (ArgumentException ex) catch (ArgumentException)
{ {
return default; return default;
} }
catch (FormatException ex) catch (FormatException)
{ {
return default; return default;
} }

View File

@ -3,8 +3,8 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>netcoreapp3.1</TargetFramework>
<AssemblyVersion>2.3.0.0</AssemblyVersion> <AssemblyVersion>2.3.0.1</AssemblyVersion>
<FileVersion>2.3.0.0</FileVersion> <FileVersion>2.3.0.1</FileVersion>
<Copyright>Copyright © 2019-2020</Copyright> <Copyright>Copyright © 2019-2020</Copyright>
<Description>Wabbajack Server</Description> <Description>Wabbajack Server</Description>
<RuntimeIdentifier>win-x64</RuntimeIdentifier> <RuntimeIdentifier>win-x64</RuntimeIdentifier>

View File

@ -25,7 +25,7 @@ namespace Wabbajack.VirtualFileSystem.Test
{ {
_helper.WriteLine(f.ShortDescription); _helper.WriteLine(f.ShortDescription);
} }
catch (Exception _) catch (Exception)
{ {
// ignored // ignored
} }

View File

@ -31,7 +31,7 @@ namespace Wabbajack.VirtualFileSystem.Test
{ {
_helper.WriteLine(f.ShortDescription); _helper.WriteLine(f.ShortDescription);
} }
catch (Exception ex) catch (Exception)
{ {
// ignored // ignored
} }

View File

@ -202,6 +202,7 @@ namespace Wabbajack.VirtualFileSystem
/// Extract the set of files and call the callback for each, handing it a stream factory and the virtual file, /// Extract the set of files and call the callback for each, handing it a stream factory and the virtual file,
/// top level archives (native archives) will be processed in parallel. Duplicate files will not be /// top level archives (native archives) will be processed in parallel. Duplicate files will not be
/// </summary> /// </summary>
/// <<param name="queue"></param>
/// <param name="files"></param> /// <param name="files"></param>
/// <param name="callback"></param> /// <param name="callback"></param>
/// <returns></returns> /// <returns></returns>

View File

@ -49,7 +49,7 @@ namespace Wabbajack.VirtualFileSystem.SevenZipExtractor
{ {
setter = (ISetProperties)_archive; setter = (ISetProperties)_archive;
} }
catch (InvalidCastException _) catch (InvalidCastException)
{ {
return; return;
} }

View File

@ -454,31 +454,4 @@ namespace Wabbajack.VirtualFileSystem.SevenZipExtractor
return (uint) this.BaseStream.Read(data, 0, (int) size); return (uint) this.BaseStream.Read(data, 0, (int) size);
} }
} }
internal class OutStreamWrapper : StreamWrapper, ISequentialOutStream, IOutStream
{
public OutStreamWrapper(Stream baseStream) : base(baseStream)
{
}
public int SetSize(long newSize)
{
this.BaseStream.SetLength(newSize);
return 0;
}
public int Write(byte[] data, uint size, IntPtr processedSize)
{
throw new NotImplementedException();
/*
this.BaseStream.Write(data, 0, (int) size);
if (processedSize != IntPtr.Zero)
{
Marshal.WriteInt32(processedSize, (int) size);
}
*/
return 0;
}
}
} }

View File

@ -23,8 +23,6 @@ namespace Wabbajack.VirtualFileSystem
_vfsCache = RocksDb.Open(options, (string)Consts.LocalAppDataPath.Combine("GlobalVFSCache2.rocksDb")); _vfsCache = RocksDb.Open(options, (string)Consts.LocalAppDataPath.Combine("GlobalVFSCache2.rocksDb"));
} }
private AbsolutePath _stagedPath;
private IEnumerable<VirtualFile> _thisAndAllChildren; private IEnumerable<VirtualFile> _thisAndAllChildren;
public IPath Name { get; internal set; } public IPath Name { get; internal set; }

View File

@ -212,7 +212,7 @@ namespace Wabbajack
{ {
if (modList == null) return ErrorResponse.Fail("Modlist path resulted in a null object."); if (modList == null) return ErrorResponse.Fail("Modlist path resulted in a null object.");
if (modList.Error != null) return ErrorResponse.Fail("Modlist is corrupt", modList.Error); if (modList.Error != null) return ErrorResponse.Fail("Modlist is corrupt", modList.Error);
if (modList.WabbajackVersion != null && modList.WabbajackVersion > Consts.CurrentWabbajackVersion) if (modList.WabbajackVersion != null && modList.WabbajackVersion > Consts.CurrentMinimumWabbajackVersion)
return ErrorResponse.Fail("The Modlist you are trying to install was made using a newer Version of Wabbajack. Please update Wabbajack before installing!"); return ErrorResponse.Fail("The Modlist you are trying to install was made using a newer Version of Wabbajack. Please update Wabbajack before installing!");
return ErrorResponse.Success; return ErrorResponse.Success;
}); });

View File

@ -120,7 +120,7 @@ namespace Wabbajack
{ {
var assembly = Assembly.GetExecutingAssembly(); var assembly = Assembly.GetExecutingAssembly();
var fvi = FileVersionInfo.GetVersionInfo(assembly.Location); var fvi = FileVersionInfo.GetVersionInfo(assembly.Location);
Consts.CurrentWabbajackVersion = Version.Parse(fvi.FileVersion); Consts.CurrentMinimumWabbajackVersion = Version.Parse(fvi.FileVersion);
VersionDisplay = $"v{fvi.FileVersion}"; VersionDisplay = $"v{fvi.FileVersion}";
Utils.Log($"Wabbajack Version: {fvi.FileVersion}"); Utils.Log($"Wabbajack Version: {fvi.FileVersion}");

View File

@ -6,8 +6,8 @@
<UseWPF>true</UseWPF> <UseWPF>true</UseWPF>
<Platforms>x64</Platforms> <Platforms>x64</Platforms>
<RuntimeIdentifier>win10-x64</RuntimeIdentifier> <RuntimeIdentifier>win10-x64</RuntimeIdentifier>
<AssemblyVersion>2.3.0.0</AssemblyVersion> <AssemblyVersion>2.3.0.1</AssemblyVersion>
<FileVersion>2.3.0.0</FileVersion> <FileVersion>2.3.0.1</FileVersion>
<Copyright>Copyright © 2019-2020</Copyright> <Copyright>Copyright © 2019-2020</Copyright>
<Description>An automated ModList installer</Description> <Description>An automated ModList installer</Description>
<PublishReadyToRun>true</PublishReadyToRun> <PublishReadyToRun>true</PublishReadyToRun>