From 70ea4348a8d5ad73297c9a79ae676d5456a04456 Mon Sep 17 00:00:00 2001 From: Anairkoen Schno Date: Mon, 8 Apr 2019 23:26:03 -0500 Subject: [PATCH] Changed updater version ranges to be > rather than >= Added check for LocalPluginMeta in the case that it doesn't exist, to prevent download error --- IPA.Loader/Updating/BeatMods/Updater.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/IPA.Loader/Updating/BeatMods/Updater.cs b/IPA.Loader/Updating/BeatMods/Updater.cs index e3e57fcb..13f5dae0 100644 --- a/IPA.Loader/Updating/BeatMods/Updater.cs +++ b/IPA.Loader/Updating/BeatMods/Updater.cs @@ -177,7 +177,7 @@ namespace IPA.Updating.BeatMods depList.Value.Add(new DependencyObject { Name = msinfo.Id, Version = msinfo.Version, - Requirement = new Range($">={msinfo.Version}"), + Requirement = new Range($">{msinfo.Version}"), LocalPluginMeta = plugin }); } @@ -189,7 +189,7 @@ namespace IPA.Updating.BeatMods { Name = meta.Id, Version = meta.Version, - Requirement = new Range($">={meta.Version}"), + Requirement = new Range($">{meta.Version}"), LocalPluginMeta = new PluginLoader.PluginInfo { Metadata = meta, Plugin = null @@ -235,7 +235,7 @@ namespace IPA.Updating.BeatMods list.Value.AddRange(mod.Value.Dependencies.Select(m => new DependencyObject { Name = m.Name, - Requirement = new Range($">={m.Version}"), + Requirement = new Range($"^{m.Version}"), Consumers = new HashSet { dep.Name } })); // currently no conflicts exist in BeatMods @@ -533,7 +533,8 @@ namespace IPA.Updating.BeatMods FileInfo targetFile = new FileInfo(Path.Combine(targetDir, entry.FileName)); Directory.CreateDirectory(targetFile.DirectoryName ?? throw new InvalidOperationException()); - if (Utils.GetRelativePath(targetFile.FullName, targetDir) == Utils.GetRelativePath(item.LocalPluginMeta?.Metadata.File.FullName, BeatSaber.InstallPath)) + if (item.LocalPluginMeta != null && + Utils.GetRelativePath(targetFile.FullName, targetDir) == Utils.GetRelativePath(item.LocalPluginMeta?.Metadata.File.FullName, BeatSaber.InstallPath)) shouldDeleteOldFile = false; // overwriting old file, no need to delete /*if (targetFile.Exists)