All checks were successful
Build / Compute Version (push) Successful in 6s
Build / Build Nuget package (CringeBootstrap.Abstractions) (push) Successful in 4m4s
Build / Build Nuget package (NuGet) (push) Successful in 4m7s
Build / Build Nuget package (SharedCringe) (push) Successful in 4m5s
Build / Build Nuget package (CringePlugins) (push) Successful in 4m25s
Build / Build Launcher (push) Successful in 5m12s
Also ran cleanup
19 lines
697 B
C#
19 lines
697 B
C#
using System.Reflection;
|
|
using HarmonyLib;
|
|
|
|
namespace CringeLauncher.Utils;
|
|
|
|
public static class MethodTools
|
|
{
|
|
public static MethodInfo AsyncMethodBody(MethodInfo method)
|
|
{
|
|
var (_, operand) = PatchProcessor.ReadMethodBody(method).First();
|
|
|
|
if (operand is not LocalVariableInfo localVar)
|
|
throw new InvalidOperationException($"Method {method.FullDescription()} does not contain a valid async state machine");
|
|
|
|
return AccessTools.Method(localVar.LocalType, "MoveNext") ??
|
|
throw new InvalidOperationException(
|
|
$"Async State machine of method {method.FullDescription()} does not contain a valid MoveNext method");
|
|
}
|
|
} |