internal static void TryResolve(object sender, PatchManager.PatcherResolverEventArgs args)
 {
     if (UnhollowerSupport.IsGeneratedAssemblyType(args.Original.DeclaringType))
     {
         args.MethodPatcher = new HarmonyIl2CppMethodPatcher(args.Original);
     }
 }
Пример #2
0
 internal static void TryResolve(object sender, PatchManager.PatcherResolverEventArgs args)
 {
     if (Main.unhollower.IsInheritedFromIl2CppObjectBase(args.Original.DeclaringType) &&
         !Main.unhollower.IsInjectedType(args.Original.DeclaringType))
     {
         args.MethodPatcher = new HarmonyMethodPatcher(args.Original);
     }
 }
Пример #3
0
 /// <summary>
 /// A handler for <see cref="PatchManager.ResolvePatcher"/> that checks if a method doesn't have a body
 /// (e.g. it's icall or marked with <see cref="DynDllImportAttribute"/>) and thus can be patched with
 /// <see cref="NativeDetour"/>.
 /// </summary>
 /// <param name="sender">Not used</param>
 /// <param name="args">Patch resolver arguments</param>
 ///
 public static void TryResolve(object sender, PatchManager.PatcherResolverEventArgs args)
 {
     if (args.Original.DeclaringType?.IsSubclassOf(typeof(Il2CppObjectBase)) == true)
     {
         var backend = new IL2CPPDetourMethodPatcher(args.Original);
         if (backend.isValid)
         {
             args.MethodPatcher = backend;
         }
     }
 }