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();
}
}
}