0
0
mirror of https://github.com/sp-tarkov/modules.git synced 2025-02-13 09:50:43 -05:00
modules/project/Aki.Core/Patches/GameValidationPatch.cs
Deadly Alden dc4aee0e6b Refactor ValidationUtil functionality (!76)
**Description**
As of right now `ValidationUtil.cs` does not perform it's intended function, and the callers of it are not properly using the result.
Removed the redundant calls and implemented `GameValidationPatch.cs` to properly implement this behavior.

If the check fails;
1. All interface elements are disabled.
2. Notification popup is sent.
3. Logs are sent to the `Console`, `Server` and `BepInEx`.

**Related**
Closes: SPT-AKI/Issues#435

**Showcase**
https://streamable.com/2ra4sa

Co-authored-by: Deadly <info.saddiki@gmail.com>
Reviewed-on: SPT-AKI/Modules#76
Co-authored-by: Deadly Alden <deadly@noreply.dev.sp-tarkov.com>
Co-committed-by: Deadly Alden <deadly@noreply.dev.sp-tarkov.com>
2024-02-08 09:10:34 +00:00

35 lines
1.1 KiB
C#

using System.Reflection;
using Aki.Common.Utils;
using Aki.Core.Utils;
using Aki.Reflection.Patching;
using HarmonyLib;
namespace Aki.Core.Patches
{
public class GameValidationPatch : ModulePatch
{
private const string PluginName = "Aki.Core";
private const string ErrorMessage = "Validation failed";
private static BepInEx.Logging.ManualLogSource _logger = null;
private static bool _hasRun = false;
protected override MethodBase GetTargetMethod()
{
return AccessTools.Method(typeof(BattleeyePatchClass), nameof(BattleeyePatchClass.RunValidation));
}
[PatchPostfix]
private static void PatchPostfix()
{
if (ValidationUtil.Validate() || _hasRun)
return;
if (_logger == null)
_logger = BepInEx.Logging.Logger.CreateLogSource(PluginName);
_hasRun = true;
ServerLog.Warn($"Warning: {PluginName}", ErrorMessage);
_logger?.LogWarning(ErrorMessage);
}
}
}