EFTCheatPVE/stoopid.raw/StatusManager.cs

104 lines
2.4 KiB
C#

using System;
using System.Reflection;
using EFT;
using EFT.InventoryLogic;
using EFT.UI;
using stupid.solutions;
using stupid.solutions.Utils;
public class StatusManager
{
public class HookManager
{
public static bool CheckItemFilter_Hook(ItemFilter[] filters, Item item)
{
return true;
}
}
public static void Stop_Hook(object instance, string profileId, ExitStatus exitStatus, string exitName, float delay = 0f)
{
try
{
Main.alwayssurvivedhook.Unhook();
MethodInfo originalMethod = Main.alwayssurvivedhook.OriginalMethod;
if (originalMethod != null)
{
if (Settings.alwayssurvived)
{
ExitStatus exitStatus2 = ExitStatus.Survived;
originalMethod.Invoke(instance, new object[4] { profileId, exitStatus2, exitName, delay });
ConsoleScreen.Log("Setting Exit Status to Survived");
}
else
{
originalMethod.Invoke(instance, new object[4] { profileId, exitStatus, exitName, delay });
ConsoleScreen.Log("Always Survive is off, not doing anything");
}
}
}
catch (Exception ex)
{
ConsoleScreen.Log("Exception in hook method:");
ConsoleScreen.Log($"Exception Type: {ex.GetType()}");
ConsoleScreen.Log("Exception Message: " + ex.Message);
ConsoleScreen.Log("Stack Trace: " + ex.StackTrace);
}
finally
{
Main.alwayssurvivedhook.Hook();
}
}
public static bool CheckItemFilter_Hook(object instance, Item item)
{
try
{
Main.checkItemFilterHook.Unhook();
MethodInfo originalMethod = Main.checkItemFilterHook.OriginalMethod;
if (originalMethod != null)
{
if (Settings.removefilters)
{
return true;
}
return (bool)originalMethod.Invoke(instance, new object[1] { item });
}
}
catch (Exception ex)
{
ConsoleScreen.Log("Exception in CheckItemFilter_Hook: " + ex.Message);
}
finally
{
Main.checkItemFilterHook.Hook();
}
return false;
}
public static bool CheckItemExcludedFilter_Hook(object instance, Item item)
{
try
{
Main.checkItemExcludedFilterHook.Unhook();
MethodInfo originalMethod = Main.checkItemExcludedFilterHook.OriginalMethod;
if (originalMethod != null)
{
if (Settings.removefilters)
{
return true;
}
return (bool)originalMethod.Invoke(instance, new object[1] { item });
}
}
catch (Exception ex)
{
ConsoleScreen.Log("Exception in CheckItemExcludedFilter_Hook: " + ex.Message);
}
finally
{
Main.checkItemExcludedFilterHook.Hook();
}
return false;
}
}