diff --git a/BuildTools b/BuildTools index 41c3a12d..b04769a3 160000 --- a/BuildTools +++ b/BuildTools @@ -1 +1 @@ -Subproject commit 41c3a12d56de96a3495893d1fea4a485a98c67af +Subproject commit b04769a3aebdd111b81f5a59d438907310e83207 diff --git a/IPA.Loader/Loader/PluginLoader.cs b/IPA.Loader/Loader/PluginLoader.cs index bd6dec88..7bcd8bc2 100644 --- a/IPA.Loader/Loader/PluginLoader.cs +++ b/IPA.Loader/Loader/PluginLoader.cs @@ -955,16 +955,17 @@ namespace IPA.Loader // first load dependencies var dependsOnSelf = false; - foreach (var dep in plugin.Manifest.Dependencies) + foreach (var (id, range) in plugin.Manifest.Dependencies) { - if (dep.Key == SelfMeta.Id) + if (id == SelfMeta.Id) dependsOnSelf = true; - if (!TryResolveId(dep.Key, out var depMeta, out var depDisabled, out var depIgnored)) + if (!TryResolveId(id, out var depMeta, out var depDisabled, out var depIgnored) + || !range.IsSatisfied(depMeta.Version)) { - Logger.loader.Warn($"Dependency '{dep.Key}@{dep.Value}' for '{plugin.Id}' does not exist; ignoring '{plugin.Id}'"); + Logger.loader.Warn($"Dependency '{id}@{range}' for '{plugin.Id}' does not exist; ignoring '{plugin.Id}'"); ignoredPlugins.Add(plugin, new(Reason.Dependency) { - ReasonText = $"Dependency '{dep.Key}@{dep.Value}' not found", + ReasonText = $"Dependency '{id}@{range}' not found", }); ignored = true; return; @@ -972,10 +973,10 @@ namespace IPA.Loader // make a point to propagate ignored if (depIgnored) { - Logger.loader.Warn($"Dependency '{dep.Key}' for '{plugin.Id}' previously ignored; ignoring '{plugin.Id}'"); + Logger.loader.Warn($"Dependency '{id}' for '{plugin.Id}' previously ignored; ignoring '{plugin.Id}'"); ignoredPlugins.Add(plugin, new(Reason.Dependency) { - ReasonText = $"Dependency '{dep.Key}' ignored", + ReasonText = $"Dependency '{id}' ignored", RelatedTo = depMeta }); ignored = true; @@ -984,7 +985,7 @@ namespace IPA.Loader // make a point to propagate disabled if (depDisabled) { - Logger.loader.Warn($"Dependency '{dep.Key}' for '{plugin.Id}' disabled; disabling"); + Logger.loader.Warn($"Dependency '{id}' for '{plugin.Id}' disabled; disabling"); disabledPlugins!.Add(plugin); _ = disabledIds!.Add(plugin.Id); disabled = true; diff --git a/IPA.Loader/Loader/manifest.json b/IPA.Loader/Loader/manifest.json index d438446e..5b568e6c 100644 --- a/IPA.Loader/Loader/manifest.json +++ b/IPA.Loader/Loader/manifest.json @@ -8,7 +8,7 @@ "gameVersion": "1.16.1", "id": "BSIPA", "name": "Beat Saber IPA", - "version": "4.1.7-pre.3", + "version": "4.1.7-pre.4", "icon": "IPA.icon_white.png", "features": { "IPA.DefineFeature": { diff --git a/docs/docfx.json b/docs/docfx.json index 30623cd4..673240cc 100644 --- a/docs/docfx.json +++ b/docs/docfx.json @@ -18,7 +18,10 @@ }], "dest": "api", "disableGitFeatures": false, - "disableDefaultFilter": false + "disableDefaultFilter": false, + "properties": { + "TargetFramework": "net461" + } }], "build": { "content": [{