Decompiled source of EFT Loots v1.0.0

EFT_Loots.dll

Decompiled a month ago
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Logging;
using FistVR;
using H3MP.Networking;
using HarmonyLib;
using NGA;
using OtherLoader;
using UnityEngine;

[assembly: Debuggable(DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.0.0")]
[module: UnverifiableCode]
namespace JerryAr.EFT_Loots;

[BepInPlugin("JerryAr.EFT_Loots", "EFT_Loots", "1.0.0")]
[BepInProcess("h3vr.exe")]
[Description("Built with MeatKit")]
[BepInDependency("h3vr.otherloader", "1.3.0")]
public class EFT_LootsPlugin : BaseUnityPlugin
{
	private static readonly string BasePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

	internal static ManualLogSource Logger;

	private void Awake()
	{
		Logger = ((BaseUnityPlugin)this).Logger;
		LoadAssets();
	}

	private void LoadAssets()
	{
		Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly(), "JerryAr.EFT_Loots");
		OtherLoader.RegisterDirectLoad(BasePath, "JerryAr.EFT_Loots", "", "", "eft_loots", "");
	}
}
public class AutoLoadAndSave : MonoBehaviour
{
	public bool saved = false;

	public bool isH3MPInstalled;

	public float countdown = 2f;

	public bool isNGAInstalled;

	public float timer = 1f;

	public bool sceneSpawned = false;

	public bool loadouted = false;

	private void Start()
	{
		isH3MPInstalled = Chainloader.PluginInfos.ContainsKey("VIP.TommySoucy.H3MP");
		isNGAInstalled = Chainloader.PluginInfos.ContainsKey("NGA.SafehouseMP");
	}

	private void EnterWithLoadOut()
	{
		//IL_0048: Unknown result type (might be due to invalid IL or missing references)
		//IL_005e: Unknown result type (might be due to invalid IL or missing references)
		//IL_0068: Unknown result type (might be due to invalid IL or missing references)
		//IL_006e: Expected O, but got Unknown
		//IL_009e: Unknown result type (might be due to invalid IL or missing references)
		//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_00d1: Expected O, but got Unknown
		if (countdown >= 0f)
		{
			countdown -= Time.deltaTime;
		}
		if (!loadouted && countdown < 0f)
		{
			loadouted = true;
			Transform transform = new GameObject().transform;
			transform.position = ((Component)GM.CurrentPlayerBody).transform.position;
			VaultFile val = new VaultFile();
			if (!VaultSystem.LoadVaultFile(SafehouseMP.raid_extracted_loadout_filename, (VaultFileDisplayMode)1, ref val))
			{
				Debug.Log((object)"ERROR: Loading saved loadout failed.");
				return;
			}
			string text = default(string);
			if (!VaultSystem.SpawnObjects((VaultFileDisplayMode)1, val, ref text, transform, Vector3.zero))
			{
				Debug.Log((object)"ERROR: Spawning saved loadout failed.");
				return;
			}
			VaultFile val2 = new VaultFile();
			VaultSystem.SaveVaultFile(SafehouseMP.raid_extracted_loadout_filename, (VaultFileDisplayMode)1, val2);
		}
	}

	private void FixedUpdate()
	{
		//IL_03ac: Unknown result type (might be due to invalid IL or missing references)
		//IL_03cb: Unknown result type (might be due to invalid IL or missing references)
		//IL_0267: Unknown result type (might be due to invalid IL or missing references)
		//IL_0286: Unknown result type (might be due to invalid IL or missing references)
		//IL_0055: Unknown result type (might be due to invalid IL or missing references)
		//IL_0074: Unknown result type (might be due to invalid IL or missing references)
		//IL_0481: Unknown result type (might be due to invalid IL or missing references)
		//IL_0490: Unknown result type (might be due to invalid IL or missing references)
		//IL_0410: Unknown result type (might be due to invalid IL or missing references)
		//IL_0417: Expected O, but got Unknown
		//IL_0198: Unknown result type (might be due to invalid IL or missing references)
		//IL_01b7: Unknown result type (might be due to invalid IL or missing references)
		//IL_043c: Unknown result type (might be due to invalid IL or missing references)
		//IL_033a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0349: Unknown result type (might be due to invalid IL or missing references)
		//IL_02cb: Unknown result type (might be due to invalid IL or missing references)
		//IL_02d1: Expected O, but got Unknown
		//IL_01f6: Unknown result type (might be due to invalid IL or missing references)
		//IL_0205: Unknown result type (might be due to invalid IL or missing references)
		//IL_0128: Unknown result type (might be due to invalid IL or missing references)
		//IL_0137: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
		//IL_00bf: Expected O, but got Unknown
		//IL_02f5: Unknown result type (might be due to invalid IL or missing references)
		//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
		if (isH3MPInstalled)
		{
			if (Client.isFullyConnected)
			{
				if (ThreadManager.host)
				{
					if (!isNGAInstalled)
					{
						return;
					}
					if ((Object)(object)GM.CurrentPlayerBody != (Object)null)
					{
						((Component)this).gameObject.transform.position = GM.CurrentPlayerBody.Head.position;
						((Component)this).gameObject.transform.eulerAngles = GM.CurrentPlayerBody.Head.eulerAngles;
					}
					timer -= Time.deltaTime;
					if (!(timer <= 0f))
					{
						return;
					}
					timer = 0f;
					if (!sceneSpawned)
					{
						VaultFile val = new VaultFile();
						if (VaultSystem.DoesVaultFileExist((VaultFileDisplayMode)2, "EFTHideOut_Standard_Edition_SaveFile"))
						{
							VaultSystem.LoadVaultFile("EFTHideOut_Standard_Edition_SaveFile", (VaultFileDisplayMode)2, ref val);
							string text = default(string);
							VaultSystem.SpawnObjects((VaultFileDisplayMode)2, val, ref text, (Transform)null, Vector3.zero);
							Debug.Log((object)"SceneLoaded");
						}
						else if (!VaultSystem.DoesVaultFileExist((VaultFileDisplayMode)2, "EFTHideOut_Standard_Edition_SaveFile"))
						{
							Debug.Log((object)"Can't find scene save");
						}
						sceneSpawned = true;
					}
					if (Vector3.Distance(((Component)this).transform.position, GM.CurrentMovementManager.Head.position) < 0.25f)
					{
						EnterWithLoadOut();
					}
				}
				else
				{
					if (ThreadManager.host || !isNGAInstalled)
					{
						return;
					}
					if ((Object)(object)GM.CurrentPlayerBody != (Object)null)
					{
						((Component)this).gameObject.transform.position = GM.CurrentPlayerBody.Head.position;
						((Component)this).gameObject.transform.eulerAngles = GM.CurrentPlayerBody.Head.eulerAngles;
					}
					timer -= Time.deltaTime;
					if (timer <= 0f)
					{
						timer = 0f;
						if (Vector3.Distance(((Component)this).transform.position, GM.CurrentMovementManager.Head.position) < 0.25f)
						{
							EnterWithLoadOut();
						}
					}
				}
			}
			else
			{
				if (Client.isFullyConnected || !isNGAInstalled)
				{
					return;
				}
				if ((Object)(object)GM.CurrentPlayerBody != (Object)null)
				{
					((Component)this).gameObject.transform.position = GM.CurrentPlayerBody.Head.position;
					((Component)this).gameObject.transform.eulerAngles = GM.CurrentPlayerBody.Head.eulerAngles;
				}
				timer -= Time.deltaTime;
				if (!(timer <= 0f))
				{
					return;
				}
				timer = 0f;
				if (!sceneSpawned)
				{
					VaultFile val2 = new VaultFile();
					if (VaultSystem.DoesVaultFileExist((VaultFileDisplayMode)2, "EFTHideOut_Standard_Edition_SaveFile"))
					{
						VaultSystem.LoadVaultFile("EFTHideOut_Standard_Edition_SaveFile", (VaultFileDisplayMode)2, ref val2);
						string text2 = default(string);
						VaultSystem.SpawnObjects((VaultFileDisplayMode)2, val2, ref text2, (Transform)null, Vector3.zero);
						Debug.Log((object)"SceneLoaded");
					}
					else if (!VaultSystem.DoesVaultFileExist((VaultFileDisplayMode)2, "EFTHideOut_Standard_Edition_SaveFile"))
					{
						Debug.Log((object)"Can't find scene save");
					}
					sceneSpawned = true;
				}
				if (Vector3.Distance(((Component)this).transform.position, GM.CurrentMovementManager.Head.position) < 0.25f)
				{
					EnterWithLoadOut();
				}
			}
		}
		else
		{
			if (isH3MPInstalled || !isNGAInstalled)
			{
				return;
			}
			if ((Object)(object)GM.CurrentPlayerBody != (Object)null)
			{
				((Component)this).gameObject.transform.position = GM.CurrentPlayerBody.Head.position;
				((Component)this).gameObject.transform.eulerAngles = GM.CurrentPlayerBody.Head.eulerAngles;
			}
			timer -= Time.deltaTime;
			if (!(timer <= 0f))
			{
				return;
			}
			timer = 0f;
			if (!sceneSpawned)
			{
				VaultFile val3 = new VaultFile();
				if (VaultSystem.DoesVaultFileExist((VaultFileDisplayMode)2, "EFTHideOut_Standard_Edition_SaveFile"))
				{
					VaultSystem.LoadVaultFile("EFTHideOut_Standard_Edition_SaveFile", (VaultFileDisplayMode)2, ref val3);
					string text3 = default(string);
					VaultSystem.SpawnObjects((VaultFileDisplayMode)2, val3, ref text3, (Transform)null, Vector3.zero);
					Debug.Log((object)"SceneLoaded");
				}
				else if (!VaultSystem.DoesVaultFileExist((VaultFileDisplayMode)2, "EFTHideOut_Standard_Edition_SaveFile"))
				{
					Debug.Log((object)"Can't find scene save");
				}
				sceneSpawned = true;
			}
			if (Vector3.Distance(((Component)this).transform.position, GM.CurrentMovementManager.Head.position) < 0.25f)
			{
				EnterWithLoadOut();
			}
		}
	}
}
public class AutoLoadSceneOnStart : MonoBehaviour
{
	public bool isH3MPInstalled;

	private VaultFile FileToSpawn = new VaultFile();

	public bool saved = false;

	public string FileName;

	public string SceneVaultFileName;

	public string PluginDictionaryString;

	public float countdown = 2f;

	public float timer = 1f;

	public bool sceneSpawned = false;

	public bool loadouted = false;

	public bool loadonlyonce = false;

	public string newlySavedFileName;

	public bool isPMCStandard;

	private void Awake()
	{
		//IL_0001: Unknown result type (might be due to invalid IL or missing references)
		//IL_0007: Expected O, but got Unknown
		PluginInfo value = new PluginInfo();
		Chainloader.PluginInfos.TryGetValue(PluginDictionaryString, out value);
		string directoryName = Path.GetDirectoryName(value.Location);
		Load<VaultFile>(Path.Combine(directoryName, FileName), FileToSpawn);
	}

	private void Start()
	{
		isH3MPInstalled = Chainloader.PluginInfos.ContainsKey("VIP.TommySoucy.H3MP");
		isPMCStandard = Chainloader.PluginInfos.ContainsKey("JerryAr.EFT_PMC_ModPack");
	}

	public void Load<T>(string path, T objectToOverwrite)
	{
		string empty = string.Empty;
		Debug.Log((object)path);
		JsonUtility.FromJsonOverwrite(File.ReadAllText(path), (object)objectToOverwrite);
	}

	public void LoadSavedScene()
	{
		//IL_0045: Unknown result type (might be due to invalid IL or missing references)
		timer -= Time.deltaTime;
		if (timer <= 0f)
		{
			timer = 0f;
			if (!sceneSpawned)
			{
				string text = default(string);
				VaultSystem.SpawnObjects((VaultFileDisplayMode)2, FileToSpawn, ref text, (Transform)null, Vector3.zero);
				Debug.Log((object)"SceneLoaded");
				sceneSpawned = true;
			}
		}
	}

	private void Update()
	{
		if (!isPMCStandard || sceneSpawned)
		{
			return;
		}
		if (VaultSystem.DoesVaultFileExist((VaultFileDisplayMode)2, newlySavedFileName))
		{
			if (!loadonlyonce)
			{
				if (isH3MPInstalled && ThreadManager.host)
				{
					LoadSavedScene();
				}
				if (!isH3MPInstalled)
				{
					LoadSavedScene();
				}
			}
		}
		else
		{
			if (VaultSystem.DoesVaultFileExist((VaultFileDisplayMode)2, newlySavedFileName))
			{
				return;
			}
			if (isH3MPInstalled)
			{
				if (Client.isFullyConnected)
				{
					if (ThreadManager.host)
					{
						LoadSavedScene();
					}
				}
				else if (!Client.isFullyConnected)
				{
					LoadSavedScene();
				}
			}
			if (!isH3MPInstalled)
			{
				LoadSavedScene();
			}
		}
	}
}