From 92fc568e1637091a3269cb60830c86c223641b62 Mon Sep 17 00:00:00 2001 From: SDraw Date: Wed, 27 Aug 2025 15:14:08 +0300 Subject: [PATCH] Fix for MelonLoader 0.7.1 --- ml_amt/Main.cs | 5 ++++- ml_bft/Main.cs | 6 +++++- ml_lme/GameEvents.cs | 3 ++- ml_lme/Main.cs | 5 ++++- ml_pah/Main.cs | 20 ++++++++++++-------- ml_pam/Main.cs | 5 ++++- ml_pin/Main.cs | 5 ++++- ml_pmc/Main.cs | 5 ++++- ml_ppu/Main.cs | 5 ++++- ml_prm/Main.cs | 5 ++++- ml_prm/RagdollController.cs | 3 ++- ml_vei/Main.cs | 7 +++++-- 12 files changed, 54 insertions(+), 20 deletions(-) diff --git a/ml_amt/Main.cs b/ml_amt/Main.cs index 8398db4..a749cb7 100644 --- a/ml_amt/Main.cs +++ b/ml_amt/Main.cs @@ -9,9 +9,12 @@ namespace ml_amt public override void OnInitializeMelon() { - Settings.Init(); GameEvents.Init(HarmonyInstance); + } + public override void OnLateInitializeMelon() + { + Settings.Init(); MelonLoader.MelonCoroutines.Start(WaitForRootLogic()); } diff --git a/ml_bft/Main.cs b/ml_bft/Main.cs index 4c51e49..1bed470 100644 --- a/ml_bft/Main.cs +++ b/ml_bft/Main.cs @@ -9,12 +9,16 @@ namespace ml_bft public override void OnInitializeMelon() { - Settings.Init(); AssetsHandler.Load(); GameEvents.Init(HarmonyInstance); + } + public override void OnLateInitializeMelon() + { + Settings.Init(); MelonLoader.MelonCoroutines.Start(WaitForInstances()); } + IEnumerator WaitForInstances() { while(ABI_RC.Systems.InputManagement.CVRInputManager.Instance == null) diff --git a/ml_lme/GameEvents.cs b/ml_lme/GameEvents.cs index a4292fa..dfb023f 100644 --- a/ml_lme/GameEvents.cs +++ b/ml_lme/GameEvents.cs @@ -1,4 +1,5 @@ using ABI.CCK.Components; +using ABI_RC.Core.InteractionSystem.Base; using ABI_RC.Core.Player; using ABI_RC.Systems.IK; using System; @@ -51,7 +52,7 @@ namespace ml_lme ); p_instance.Patch( - typeof(CVRPickupObject).GetMethod(nameof(CVRPickupObject.Grab), BindingFlags.Instance | BindingFlags.Public), + typeof(Pickupable).GetMethod(nameof(Pickupable.Grab), BindingFlags.Instance | BindingFlags.Public), null, new HarmonyLib.HarmonyMethod(typeof(GameEvents).GetMethod(nameof(OnPickupGrab_Postfix), BindingFlags.Static | BindingFlags.NonPublic)) ); diff --git a/ml_lme/Main.cs b/ml_lme/Main.cs index cf391f9..3dceb35 100644 --- a/ml_lme/Main.cs +++ b/ml_lme/Main.cs @@ -11,10 +11,13 @@ namespace ml_lme public override void OnInitializeMelon() { DependenciesHandler.ExtractDependencies(); - Settings.Init(); AssetsHandler.Load(); GameEvents.Init(HarmonyInstance); + } + public override void OnLateInitializeMelon() + { + Settings.Init(); MelonLoader.MelonCoroutines.Start(WaitForRootLogic()); } diff --git a/ml_pah/Main.cs b/ml_pah/Main.cs index 1035265..db2f6c1 100644 --- a/ml_pah/Main.cs +++ b/ml_pah/Main.cs @@ -12,17 +12,12 @@ namespace ml_pah { Settings.Init(); HistoryManager.Initialize(); - ModUi.Initialize(); - MelonLoader.MelonCoroutines.Start(WaitForRootLogic()); } - public override void OnDeinitializeMelon() + public override void OnLateInitializeMelon() { - CVRGameEventSystem.Avatar.OnLocalAvatarLoad.RemoveListener(this.OnLocalAvatarLoad); - HistoryManager.OnEntriesUpdated.RemoveListener(this.OnHistoryEntriesUpdated); - - ModUi.Shutdown(); - HistoryManager.Shutdown(); + ModUi.Initialize(); + MelonLoader.MelonCoroutines.Start(WaitForRootLogic()); } IEnumerator WaitForRootLogic() @@ -34,6 +29,15 @@ namespace ml_pah HistoryManager.OnEntriesUpdated.AddListener(this.OnHistoryEntriesUpdated); } + public override void OnDeinitializeMelon() + { + CVRGameEventSystem.Avatar.OnLocalAvatarLoad.RemoveListener(this.OnLocalAvatarLoad); + HistoryManager.OnEntriesUpdated.RemoveListener(this.OnHistoryEntriesUpdated); + + ModUi.Shutdown(); + HistoryManager.Shutdown(); + } + public override void OnUpdate() { HistoryManager.Update(); diff --git a/ml_pam/Main.cs b/ml_pam/Main.cs index 45aff1b..112c2ec 100644 --- a/ml_pam/Main.cs +++ b/ml_pam/Main.cs @@ -8,9 +8,12 @@ namespace ml_pam public override void OnInitializeMelon() { - Settings.Init(); GameEvents.Init(HarmonyInstance); + } + public override void OnLateInitializeMelon() + { + Settings.Init(); MelonLoader.MelonCoroutines.Start(WaitForRootLogic()); } diff --git a/ml_pin/Main.cs b/ml_pin/Main.cs index 68b0f44..82e42a4 100644 --- a/ml_pin/Main.cs +++ b/ml_pin/Main.cs @@ -15,9 +15,12 @@ namespace ml_pin public override void OnInitializeMelon() { - Settings.Init(); ResourcesHandler.ExtractAudioResources(); + } + public override void OnLateInitializeMelon() + { + Settings.Init(); MelonLoader.MelonCoroutines.Start(WaitForInstances()); } diff --git a/ml_pmc/Main.cs b/ml_pmc/Main.cs index 8ab10dc..f8665b4 100644 --- a/ml_pmc/Main.cs +++ b/ml_pmc/Main.cs @@ -10,9 +10,12 @@ namespace ml_pmc public override void OnInitializeMelon() { Settings.Init(); - ModUi.Init(); GameEvents.Init(HarmonyInstance); + } + public override void OnLateInitializeMelon() + { + ModUi.Init(); MelonLoader.MelonCoroutines.Start(WaitForLocalPlayer()); } diff --git a/ml_ppu/Main.cs b/ml_ppu/Main.cs index 60c2f7b..15687b8 100644 --- a/ml_ppu/Main.cs +++ b/ml_ppu/Main.cs @@ -12,9 +12,12 @@ namespace ml_ppu { Settings.Init(); GameEvents.Init(HarmonyInstance); - ModUi.Init(); ModSupport.Init(); + } + public override void OnLateInitializeMelon() + { + ModUi.Init(); MelonLoader.MelonCoroutines.Start(WaitForRootLogic()); } diff --git a/ml_prm/Main.cs b/ml_prm/Main.cs index 4d1c684..8a7bc12 100644 --- a/ml_prm/Main.cs +++ b/ml_prm/Main.cs @@ -9,10 +9,13 @@ namespace ml_prm public override void OnInitializeMelon() { Settings.Init(); - ModUi.Init(); GameEvents.Init(HarmonyInstance); WorldManager.Init(); + } + public override void OnLateInitializeMelon() + { + ModUi.Init(); MelonLoader.MelonCoroutines.Start(WaitForRootLogic()); MelonLoader.MelonCoroutines.Start(WaitForWhitelist()); } diff --git a/ml_prm/RagdollController.cs b/ml_prm/RagdollController.cs index 5da43fd..ac0f0fd 100644 --- a/ml_prm/RagdollController.cs +++ b/ml_prm/RagdollController.cs @@ -2,6 +2,7 @@ using ABI.CCK.Components; using ABI_RC.Core; using ABI_RC.Core.InteractionSystem; using ABI_RC.Core.Player; +using ABI_RC.Core.UI.UIRework.Managers; using ABI_RC.Systems.GameEventSystem; using ABI_RC.Systems.IK; using ABI_RC.Systems.IK.SubSystems; @@ -217,7 +218,7 @@ namespace ml_prm if((m_avatarRagdollToggle != null) && m_avatarRagdollToggle.isActiveAndEnabled && m_avatarRagdollToggle.shouldOverride && (m_ragdolled != m_avatarRagdollToggle.isOn)) SwitchRagdoll(); - if(Settings.Hotkey && Input.GetKeyDown(Settings.HotkeyKey) && !ViewManager.Instance.IsAnyMenuOpen) + if(Settings.Hotkey && Input.GetKeyDown(Settings.HotkeyKey) && !ViewManager.Instance.IsAnyMenuOpen && !KeyboardManager.Instance.IsViewShown) SwitchRagdoll(); if(m_ragdolled && CVRInputManager.Instance.jump && Settings.JumpRecover) diff --git a/ml_vei/Main.cs b/ml_vei/Main.cs index a8db9da..a882f24 100644 --- a/ml_vei/Main.cs +++ b/ml_vei/Main.cs @@ -9,8 +9,6 @@ namespace ml_vei { public override void OnInitializeMelon() { - Settings.Init(); - HarmonyInstance.Patch( typeof(CVRXRModule).GetMethod("Update_Gestures_Vive", BindingFlags.Instance | BindingFlags.NonPublic), null, @@ -18,6 +16,11 @@ namespace ml_vei ); } + public override void OnLateInitializeMelon() + { + Settings.Init(); + } + static void OnViveGesturesUpdate_Postfix(ref CVRXRModule __instance) { try