mirror of
https://github.com/BepInEx/BepInEx.git
synced 2026-10-23 10:46:44 +00:00
34 lines
979 B
C#
34 lines
979 B
C#
using System.IO;
|
|
using System.Reflection;
|
|
using BepInEx.Unity.Mono.Preloader.Utils;
|
|
using HarmonyLib;
|
|
|
|
namespace BepInEx.Unity.Mono.Preloader.RuntimeFixes;
|
|
|
|
internal static class UnityPatches
|
|
{
|
|
private static Harmony HarmonyInstance { get; set; }
|
|
|
|
public static void Apply()
|
|
{
|
|
HarmonyInstance = Harmony.CreateAndPatchAll(typeof(UnityPatches));
|
|
|
|
try
|
|
{
|
|
TraceFix.ApplyFix();
|
|
}
|
|
catch { } //ignore everything, if it's thrown an exception, we're using an assembly that has already fixed this
|
|
}
|
|
|
|
[HarmonyPrefix]
|
|
[HarmonyPatch(typeof(Assembly), nameof(Assembly.LoadFile), typeof(string))]
|
|
[HarmonyPatch(typeof(Assembly), nameof(Assembly.LoadFrom), typeof(string))]
|
|
public static bool LoadFilePrefix(string __0, ref Assembly __result)
|
|
{
|
|
if (!File.Exists(__0))
|
|
throw new FileNotFoundException(__0);
|
|
__result = MonoAssemblyHelper.Load(__0);
|
|
return false;
|
|
}
|
|
}
|