From a9c552e1d9eefeccd973757fdb8bf6ff4d6aaf17 Mon Sep 17 00:00:00 2001 From: Menci Date: Fri, 17 Jan 2025 18:05:12 +0800 Subject: [PATCH] [+] Hook force offline in DisableReboot --- AquaMai.Mods/Fix/DisableReboot.cs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/AquaMai.Mods/Fix/DisableReboot.cs b/AquaMai.Mods/Fix/DisableReboot.cs index 04effc6f..a4fe6316 100644 --- a/AquaMai.Mods/Fix/DisableReboot.cs +++ b/AquaMai.Mods/Fix/DisableReboot.cs @@ -1,12 +1,25 @@ +using System.Linq; +using System.Reflection; using AquaMai.Config.Attributes; +using AquaMai.Core.Attributes; using HarmonyLib; using Manager.Operation; +using MelonLoader; namespace AquaMai.Mods.Fix; [ConfigSection(exampleHidden: true, defaultOn: true)] public class DisableReboot { + private static bool forceOfflineTimerExists = false; + + public static void OnBeforePatch() + { + forceOfflineTimerExists = typeof(MaintenanceTimer).GetProperty( + "ForceOfflineRemainingMinutes", + BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic) != null; + } + // IsAutoRebootNeeded [HarmonyPrefix] [HarmonyPatch(typeof(MaintenanceTimer), "IsAutoRebootNeeded")] @@ -84,4 +97,13 @@ public class DisableReboot __result = false; return false; } + + [EnableIf(nameof(forceOfflineTimerExists))] + [HarmonyPrefix] + [HarmonyPatch(typeof(MaintenanceTimer), "ForceOfflineRemainingMinutes", MethodType.Getter)] + public static bool ForceOfflineRemainingMinutes(ref int __result) + { + __result = 600; + return false; + } }