mirror of
https://github.com/BepInEx/BepInEx.git
synced 2026-10-20 01:46:13 +00:00
Merge branch 'master' of https://github.com/BepInEx/BepInEx
This commit is contained in:
commit
c367fb6d23
3 files changed
+35
-9
No files matched your search
+7
-7
@@ -10,8 +10,8 @@ You can use the included [cakebuild](https://cakebuild.net/) script that allows
|
||||
|
||||
### Windows (Command Line)
|
||||
|
||||
Clone or [download](https://github.com/BepInEx/BepInEx/archive/master.zip) this repository.
|
||||
After that, run
|
||||
Clone this repository via `git clone https://github.com/BepInEx/BepInEx.git`.
|
||||
After that, run in the repository directory
|
||||
|
||||
```bat
|
||||
build.bat -target=Build
|
||||
@@ -19,8 +19,8 @@ build.bat -target=Build
|
||||
|
||||
### Windows (PowerShell)
|
||||
|
||||
Clone or [download](https://github.com/BepInEx/BepInEx/archive/master.zip) this repository.
|
||||
After that, run
|
||||
Clone this repository via `git clone https://github.com/BepInEx/BepInEx.git`.
|
||||
After that, run in the repository directory
|
||||
|
||||
```ps
|
||||
./build.ps1 -target=Build
|
||||
@@ -30,8 +30,8 @@ Make sure you have the execution policy set to enable running scripts.
|
||||
|
||||
### Linux (Bash)
|
||||
|
||||
Clone or [download](https://github.com/BepInEx/BepInEx/archive/master.zip) this repository.
|
||||
After that, run
|
||||
Clone this repository via `git clone https://github.com/BepInEx/BepInEx.git`.
|
||||
After that, run in the repository directory
|
||||
|
||||
```sh
|
||||
./build.sh --target=Build
|
||||
@@ -49,4 +49,4 @@ The build script provides the following build targets (that you can pass via the
|
||||
|
||||
## MSBuild
|
||||
|
||||
Download and IDE (for example Visual Studio), open the solution file and build it.
|
||||
Download and IDE (for example Visual Studio), open the solution file and build it.
|
||||
@@ -172,13 +172,16 @@ namespace BepInEx.Bootstrap
|
||||
var dependencies = BepInDependency.FromCecilType(type);
|
||||
var incompatibilities = BepInIncompatibility.FromCecilType(type);
|
||||
|
||||
var bepinVersion = type.Module.AssemblyReferences.FirstOrDefault(reference => reference.Name == "BepInEx")?.Version ?? new Version();
|
||||
|
||||
return new PluginInfo
|
||||
{
|
||||
Metadata = metadata,
|
||||
Processes = filters,
|
||||
Dependencies = dependencies,
|
||||
Incompatibilities = incompatibilities,
|
||||
TypeName = type.FullName
|
||||
TypeName = type.FullName,
|
||||
TargettedBepInExVersion = bepinVersion
|
||||
};
|
||||
}
|
||||
|
||||
@@ -195,6 +198,16 @@ namespace BepInEx.Bootstrap
|
||||
return true;
|
||||
}
|
||||
|
||||
private static bool PluginTargetsWrongBepin(PluginInfo pluginInfo)
|
||||
{
|
||||
var pluginTarget = pluginInfo.TargettedBepInExVersion;
|
||||
// X.X.X.x - compare normally. x.x.x.X - nightly build number, ignore
|
||||
if (pluginTarget.Major != CurrentAssemblyVersion.Major) return true;
|
||||
if (pluginTarget.Minor > CurrentAssemblyVersion.Minor) return true;
|
||||
if (pluginTarget.Minor < CurrentAssemblyVersion.Minor) return false;
|
||||
return pluginTarget.Build > CurrentAssemblyVersion.Build;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The entrypoint for the BepInEx plugin system.
|
||||
/// </summary>
|
||||
@@ -276,6 +289,12 @@ namespace BepInEx.Bootstrap
|
||||
DependencyErrors.Add(message);
|
||||
Logger.LogError(message);
|
||||
}
|
||||
else if (PluginTargetsWrongBepin(pluginInfo))
|
||||
{
|
||||
string message = $@"Plugin [{pluginInfo.Metadata.Name}] targets a wrong version of BepInEx ({pluginInfo.TargettedBepInExVersion}) and might not work until you update";
|
||||
DependencyErrors.Add(message);
|
||||
Logger.LogWarning(message);
|
||||
}
|
||||
}
|
||||
|
||||
var emptyDependencies = new string[0];
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using BepInEx.Bootstrap;
|
||||
@@ -21,6 +22,8 @@ namespace BepInEx
|
||||
|
||||
internal string TypeName { get; set; }
|
||||
|
||||
internal Version TargettedBepInExVersion { get; set; }
|
||||
|
||||
void ICacheable.Save(BinaryWriter bw)
|
||||
{
|
||||
bw.Write(TypeName);
|
||||
@@ -43,6 +46,8 @@ namespace BepInEx
|
||||
bw.Write(incList.Count);
|
||||
foreach (var bepInIncompatibility in incList)
|
||||
((ICacheable)bepInIncompatibility).Save(bw);
|
||||
|
||||
bw.Write(TargettedBepInExVersion.ToString(4));
|
||||
}
|
||||
|
||||
void ICacheable.Load(BinaryReader br)
|
||||
@@ -78,6 +83,8 @@ namespace BepInEx
|
||||
}
|
||||
|
||||
Incompatibilities = incList;
|
||||
|
||||
TargettedBepInExVersion = new Version(br.ReadString());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user