diff --git a/BSIPA.sln b/BSIPA.sln
index db7546b8..2b2f106a 100644
--- a/BSIPA.sln
+++ b/BSIPA.sln
@@ -40,159 +40,59 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AssemblyRenameStep", "Build
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
- Release|x86 = Release|x86
- Verbose_Release|Any CPU = Verbose_Release|Any CPU
Verbose_Release|x64 = Verbose_Release|x64
- Verbose_Release|x86 = Verbose_Release|x86
- Verbose|Any CPU = Verbose|Any CPU
Verbose|x64 = Verbose|x64
- Verbose|x86 = Verbose|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|Any CPU.Build.0 = Debug|Any CPU
{14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|x64.ActiveCfg = Debug|Any CPU
{14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|x64.Build.0 = Debug|Any CPU
- {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|x86.ActiveCfg = Debug|Any CPU
- {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|x86.Build.0 = Debug|Any CPU
- {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|Any CPU.Build.0 = Release|Any CPU
{14092533-98BB-40A4-9AFC-27BB75672A70}.Release|x64.ActiveCfg = Release|Any CPU
{14092533-98BB-40A4-9AFC-27BB75672A70}.Release|x64.Build.0 = Release|Any CPU
- {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|x86.ActiveCfg = Release|Any CPU
- {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|x86.Build.0 = Release|Any CPU
- {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|Any CPU.ActiveCfg = Release|Any CPU
- {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|Any CPU.Build.0 = Release|Any CPU
{14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|x64.ActiveCfg = Verbose_Release|Any CPU
{14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|x64.Build.0 = Verbose_Release|Any CPU
- {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|x86.ActiveCfg = Release|Any CPU
- {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|x86.Build.0 = Release|Any CPU
- {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|Any CPU.ActiveCfg = Release|Any CPU
- {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|Any CPU.Build.0 = Release|Any CPU
{14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|x64.ActiveCfg = Verbose|Any CPU
{14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|x64.Build.0 = Verbose|Any CPU
- {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|x86.ActiveCfg = Release|Any CPU
- {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|x86.Build.0 = Release|Any CPU
- {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5AD344F0-01A0-4CA8-92E5-9D095737744D}.Debug|x64.ActiveCfg = Debug|Any CPU
{5AD344F0-01A0-4CA8-92E5-9D095737744D}.Debug|x64.Build.0 = Debug|Any CPU
- {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Debug|x86.ActiveCfg = Debug|Any CPU
- {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Debug|x86.Build.0 = Debug|Any CPU
- {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Release|Any CPU.Build.0 = Release|Any CPU
{5AD344F0-01A0-4CA8-92E5-9D095737744D}.Release|x64.ActiveCfg = Release|Any CPU
{5AD344F0-01A0-4CA8-92E5-9D095737744D}.Release|x64.Build.0 = Release|Any CPU
- {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Release|x86.ActiveCfg = Release|Any CPU
- {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Release|x86.Build.0 = Release|Any CPU
- {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose_Release|Any CPU.ActiveCfg = Release|Any CPU
- {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose_Release|Any CPU.Build.0 = Release|Any CPU
{5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose_Release|x64.ActiveCfg = Release|Any CPU
{5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose_Release|x64.Build.0 = Release|Any CPU
- {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose_Release|x86.ActiveCfg = Release|Any CPU
- {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose_Release|x86.Build.0 = Release|Any CPU
- {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose|Any CPU.ActiveCfg = Release|Any CPU
- {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose|Any CPU.Build.0 = Release|Any CPU
{5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose|x64.ActiveCfg = Debug|Any CPU
{5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose|x64.Build.0 = Debug|Any CPU
- {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose|x86.ActiveCfg = Release|Any CPU
- {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose|x86.Build.0 = Release|Any CPU
- {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Debug|x64.ActiveCfg = Debug|Any CPU
{2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Debug|x64.Build.0 = Debug|Any CPU
- {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Debug|x86.ActiveCfg = Debug|Any CPU
- {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Debug|x86.Build.0 = Debug|Any CPU
- {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Release|Any CPU.Build.0 = Release|Any CPU
{2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Release|x64.ActiveCfg = Release|Any CPU
{2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Release|x64.Build.0 = Release|Any CPU
- {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Release|x86.ActiveCfg = Release|Any CPU
- {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Release|x86.Build.0 = Release|Any CPU
- {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose_Release|Any CPU.ActiveCfg = Release|Any CPU
- {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose_Release|Any CPU.Build.0 = Release|Any CPU
{2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose_Release|x64.ActiveCfg = Release|Any CPU
{2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose_Release|x64.Build.0 = Release|Any CPU
- {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose_Release|x86.ActiveCfg = Release|Any CPU
- {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose_Release|x86.Build.0 = Release|Any CPU
- {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose|Any CPU.ActiveCfg = Release|Any CPU
- {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose|Any CPU.Build.0 = Release|Any CPU
{2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose|x64.ActiveCfg = Debug|Any CPU
{2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose|x64.Build.0 = Debug|Any CPU
- {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose|x86.ActiveCfg = Release|Any CPU
- {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose|x86.Build.0 = Release|Any CPU
- {88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|Any CPU.ActiveCfg = Debug|Win32
{88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|x64.ActiveCfg = Release|x64
{88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|x64.Build.0 = Release|x64
- {88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|x86.ActiveCfg = Debug|Win32
- {88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|x86.Build.0 = Debug|Win32
- {88609E16-731F-46C9-8139-6B1A7A83240D}.Release|Any CPU.ActiveCfg = Release|Win32
{88609E16-731F-46C9-8139-6B1A7A83240D}.Release|x64.ActiveCfg = Release|x64
{88609E16-731F-46C9-8139-6B1A7A83240D}.Release|x64.Build.0 = Release|x64
- {88609E16-731F-46C9-8139-6B1A7A83240D}.Release|x86.ActiveCfg = Release|Win32
- {88609E16-731F-46C9-8139-6B1A7A83240D}.Release|x86.Build.0 = Release|Win32
- {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|Any CPU.ActiveCfg = Verbose_Release|Win32
{88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|x64.ActiveCfg = Verbose_Release|x64
{88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|x64.Build.0 = Verbose_Release|x64
- {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|x86.ActiveCfg = Verbose_Release|Win32
- {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|x86.Build.0 = Verbose_Release|Win32
- {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|Any CPU.ActiveCfg = Verbose|Win32
{88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|x64.ActiveCfg = Verbose_Release|x64
{88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|x64.Build.0 = Verbose_Release|x64
- {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|x86.ActiveCfg = Verbose|Win32
- {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|x86.Build.0 = Verbose|Win32
- {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|x64.ActiveCfg = Debug|Any CPU
{5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|x64.Build.0 = Debug|Any CPU
- {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|x86.ActiveCfg = Debug|Any CPU
- {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|x86.Build.0 = Debug|Any CPU
- {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Release|Any CPU.Build.0 = Release|Any CPU
{5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Release|x64.ActiveCfg = Release|Any CPU
- {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Release|x86.ActiveCfg = Release|Any CPU
- {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Release|x86.Build.0 = Release|Any CPU
- {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose_Release|Any CPU.ActiveCfg = Release|Any CPU
- {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose_Release|Any CPU.Build.0 = Release|Any CPU
{5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose_Release|x64.ActiveCfg = Release|Any CPU
{5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose_Release|x64.Build.0 = Release|Any CPU
- {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose_Release|x86.ActiveCfg = Release|Any CPU
- {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose_Release|x86.Build.0 = Release|Any CPU
- {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|Any CPU.ActiveCfg = Release|Any CPU
- {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|Any CPU.Build.0 = Release|Any CPU
{5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|x64.ActiveCfg = Release|Any CPU
{5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|x64.Build.0 = Release|Any CPU
- {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|x86.ActiveCfg = Release|Any CPU
- {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|x86.Build.0 = Release|Any CPU
- {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Debug|x64.ActiveCfg = Debug|Any CPU
{E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Debug|x64.Build.0 = Debug|Any CPU
- {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Debug|x86.ActiveCfg = Debug|Any CPU
- {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Debug|x86.Build.0 = Debug|Any CPU
- {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Release|Any CPU.Build.0 = Release|Any CPU
{E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Release|x64.ActiveCfg = Release|Any CPU
{E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Release|x64.Build.0 = Release|Any CPU
- {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Release|x86.ActiveCfg = Release|Any CPU
- {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Release|x86.Build.0 = Release|Any CPU
- {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Verbose_Release|Any CPU.ActiveCfg = Release|Any CPU
- {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Verbose_Release|Any CPU.Build.0 = Release|Any CPU
{E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Verbose_Release|x64.ActiveCfg = Release|Any CPU
{E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Verbose_Release|x64.Build.0 = Release|Any CPU
- {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Verbose_Release|x86.ActiveCfg = Release|Any CPU
- {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Verbose_Release|x86.Build.0 = Release|Any CPU
- {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Verbose|Any CPU.ActiveCfg = Release|Any CPU
- {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Verbose|Any CPU.Build.0 = Release|Any CPU
{E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Verbose|x64.ActiveCfg = Release|Any CPU
{E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Verbose|x64.Build.0 = Release|Any CPU
- {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Verbose|x86.ActiveCfg = Release|Any CPU
- {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Verbose|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/BuildTools b/BuildTools
index 5b7bb960..e0cefce0 160000
--- a/BuildTools
+++ b/BuildTools
@@ -1 +1 @@
-Subproject commit 5b7bb960ebafff69b8657b02791b27994e235840
+Subproject commit e0cefce0a1bb1aacc0afdbf305df1fa65da55464
diff --git a/IPA.Injector/IPA.Injector.csproj b/IPA.Injector/IPA.Injector.csproj
index 10a01011..61a0e5e1 100644
--- a/IPA.Injector/IPA.Injector.csproj
+++ b/IPA.Injector/IPA.Injector.csproj
@@ -9,11 +9,12 @@
Properties
IPA.Injector
IPA.Injector
- v4.6
+ v4.6.1
512
true
$(SolutionDir)=C:\
portable
+
true
diff --git a/IPA.Loader/IPA.Loader.csproj b/IPA.Loader/IPA.Loader.csproj
index a76f772d..91170d48 100644
--- a/IPA.Loader/IPA.Loader.csproj
+++ b/IPA.Loader/IPA.Loader.csproj
@@ -9,7 +9,7 @@
Properties
IPA
IPA.Loader
- v4.6
+ v4.6.1
512
true
$(SolutionDir)=C:\
diff --git a/IPA.Loader/Loader/PluginLoader.cs b/IPA.Loader/Loader/PluginLoader.cs
index cb281187..9c6f4682 100644
--- a/IPA.Loader/Loader/PluginLoader.cs
+++ b/IPA.Loader/Loader/PluginLoader.cs
@@ -188,6 +188,13 @@ namespace IPA.Loader
break;
}
+ if (metadata.Manifest == null)
+ {
+ Logger.loader.Error("Could not find manifest.json in namespace " +
+ $"{metadata.PluginType.Namespace} for {Path.GetFileName(plugin)}");
+ continue;
+ }
+
Logger.loader.Debug($"Adding info for {Path.GetFileName(plugin)}");
PluginsMetadata.Add(metadata);
}
diff --git a/IPA.Loader/Loader/PluginManifest.cs b/IPA.Loader/Loader/PluginManifest.cs
index f7b25207..b5b33464 100644
--- a/IPA.Loader/Loader/PluginManifest.cs
+++ b/IPA.Loader/Loader/PluginManifest.cs
@@ -31,8 +31,8 @@ namespace IPA.Loader
[JsonProperty("conflictsWith", Required = Required.DisallowNull, ItemConverterType = typeof(SemverRangeConverter))]
public Dictionary Conflicts = new Dictionary();
- [JsonProperty("features", Required = Required.Always)]
- public string[] Features;
+ [JsonProperty("features", Required = Required.DisallowNull)]
+ public string[] Features = new string[0];
[JsonProperty("loadBefore", Required = Required.DisallowNull)]
public string[] LoadBefore = new string[0];
diff --git a/IPA/obj/Debug/IPA.csproj.CoreCompileInputs.cache b/IPA/obj/Debug/IPA.csproj.CoreCompileInputs.cache
index d16fba0d..0e65ef0f 100644
--- a/IPA/obj/Debug/IPA.csproj.CoreCompileInputs.cache
+++ b/IPA/obj/Debug/IPA.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-5d76d76cc5c14257f2b9071c928c27b3edd80cc0
+0a3222410c8b7f878f3aac05d926ef18ba74d12a
diff --git a/Refs/UnityEngine.CoreModule.dll b/Refs/UnityEngine.CoreModule.dll
index 2f7c7acf..2bd6bca0 100644
Binary files a/Refs/UnityEngine.CoreModule.dll and b/Refs/UnityEngine.CoreModule.dll differ