104 lines
2.4 KiB
C#
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;
|
|
}
|
|
}
|