Decompiled source of AutoRepairByViper v5.4.1603

plugins/AutoRepair.dll

Decompiled 3 days ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Logging;
using HarmonyLib;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("AutoRepair")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("AutoRepair")]
[assembly: AssemblyCopyright("Copyright ©  2021")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("9c03d122-ca5f-446a-aeff-1d08d6698593")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace AutoRepair
{
	[BepInPlugin("Tekla_AutoRepair", "AutoRepair", "5.4.1603")]
	public class Main : BaseUnityPlugin
	{
		public const string NAME = "AutoRepair";

		public const string AUTHOR = "Tekla";

		public const string GUID = "Tekla_AutoRepair";

		public const string VERSION = "5.4.1603";

		internal readonly ManualLogSource log;

		internal readonly Harmony harmony;

		internal readonly Assembly assembly;

		public readonly string modFolder;

		internal static ManualLogSource Log;

		public Main()
		{
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: Expected O, but got Unknown
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0025: Expected O, but got Unknown
			Log = new ManualLogSource("AutoRepair");
			harmony = new Harmony("Tekla_AutoRepair");
			assembly = Assembly.GetExecutingAssembly();
			modFolder = Path.GetDirectoryName(assembly.Location);
		}

		public void Start()
		{
			Logger.Sources.Add((ILogSource)(object)Log);
			harmony.PatchAll(assembly);
		}
	}
}
namespace AutoRepair.Patches
{
	[HarmonyPatch]
	public static class Patches
	{
		private static readonly MethodInfo HaveRepairableItems = AccessTools.Method(typeof(InventoryGui), "HaveRepairableItems", (Type[])null, (Type[])null);

		private static readonly MethodInfo RepairOneItem = AccessTools.Method(typeof(InventoryGui), "RepairOneItem", (Type[])null, (Type[])null);

		[HarmonyPostfix]
		[HarmonyPatch(typeof(CraftingStation), "Interact")]
		public static void CraftingStation_Interact(CraftingStation __instance, Humanoid user, bool repeat, bool alt)
		{
			int num = 0;
			InventoryGui instance = InventoryGui.instance;
			while ((bool)HaveRepairableItems.Invoke(instance, null))
			{
				num++;
				RepairOneItem.Invoke(instance, null);
			}
			if (num > 0)
			{
				((Character)Player.m_localPlayer).Message((MessageType)2, " ", 0, (Sprite)null, false);
				Main.Log.LogInfo((object)$"[AutoRepair] Repaired {num} objects!\n");
			}
		}
	}
}