public static void UnpatchAllMelonInstances(MelonBase melon) { if (instancelist.Count > 0) { for (int i = 0; i < instancelist.Count; i++) { instancelist[i].UnpatchAll(melon); } instancelist.Clear(); } }
public void UnpatchAll(MelonBase melon) { bool IDCheck(Patch patchInfo) => (patchInfo.patch.Module.Assembly == melon.Assembly); var originals = GetPatchedMethods().ToList(); foreach (var original in originals) { var info = GetPatchInfo(original); info.Postfixes.DoIf(IDCheck, patchInfo => Unpatch(original, patchInfo.patch)); info.Prefixes.DoIf(IDCheck, patchInfo => Unpatch(original, patchInfo.patch)); info.Transpilers.DoIf(IDCheck, patchInfo => Unpatch(original, patchInfo.patch)); } }