Decompiled source of Moreitemsinchest v0.0.2

Pluginforitemsinchest.dll

Decompiled 2 months ago
using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using FishNet.Connection;
using FishNet.Object;
using HarmonyLib;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("Pluginforitemsinchest")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Pluginforitemsinchest")]
[assembly: AssemblyCopyright("Copyright ©  2025")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("fd0f4b2a-26b5-4adc-a8c4-fb4a1998c8b9")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyVersion("1.0.0.0")]
[HarmonyPatch(typeof(ChestNetController))]
[HarmonyPatch("RpcLogic___pisever_2166136261")]
public static class ChestSpawnPatch
{
	private static FieldInfo _slotnumField = AccessTools.Field(typeof(ChestNetController), "slotnum");

	private static MethodInfo _piObserversMethod = AccessTools.Method(typeof(ChestNetController), "piObservers", (Type[])null, (Type[])null);

	public static bool Prefix(ChestNetController __instance)
	{
		//IL_006c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0082: Unknown result type (might be due to invalid IL or missing references)
		//IL_0088: Unknown result type (might be due to invalid IL or missing references)
		if (!__instance.hasBeenOpened)
		{
			__instance.hasBeenOpened = true;
			int @int = PlayerPrefs.GetInt("ChestItemCount", 10);
			int num = (int)_slotnumField.GetValue(__instance);
			for (int i = 0; i < @int; i++)
			{
				GameObject val = Object.Instantiate<GameObject>(__instance.Items[Random.Range(0, __instance.Items.Length)]);
				val.transform.position = ((Component)__instance.ItemPoints[num]).transform.position;
				((NetworkBehaviour)__instance).ServerManager.Spawn(val, (NetworkConnection)null, default(Scene));
				num = ((num < __instance.ItemPoints.Length - 1) ? (num + 1) : 0);
			}
			_slotnumField.SetValue(__instance, num);
		}
		_piObserversMethod.Invoke(__instance, null);
		return false;
	}
}
namespace Chestmod;

[BepInPlugin("com.kirill.Chestmod", "Moreitemsinchest", "0.0.2")]
public class ChestModPlugin : BaseUnityPlugin
{
	private void Awake()
	{
		//IL_0006: Unknown result type (might be due to invalid IL or missing references)
		//IL_000c: Expected O, but got Unknown
		Harmony val = new Harmony("com.yourname.chestmod");
		val.PatchAll();
		((BaseUnityPlugin)this).Logger.LogInfo((object)"ChestModPlugin успешно загружен!");
	}
}
internal static class PluginInfo
{
	public const string PLUGIN_GUID = "com.kirill.Chestmod";

	public const string PLUGIN_NAME = "Moreitemsinchest";

	public const string PLUGIN_VERSION = "0.0.2";
}
[HarmonyPatch(typeof(MainMenuManager))]
[HarmonyPatch("LobbyEntered")]
public static class MainMenuManagerPatch
{
	private static GameObject sliderObject;

	public static void Postfix(MainMenuManager __instance)
	{
		//IL_0091: Unknown result type (might be due to invalid IL or missing references)
		//IL_009b: Expected O, but got Unknown
		//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
		//IL_00dc: Unknown result type (might be due to invalid IL or missing references)
		//IL_00f3: Unknown result type (might be due to invalid IL or missing references)
		//IL_010a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0121: Unknown result type (might be due to invalid IL or missing references)
		//IL_0159: Unknown result type (might be due to invalid IL or missing references)
		//IL_0198: Unknown result type (might be due to invalid IL or missing references)
		//IL_019f: Expected O, but got Unknown
		//IL_01ca: Unknown result type (might be due to invalid IL or missing references)
		//IL_01d7: Unknown result type (might be due to invalid IL or missing references)
		//IL_01ee: Unknown result type (might be due to invalid IL or missing references)
		//IL_0218: Unknown result type (might be due to invalid IL or missing references)
		//IL_0228: Unknown result type (might be due to invalid IL or missing references)
		//IL_022f: Expected O, but got Unknown
		//IL_0264: Unknown result type (might be due to invalid IL or missing references)
		//IL_027b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0292: Unknown result type (might be due to invalid IL or missing references)
		//IL_02bc: Unknown result type (might be due to invalid IL or missing references)
		//IL_02e0: Unknown result type (might be due to invalid IL or missing references)
		//IL_02e7: Expected O, but got Unknown
		//IL_0329: Unknown result type (might be due to invalid IL or missing references)
		//IL_036a: Unknown result type (might be due to invalid IL or missing references)
		//IL_0381: Unknown result type (might be due to invalid IL or missing references)
		//IL_0398: Unknown result type (might be due to invalid IL or missing references)
		//IL_03af: Unknown result type (might be due to invalid IL or missing references)
		//IL_03bf: Unknown result type (might be due to invalid IL or missing references)
		//IL_03c6: Expected O, but got Unknown
		//IL_0423: Unknown result type (might be due to invalid IL or missing references)
		//IL_046c: Unknown result type (might be due to invalid IL or missing references)
		//IL_0483: Unknown result type (might be due to invalid IL or missing references)
		//IL_049a: Unknown result type (might be due to invalid IL or missing references)
		//IL_04b1: Unknown result type (might be due to invalid IL or missing references)
		if ((Object)(object)sliderObject != (Object)null)
		{
			return;
		}
		GameObject val = GameObject.Find("Canvas (1)/Lobby/mapsizecheck");
		if (!((Object)(object)val == (Object)null))
		{
			Debug.Log((object)"1");
			Transform transform = val.transform;
			Text val2 = Object.FindFirstObjectByType<Text>();
			Font val3 = (((Object)(object)val2 != (Object)null) ? val2.font : Resources.GetBuiltinResource<Font>("Arial.ttf"));
			if ((Object)(object)val3 == (Object)null)
			{
				Debug.LogError((object)"2.");
			}
			sliderObject = new GameObject("Kirill_ChestMod_ItemCountSlider");
			sliderObject.transform.SetParent(transform, false);
			RectTransform val4 = sliderObject.AddComponent<RectTransform>();
			val4.sizeDelta = new Vector2(300f, 30f);
			val4.anchoredPosition = new Vector2(0f, -200f);
			val4.anchorMin = new Vector2(0.5f, 0.5f);
			val4.anchorMax = new Vector2(0.5f, 0.5f);
			val4.pivot = new Vector2(0.5f, 0.5f);
			sliderObject.AddComponent<CanvasRenderer>();
			Image val5 = sliderObject.AddComponent<Image>();
			((Graphic)val5).color = new Color(0.5f, 0.5f, 0.5f, 0.5f);
			Slider val6 = sliderObject.AddComponent<Slider>();
			val6.minValue = 1f;
			val6.maxValue = 25f;
			val6.wholeNumbers = true;
			GameObject val7 = new GameObject("Fill");
			val7.transform.SetParent(sliderObject.transform, false);
			val7.AddComponent<CanvasRenderer>();
			RectTransform val8 = val7.AddComponent<RectTransform>();
			val8.anchorMin = Vector2.zero;
			val8.anchorMax = Vector2.one;
			val8.sizeDelta = new Vector2(-10f, -10f);
			Image val9 = val7.AddComponent<Image>();
			((Graphic)val9).color = new Color(0.2f, 0.8f, 0.2f, 1f);
			GameObject val10 = new GameObject("Handle");
			val10.transform.SetParent(sliderObject.transform, false);
			val10.AddComponent<CanvasRenderer>();
			RectTransform val11 = val10.AddComponent<RectTransform>();
			val11.sizeDelta = new Vector2(20f, 20f);
			val11.anchorMin = new Vector2(0f, 0.5f);
			val11.anchorMax = new Vector2(0f, 0.5f);
			Image val12 = val10.AddComponent<Image>();
			((Graphic)val12).color = new Color(1f, 1f, 1f, 1f);
			val6.fillRect = val8;
			val6.handleRect = val11;
			GameObject val13 = new GameObject("SliderLabel");
			val13.transform.SetParent(sliderObject.transform, false);
			val13.AddComponent<CanvasRenderer>();
			Text val14 = val13.AddComponent<Text>();
			val14.text = "Items in the chest: ";
			val14.fontSize = 16;
			((Graphic)val14).color = Color.white;
			if ((Object)(object)val3 != (Object)null)
			{
				val14.font = val3;
			}
			val14.alignment = (TextAnchor)4;
			RectTransform component = val13.GetComponent<RectTransform>();
			component.sizeDelta = new Vector2(200f, 30f);
			component.anchoredPosition = new Vector2(-5.9987f, 0f);
			component.anchorMin = new Vector2(0.5f, 0.5f);
			component.anchorMax = new Vector2(0.5f, 0.5f);
			GameObject val15 = new GameObject("SliderValue");
			val15.transform.SetParent(sliderObject.transform, false);
			val15.AddComponent<CanvasRenderer>();
			Text valueText = val15.AddComponent<Text>();
			valueText.text = val6.value.ToString();
			valueText.fontSize = 16;
			((Graphic)valueText).color = Color.white;
			if ((Object)(object)val3 != (Object)null)
			{
				valueText.font = val3;
			}
			valueText.alignment = (TextAnchor)4;
			RectTransform component2 = val15.GetComponent<RectTransform>();
			component2.sizeDelta = new Vector2(50f, 30f);
			component2.anchoredPosition = new Vector2(100f, 0f);
			component2.anchorMin = new Vector2(0.5f, 0.5f);
			component2.anchorMax = new Vector2(0.5f, 0.5f);
			((UnityEvent<float>)(object)val6.onValueChanged).AddListener((UnityAction<float>)delegate(float value)
			{
				PlayerPrefs.SetInt("ChestItemCount", (int)value);
				valueText.text = value.ToString();
			});
			int @int = PlayerPrefs.GetInt("ChestItemCount", 10);
			val6.value = @int;
			valueText.text = @int.ToString();
		}
	}
}