0
0
mirror of https://github.com/sp-tarkov/modules.git synced 2025-02-13 08:50:43 -05:00

Add a console command to reload client/profile

This commit is contained in:
Kaeno 2024-03-19 09:43:17 +00:00
parent 00f0d786f9
commit 9d8c285094
2 changed files with 52 additions and 7 deletions

View File

@ -28,6 +28,8 @@ namespace Aki.Debugging
//new BTRDebugDataPatch().Enable(); //new BTRDebugDataPatch().Enable();
//new PMCBotSpawnLocationPatch().Enable(); //new PMCBotSpawnLocationPatch().Enable();
// Chomp said to leave it enabled by default
new ReloadClientPatch().Enable();
} }
catch (Exception ex) catch (Exception ex)
{ {

View File

@ -0,0 +1,43 @@
using Aki.Reflection.Patching;
using Comfort.Common;
using EFT;
using EFT.Console.Core;
using EFT.UI;
using HarmonyLib;
using System.Reflection;
namespace Aki.Debugging.Patches
{
public class ReloadClientPatch : ModulePatch
{
protected override MethodBase GetTargetMethod()
{
return AccessTools.Method(typeof(PreloaderUI), nameof(PreloaderUI.Awake));
}
[PatchPostfix]
private static void PatchPostfix()
{
ConsoleScreen.Processor.RegisterCommandGroup<ReloadClientPatch>();
}
[ConsoleCommand("reload", "", null, "Reloads currently loaded profile.\nOnly use while in Main Menu" +
"\nRunning command while in hideout will cause graphical glitches and NRE to do with Nightvision. Pretty sure wont cause anything bad")]
public static void Reload()
{
var tarkovapp = Reflection.Utils.ClientAppUtils.GetMainApp();
GameWorld gameWorld = Singleton<GameWorld>.Instance;
if (gameWorld != null && gameWorld.MainPlayer.Location != "hideout")
{
ConsoleScreen.LogError("You are in raid. Please only use in Mainmenu");
return; // return early we dont want to cause errors because we are inraid
}
else if (gameWorld != null)
{
tarkovapp.HideoutControllerAccess.UnloadHideout();
}
tarkovapp.method_48();
}
}
}