From 8460e28bd15b23ee3ea434d6cc46fc7f657659a3 Mon Sep 17 00:00:00 2001 From: Rutherther Date: Sun, 1 Jan 2023 12:46:09 +0100 Subject: [PATCH] feat(binding): add possibility to disable or reenable hooks --- .../NosBindingManager.cs | 28 +++++++++++-------- .../Objects/NetworkBinding.cs | 17 +++++++---- .../Objects/PetManagerBinding.cs | 16 +++++++++++ .../Objects/PlayerManagerBinding.cs | 20 +++++++++---- 4 files changed, 59 insertions(+), 22 deletions(-) diff --git a/src/Core/NosSmooth.LocalBinding/NosBindingManager.cs b/src/Core/NosSmooth.LocalBinding/NosBindingManager.cs index 18acbee..0cf86dc 100644 --- a/src/Core/NosSmooth.LocalBinding/NosBindingManager.cs +++ b/src/Core/NosSmooth.LocalBinding/NosBindingManager.cs @@ -26,7 +26,7 @@ public class NosBindingManager : IDisposable private readonly PetManagerBindingOptions _petManagerBindingOptions; private readonly CharacterBindingOptions _characterBindingOptions; private readonly NetworkBindingOptions _networkBindingOptions; - private UnitManagerBindingOptions _unitManagerBindingOptions; + private readonly UnitManagerBindingOptions _unitManagerBindingOptions; private NetworkBinding? _networkBinding; private PlayerManagerBinding? _characterBinding; @@ -309,19 +309,23 @@ public class NosBindingManager : IDisposable /// /// Disable the currently enabled NosTale hooks. /// - /// A result that may or may not have succeeded. - public Result DisableHooks() + public void DisableHooks() { - if (_networkBinding is not null) - { - var result = _networkBinding.DisableHooks(); - if (!result.IsSuccess) - { - return result; - } - } + _networkBinding?.DisableHooks(); + _characterBinding?.DisableHooks(); + _unitManagerBinding?.DisableHooks(); + _petManagerBinding?.DisableHooks(); + } - return Result.FromSuccess(); + /// + /// Enable all NosTale hooks. + /// + public void EnableHooks() + { + _networkBinding?.EnableHooks(); + _characterBinding?.EnableHooks(); + _unitManagerBinding?.EnableHooks(); + _petManagerBinding?.EnableHooks(); } /// diff --git a/src/Core/NosSmooth.LocalBinding/Objects/NetworkBinding.cs b/src/Core/NosSmooth.LocalBinding/Objects/NetworkBinding.cs index 2bdd6ca..593af1a 100644 --- a/src/Core/NosSmooth.LocalBinding/Objects/NetworkBinding.cs +++ b/src/Core/NosSmooth.LocalBinding/Objects/NetworkBinding.cs @@ -148,15 +148,22 @@ public class NetworkBinding return Result.FromSuccess(); } + /// + /// Enable all networking hooks. + /// + public void EnableHooks() + { + _receiveHook.Enable(); + _sendHook.Enable(); + } + /// /// Disable all the hooks that are currently enabled. /// - /// A result that may or may not have succeeded. - public Result DisableHooks() + public void DisableHooks() { - _receiveHook?.Disable(); - _sendHook?.Disable(); - return Result.FromSuccess(); + _receiveHook.Disable(); + _sendHook.Disable(); } private nuint GetManagerAddress(bool third) diff --git a/src/Core/NosSmooth.LocalBinding/Objects/PetManagerBinding.cs b/src/Core/NosSmooth.LocalBinding/Objects/PetManagerBinding.cs index 9ddfce2..26ff3ae 100644 --- a/src/Core/NosSmooth.LocalBinding/Objects/PetManagerBinding.cs +++ b/src/Core/NosSmooth.LocalBinding/Objects/PetManagerBinding.cs @@ -89,6 +89,22 @@ public class PetManagerBinding /// public PetManagerList PetManagerList { get; } + /// + /// Disable all PetManager hooks. + /// + public void DisableHooks() + { + _petWalkHook.Disable(); + } + + /// + /// Enable all PetManager hooks. + /// + public void EnableHooks() + { + _petWalkHook.Enable(); + } + /// /// Walk the given pet to the given location. /// diff --git a/src/Core/NosSmooth.LocalBinding/Objects/PlayerManagerBinding.cs b/src/Core/NosSmooth.LocalBinding/Objects/PlayerManagerBinding.cs index 9e81ace..4348a7a 100644 --- a/src/Core/NosSmooth.LocalBinding/Objects/PlayerManagerBinding.cs +++ b/src/Core/NosSmooth.LocalBinding/Objects/PlayerManagerBinding.cs @@ -132,13 +132,23 @@ public class PlayerManagerBinding public event Func? FollowEntityCall; /// - /// Disable all the hooks that are currently enabled. + /// Disable all PlayerManager hooks. /// - /// A result that may or may not have succeeded. - public Result DisableHooks() + public void DisableHooks() { - _walkHook?.Disable(); - return Result.FromSuccess(); + _followHook.Disable(); + _unfollowHook.Disable(); + _walkHook.Disable(); + } + + /// + /// Enable all PlayerManager hooks. + /// + public void EnableHooks() + { + _followHook.Enable(); + _unfollowHook.Enable(); + _walkHook.Enable(); } /// -- 2.49.0