diff --git a/Wabbajack.Common/Consts.cs b/Wabbajack.Common/Consts.cs index bf2fc02e..3b2a4d57 100644 --- a/Wabbajack.Common/Consts.cs +++ b/Wabbajack.Common/Consts.cs @@ -16,7 +16,7 @@ namespace Wabbajack.Common public static string MegaPrefix = "https://mega.nz/#!"; public static HashSet SupportedArchives = new HashSet() { ".zip", ".rar", ".7z", ".7zip" }; - public static HashSet SupportedBSAs = new HashSet() { ".bsa", ".ba2" }; + public static HashSet SupportedBSAs = new HashSet() { ".bsa" }; public static String UserAgent { get diff --git a/Wabbajack/AppState.cs b/Wabbajack/AppState.cs index 347a8519..08064bbc 100644 --- a/Wabbajack/AppState.cs +++ b/Wabbajack/AppState.cs @@ -210,6 +210,8 @@ namespace Wabbajack public void SetQueueSize(int max, int current) { + if (max == 0) + max = 1; var total = current * 100 / max; QueueProgress = total; } @@ -292,13 +294,9 @@ namespace Wabbajack { installer.Install(); } - catch (AggregateException ex) - { - LogMsg(ex.StackTrace); - LogMsg(ex.InnerException.ToString()); - } catch (Exception ex) { + while (ex.InnerException != null) ex = ex.InnerException; LogMsg(ex.StackTrace); LogMsg(ex.InnerException.ToString()); LogMsg($"{ex.Message} - Can't continue"); @@ -320,6 +318,7 @@ namespace Wabbajack } catch (Exception ex) { + while (ex.InnerException != null) ex = ex.InnerException; LogMsg(ex.StackTrace); LogMsg(ex.InnerException.ToString()); LogMsg($"{ex.Message} - Can't continue"); diff --git a/Wabbajack/Compiler.cs b/Wabbajack/Compiler.cs index 64ecc962..16e93144 100644 --- a/Wabbajack/Compiler.cs +++ b/Wabbajack/Compiler.cs @@ -158,6 +158,7 @@ namespace Wabbajack .Select(f => new IndexedArchive() { File = VFS.Lookup(f), + Name = Path.GetFileName(f), IniData = (f + ".meta").LoadIniFile(), Meta = File.ReadAllText(f + ".meta") }) @@ -362,7 +363,7 @@ namespace Wabbajack Status($"Getting Nexus info for {found.Name}"); try { - // var link = NexusAPI.GetNexusDownloadLink((NexusMod)result, NexusKey); + var link = NexusAPI.GetNexusDownloadLink((NexusMod)result, NexusKey); } catch (Exception ex) { @@ -481,6 +482,7 @@ namespace Wabbajack return new List>() { IgnoreStartsWith("logs\\"), + IncludeRegex("^downloads\\\\.*\\.meta"), IgnoreStartsWith("downloads\\"), IgnoreStartsWith("webcache\\"), IgnoreStartsWith("overwrite\\"), @@ -844,6 +846,23 @@ namespace Wabbajack }; } + + private Func IncludeRegex(string pattern) + { + var regex = new Regex(pattern); + return source => + { + if (regex.IsMatch(source.Path)) + { + var result = source.EvolveTo(); + result.SourceData = File.ReadAllBytes(source.AbsolutePath).ToBase64(); + return result; + } + return null; + }; + } + + private Func DropAll() { return source => { diff --git a/Wabbajack/Installer.cs b/Wabbajack/Installer.cs index 73952e8a..ed0c66ea 100644 --- a/Wabbajack/Installer.cs +++ b/Wabbajack/Installer.cs @@ -229,7 +229,7 @@ namespace Wabbajack private void InstallArchive(Archive archive, string absolutePath, IGrouping grouping) { - Status("Extracting {0}", archive.Name); + Status($"Extracting {archive.Name}"); var files = grouping.GroupBy(e => e.FullPath) .ToDictionary(e => e.Key);