Decompiled source of MoreSettings v1.2.0

BepInEx/plugins/lammas123.MoreSettings.dll

Decompiled 5 days ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using System.Xml.Serialization;
using BepInEx;
using BepInEx.Core.Logging.Interpolation;
using BepInEx.IL2CPP;
using BepInEx.IL2CPP.Utils;
using BepInEx.Logging;
using HarmonyLib;
using Il2CppSystem;
using Il2CppSystem.Collections.Generic;
using Microsoft.CodeAnalysis;
using SteamworksNative;
using TMPro;
using UnhollowerBaseLib;
using UnhollowerRuntimeLib;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace MoreSettings
{
	internal static class Patches
	{
		[CompilerGenerated]
		private sealed class <CoroUpdateMicImages>d__18 : IEnumerator<object>, IEnumerator, IDisposable
		{
			private int <>1__state;

			private object <>2__current;

			object IEnumerator<object>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <CoroUpdateMicImages>d__18(int <>1__state)
			{
				this.<>1__state = <>1__state;
			}

			[DebuggerHidden]
			void IDisposable.Dispose()
			{
				<>1__state = -2;
			}

			private bool MoveNext()
			{
				//IL_001d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0027: Expected O, but got Unknown
				int num = <>1__state;
				if (num != 0)
				{
					if (num != 1)
					{
						return false;
					}
					<>1__state = -1;
					if (Object.op_Implicit((Object)(object)MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance) && MonoBehaviourPublicGapaTrconaGaDi2UIObUnique.Instance.parent.activeInHierarchy)
					{
						Enumerator<ulong, MonoBehaviourPublicCSstReshTrheObplBojuUnique> enumerator = MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.activePlayers.Keys.GetEnumerator();
						while (enumerator.MoveNext())
						{
							ulong current = enumerator.Current;
							if (MoreSettings.Instance.playerListMicImages.ContainsKey(current) && (Object)(object)MoreSettings.Instance.playerListMicImages[current] != (Object)null)
							{
								((Behaviour)MoreSettings.Instance.playerListMicImages[current]).enabled = MoreSettings.Instance.PlayerIsTalking(current);
							}
						}
						enumerator = MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.spectators.Keys.GetEnumerator();
						while (enumerator.MoveNext())
						{
							ulong current2 = enumerator.Current;
							if (MoreSettings.Instance.playerListMicImages.ContainsKey(current2) && (Object)(object)MoreSettings.Instance.playerListMicImages[current2] != (Object)null)
							{
								((Behaviour)MoreSettings.Instance.playerListMicImages[current2]).enabled = MoreSettings.Instance.PlayerIsTalking(current2);
							}
						}
					}
				}
				else
				{
					<>1__state = -1;
				}
				<>2__current = (object)new WaitForSeconds(0.1f);
				<>1__state = 1;
				return true;
			}

			bool IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			[DebuggerHidden]
			void IEnumerator.Reset()
			{
				throw new NotSupportedException();
			}
		}

		internal static bool sprintToggled = true;

		internal static bool checkingInteract = false;

		internal static bool checkingLeftClick = false;

		internal static float lastAttack = 0f;

		internal static Slider volumeSlider;

		[HarmonyPatch(typeof(MonoBehaviourPublicGataInefObInUnique), "Method_Private_Void_GameObject_Boolean_Vector3_Quaternion_0")]
		[HarmonyPatch(typeof(MonoBehaviourPublicCSDi2UIInstObUIloDiUnique), "Method_Private_Void_0")]
		[HarmonyPrefix]
		internal static bool PreBepinexDetection()
		{
			return false;
		}

		[HarmonyPatch(typeof(MonoBehaviourPublicGaplfoGaTrorplTrRiBoUnique), "SetInput")]
		[HarmonyPrefix]
		internal static void PrePlayerMovementSetInput(ref bool param_2, ref bool param_3, ref bool param_4)
		{
			if (!MoreSettings.Instance.save.holdSprint)
			{
				if (Input.GetKeyDown((KeyCode)MonoBehaviourPublicInfobaInlerijuIncrspUnique.sprint))
				{
					sprintToggled = !sprintToggled;
				}
				param_4 = sprintToggled;
			}
			if (!MonoBehaviourPublicBofrhnBoObInUnique.frozen && !MonoBehaviourPublicBofrhnBoObInUnique.hnsFrozen)
			{
				if (CurrentSettings.holdCrouch)
				{
					param_2 = param_2 || PlayerInput.CheckInput(MoreSettings.Instance.save.alternativeCrouch);
				}
				else if (PlayerInput.CheckInputDown(MoreSettings.Instance.save.alternativeCrouch))
				{
					PlayerInput.Instance.crouching = !PlayerInput.Instance.crouching;
					param_2 = PlayerInput.Instance.crouching;
				}
				if (MoreSettings.Instance.save.holdJump)
				{
					param_3 = PlayerInput.CheckInput(MonoBehaviourPublicInfobaInlerijuIncrspUnique.jump) || PlayerInput.CheckInput(MoreSettings.Instance.save.alternativeJump);
				}
				else
				{
					param_3 = param_3 || PlayerInput.CheckInputDown(MoreSettings.Instance.save.alternativeJump);
				}
			}
		}

		[HarmonyPatch(typeof(PlayerInput), "NotFrozenInput")]
		[HarmonyPrefix]
		internal static void PrePlayerInputNotFrozenInput(PlayerInput __instance)
		{
			if (Object.op_Implicit((Object)(object)__instance.playerMovement))
			{
				checkingInteract = true;
				checkingLeftClick = true;
			}
		}

		[HarmonyPatch(typeof(Input), "GetKeyDown", new Type[] { typeof(KeyCode) })]
		[HarmonyPrefix]
		internal static bool PreInputGetKeyDown(ref bool __result, KeyCode key)
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Invalid comparison between Unknown and I4
			//IL_0040: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Invalid comparison between Unknown and I4
			//IL_0099: Unknown result type (might be due to invalid IL or missing references)
			if (checkingInteract && (int)key == MonoBehaviourPublicInfobaInlerijuIncrspUnique.interact)
			{
				checkingInteract = false;
				if (MoreSettings.Instance.save.holdInteract)
				{
					__result = Input.GetKey((KeyCode)MonoBehaviourPublicInfobaInlerijuIncrspUnique.interact);
					return false;
				}
				return true;
			}
			if (checkingLeftClick && (int)key == MonoBehaviourPublicInfobaInlerijuIncrspUnique.leftClick)
			{
				checkingLeftClick = false;
				if (MoreSettings.Instance.save.holdAttack)
				{
					if ((Object)(object)PlayerInput.Instance.playerInventory.currentItem != (Object)null)
					{
						if (!PlayerInput.Instance.playerInventory.currentItem.GetComponent<MonoBehaviour1PublicAbstractItitBoGapiTrrileTrObUnique>().field_Protected_Boolean_0)
						{
							return true;
						}
						if (Input.GetKeyDown(key))
						{
							lastAttack = Time.time;
							return true;
						}
						if (Time.time - lastAttack < 0.2f)
						{
							return true;
						}
					}
					__result = Input.GetKey((KeyCode)MonoBehaviourPublicInfobaInlerijuIncrspUnique.leftClick);
					if (((Object)(object)PlayerInput.Instance.playerInventory.currentItem != (Object)null) & __result)
					{
						lastAttack = Time.time;
					}
					return false;
				}
				return true;
			}
			return true;
		}

		[HarmonyPatch(typeof(MonoBehaviourPublicDi2InItidGamoObInUnique), "Awake")]
		[HarmonyPostfix]
		internal static void PostItemManagerAwake()
		{
			Enumerator<int, ItemData> enumerator = MonoBehaviourPublicDi2InItidGamoObInUnique.idToItem.Values.GetEnumerator();
			while (enumerator.MoveNext())
			{
				ItemData current = enumerator.Current;
				if ((Object)(object)current.gunComponent != (Object)null)
				{
					current.gunComponent.automatic = true;
				}
			}
		}

		[HarmonyPatch(typeof(MonoBehaviourPublicBubaObcafoObseingrObUnique), "Start")]
		[HarmonyPostfix]
		internal static void PostSettingsStart(MonoBehaviourPublicBubaObcafoObseingrObUnique __instance)
		{
			MoreSettings.Instance.recentlyPlayed = MoreSettings.Instance.CreateSetting<MonoBehaviour1PublicGachUnique>((MonoBehaviourPublicIncuObm_ObUnique)(object)__instance.streamerMode, 10, "Enable Recently Played With");
			MoreSettings.Instance.recentlyPlayed.SetSetting(MoreSettings.Instance.save.recentlyPlayed);
			MoreSettings.Instance.alternativeJump = MoreSettings.Instance.CreateSetting<MonoBehaviour1PublicTekeIncuStUnique>((MonoBehaviourPublicIncuObm_ObUnique)(object)__instance.jump, 5, "Jump (Alternative)");
			MoreSettings.Instance.alternativeJump.SetSetting(MoreSettings.Instance.save.alternativeJump, "Jump (Alternative)");
			MoreSettings.Instance.holdJump = MoreSettings.Instance.CreateSetting<MonoBehaviour1PublicGachUnique>((MonoBehaviourPublicIncuObm_ObUnique)(object)__instance.holdCrouch, 6, "Hold to jump");
			MoreSettings.Instance.holdJump.SetSetting(MoreSettings.Instance.save.holdJump);
			MoreSettings.Instance.holdSprint = MoreSettings.Instance.CreateSetting<MonoBehaviour1PublicGachUnique>((MonoBehaviourPublicIncuObm_ObUnique)(object)__instance.holdCrouch, 9, "Hold to sprint");
			MoreSettings.Instance.holdSprint.SetSetting(MoreSettings.Instance.save.holdSprint);
			MoreSettings.Instance.alternativeCrouch = MoreSettings.Instance.CreateSetting<MonoBehaviour1PublicTekeIncuStUnique>((MonoBehaviourPublicIncuObm_ObUnique)(object)__instance.crouch, 11, "Crouch / Slide (Alternative)");
			MoreSettings.Instance.alternativeCrouch.SetSetting(MoreSettings.Instance.save.alternativeCrouch, "Crouch / Slide (Alternative)");
			MoreSettings.Instance.holdInteract = MoreSettings.Instance.CreateSetting<MonoBehaviour1PublicGachUnique>((MonoBehaviourPublicIncuObm_ObUnique)(object)__instance.holdCrouch, 14, "Hold to interact");
			MoreSettings.Instance.holdInteract.SetSetting(MoreSettings.Instance.save.holdInteract);
			MoreSettings.Instance.holdAttack = MoreSettings.Instance.CreateSetting<MonoBehaviour1PublicGachUnique>((MonoBehaviourPublicIncuObm_ObUnique)(object)__instance.holdCrouch, 19, "Hold to attack");
			MoreSettings.Instance.holdAttack.SetSetting(MoreSettings.Instance.save.holdAttack);
			((Component)__instance.devices).gameObject.SetActive(true);
			((Component)((Component)__instance.devices).transform.parent.GetChild(6)).gameObject.SetActive(false);
			Object.Destroy((Object)(object)((Component)__instance.devices).gameObject.GetComponent<MonoBehaviour1PublicTMdrTeseReUnique>());
			MicDropDownCallbacks micDropDownCallbacks = ((Component)__instance.devices).gameObject.AddComponent<MicDropDownCallbacks>();
			micDropDownCallbacks.devices = __instance.devices;
			((UnityEventBase)__instance.devices.dropdown.onValueChanged).AddListener((Object)(object)micDropDownCallbacks, ((Object)micDropDownCallbacks).GetIl2CppType().GetMethod("SelectSetting"));
			Button component = ((Component)((Component)__instance.devices).transform.GetChild(1).GetChild(1)).GetComponent<Button>();
			((UnityEventBase)component.onClick).RemoveAllListeners();
			((UnityEventBase)component.onClick).AddListener((Object)(object)micDropDownCallbacks, ((Object)micDropDownCallbacks).GetIl2CppType().GetMethod("ApplySetting"));
		}

		[HarmonyPatch(typeof(MonoBehaviourPublicObdicoObInGaObdiUnique), "Start")]
		[HarmonyPostfix]
		internal static void PostDissonanceManagerStart(MonoBehaviourPublicObdicoObInGaObdiUnique __instance)
		{
			if (!((Object)(object)__instance != (Object)(object)MonoBehaviourPublicObdicoObInGaObdiUnique.Instance))
			{
				MonoBehaviourPublicObdicoObInGaObdiUnique.Instance.comms.MicrophoneName = MoreSettings.Instance.save.microphone;
			}
		}

		[HarmonyPatch(typeof(MonoBehaviour1PublicTMdrTeseLi1StUnique), "SetSettings")]
		[HarmonyPrefix]
		internal static void PreMicDropDownSetSettings(ref string param_1)
		{
			param_1 = MonoBehaviourPublicObdicoObInGaObdiUnique.Instance.comms.MicrophoneName;
		}

		[HarmonyPatch(typeof(MonoBehaviour1PublicTekeIncuStUnique), "SetKey")]
		[HarmonyPostfix]
		internal static void PostControlSettingSetKey(MonoBehaviour1PublicTekeIncuStUnique __instance)
		{
			if ((Object)(object)__instance == (Object)(object)MoreSettings.Instance.alternativeJump)
			{
				MoreSettings.Instance.save.alternativeJump = __instance.currentKey;
				SaveManager.Instance.Save();
			}
			else if ((Object)(object)__instance == (Object)(object)MoreSettings.Instance.alternativeCrouch)
			{
				MoreSettings.Instance.save.alternativeCrouch = __instance.currentKey;
				SaveManager.Instance.Save();
			}
		}

		[HarmonyPatch(typeof(MonoBehaviour1PublicGachUnique), "ToggleSetting")]
		[HarmonyPostfix]
		internal static void PostMyBoolSettingToggleSetting(MonoBehaviour1PublicGachUnique __instance)
		{
			//IL_004b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0050: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Unknown result type (might be due to invalid IL or missing references)
			//IL_005f: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)__instance == (Object)(object)MoreSettings.Instance.recentlyPlayed)
			{
				MoreSettings.Instance.save.recentlyPlayed = ((MonoBehaviourPublicIncuObm_ObUnique)__instance).currentSetting == 1;
				SaveManager.Instance.Save();
				if (!MoreSettings.Instance.save.recentlyPlayed)
				{
					return;
				}
				CSteamID currentLobby = MonoBehaviourPublicObInUIgaStCSBoStcuCSUnique.Instance.currentLobby;
				if (!(currentLobby == CSteamID.Nil))
				{
					int numLobbyMembers = SteamMatchmaking.GetNumLobbyMembers(currentLobby);
					for (int i = 0; i < numLobbyMembers; i++)
					{
						SteamFriends.SetPlayedWith(SteamMatchmaking.GetLobbyMemberByIndex(currentLobby, i));
					}
				}
			}
			else if ((Object)(object)__instance == (Object)(object)MoreSettings.Instance.holdJump)
			{
				MoreSettings.Instance.save.holdJump = ((MonoBehaviourPublicIncuObm_ObUnique)__instance).currentSetting == 1;
				SaveManager.Instance.Save();
			}
			else if ((Object)(object)__instance == (Object)(object)MoreSettings.Instance.holdSprint)
			{
				MoreSettings.Instance.save.holdSprint = ((MonoBehaviourPublicIncuObm_ObUnique)__instance).currentSetting == 1;
				SaveManager.Instance.Save();
			}
			else if ((Object)(object)__instance == (Object)(object)MoreSettings.Instance.holdInteract)
			{
				MoreSettings.Instance.save.holdInteract = ((MonoBehaviourPublicIncuObm_ObUnique)__instance).currentSetting == 1;
				SaveManager.Instance.Save();
			}
			else if ((Object)(object)__instance == (Object)(object)MoreSettings.Instance.holdAttack)
			{
				MoreSettings.Instance.save.holdAttack = ((MonoBehaviourPublicIncuObm_ObUnique)__instance).currentSetting == 1;
				SaveManager.Instance.Save();
			}
		}

		[HarmonyPatch(typeof(SaveManager), "Load")]
		[HarmonyPrefix]
		internal static void PreSaveManagerLoad()
		{
			if (PlayerPrefs.HasKey("moreSettingsSave"))
			{
				XmlSerializer xmlSerializer = new XmlSerializer(typeof(MoreSettingsSave));
				StringReader textReader = new StringReader(PlayerPrefs.GetString("moreSettingsSave"));
				MoreSettings.Instance.save = (MoreSettingsSave)xmlSerializer.Deserialize(textReader);
			}
			MoreSettings instance = MoreSettings.Instance;
			if (instance.save == null)
			{
				instance.save = new MoreSettingsSave();
			}
		}

		[HarmonyPatch(typeof(SaveManager), "NewSave")]
		[HarmonyPrefix]
		internal static void PreSaveManagerNewSave()
		{
			MoreSettings.Instance.save = new MoreSettingsSave();
		}

		[HarmonyPatch(typeof(SaveManager), "Save")]
		[HarmonyPrefix]
		internal static void PreSaveManagerSave()
		{
			XmlSerializer xmlSerializer = new XmlSerializer(typeof(MoreSettingsSave));
			StringWriter stringWriter = new StringWriter();
			xmlSerializer.Serialize(stringWriter, MoreSettings.Instance.save);
			PlayerPrefs.SetString("moreSettingsSave", stringWriter.ToString());
		}

		[HarmonyPatch(typeof(MonoBehaviourPublicGapaTrconaGaDi2UIObUnique), "Awake")]
		[HarmonyPostfix]
		internal static void PostPlayerListAwake()
		{
			MoreSettings.Instance.playerListPlayers.Clear();
			MoreSettings.Instance.playerListMicImages.Clear();
			MonoBehaviourExtensions.StartCoroutine((MonoBehaviour)(object)MonoBehaviourPublicGapaTrconaGaDi2UIObUnique.Instance, CoroUpdateMicImages());
		}

		[IteratorStateMachine(typeof(<CoroUpdateMicImages>d__18))]
		private static IEnumerator CoroUpdateMicImages()
		{
			//yield-return decompiler failed: Unexpected instruction in Iterator.Dispose()
			return new <CoroUpdateMicImages>d__18(0);
		}

		[HarmonyPatch(typeof(MonoBehaviourPublicRabaicRaTeusscTepiObUnique), "SetPlayer")]
		[HarmonyPostfix]
		internal static void PostPlayerListingPrefabSetPlayer(MonoBehaviourPublicRabaicRaTeusscTepiObUnique __instance, MonoBehaviourPublicCSstReshTrheObplBojuUnique param_1)
		{
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0099: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0101: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_014a: Unknown result type (might be due to invalid IL or missing references)
			//IL_015f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			if (!MoreSettings.Instance.playerListPlayers.ContainsKey(param_1.steamProfile.m_SteamID) || (Object)(object)MoreSettings.Instance.playerListPlayers[param_1.steamProfile.m_SteamID] != (Object)(object)__instance || (Object)(object)MoreSettings.Instance.playerListMicImages[param_1.steamProfile.m_SteamID] == (Object)null)
			{
				MoreSettings.Instance.playerListPlayers[param_1.steamProfile.m_SteamID] = __instance;
				RectTransform component = ((Component)__instance.ping).GetComponent<RectTransform>();
				component.sizeDelta -= new Vector2(35f, 0f);
				GameObject val = Object.Instantiate<GameObject>(((Component)__instance.icon).gameObject, ((Component)__instance).transform);
				((Object)val).name = "Talking";
				val.transform.SetSiblingIndex(4);
				MoreSettings.Instance.playerListMicImages[param_1.steamProfile.m_SteamID] = val.GetComponent<RawImage>();
				MoreSettings.Instance.playerListMicImages[param_1.steamProfile.m_SteamID].texture = ((Component)((Component)MonoBehaviourPublicObhpamObTeplcoTeloreUnique.Instance.hpCircle).transform.parent.GetChild(2).GetChild(0)).GetComponent<RawImage>().texture;
			}
			((Behaviour)MoreSettings.Instance.playerListMicImages[param_1.steamProfile.m_SteamID]).enabled = MoreSettings.Instance.PlayerIsTalking(param_1.steamProfile.m_SteamID);
		}

		[HarmonyPatch(typeof(MonoBehaviourPublicRabaicRaTeusscTepiObUnique), "SetSpectator")]
		[HarmonyPostfix]
		internal static void PostPlayerListingPrefabSetSpectator(MonoBehaviourPublicRabaicRaTeusscTepiObUnique __instance, ulong param_1)
		{
			//IL_0062: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			if (!MoreSettings.Instance.playerListPlayers.ContainsKey(param_1) || (Object)(object)MoreSettings.Instance.playerListPlayers[param_1] != (Object)(object)__instance || (Object)(object)MoreSettings.Instance.playerListMicImages[param_1] == (Object)null)
			{
				MoreSettings.Instance.playerListPlayers[param_1] = __instance;
				RectTransform component = ((Component)__instance.ping).GetComponent<RectTransform>();
				component.sizeDelta -= new Vector2(35f, 0f);
				GameObject val = Object.Instantiate<GameObject>(((Component)__instance.icon).gameObject, ((Component)__instance).transform);
				((Object)val).name = "Talking";
				val.transform.SetSiblingIndex(4);
				MoreSettings.Instance.playerListMicImages[param_1] = val.GetComponent<RawImage>();
				MoreSettings.Instance.playerListMicImages[param_1].texture = ((Component)((Component)MonoBehaviourPublicObhpamObTeplcoTeloreUnique.Instance.hpCircle).transform.parent.GetChild(2).GetChild(0)).GetComponent<RawImage>().texture;
			}
			((Behaviour)MoreSettings.Instance.playerListMicImages[param_1]).enabled = MoreSettings.Instance.PlayerIsTalking(param_1);
		}

		[HarmonyPatch(typeof(MonoBehaviourPublicTrwiReGakibaGaTeplmuUnique), "Awake")]
		[HarmonyPostfix]
		internal static void PostManagePlayerListingAwake(MonoBehaviourPublicTrwiReGakibaGaTeplmuUnique __instance)
		{
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0052: Expected O, but got Unknown
			//IL_0070: Unknown result type (might be due to invalid IL or missing references)
			//IL_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_010f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0114: Unknown result type (might be due to invalid IL or missing references)
			//IL_0125: Unknown result type (might be due to invalid IL or missing references)
			//IL_012b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0135: Unknown result type (might be due to invalid IL or missing references)
			//IL_0146: Unknown result type (might be due to invalid IL or missing references)
			//IL_015b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0170: Unknown result type (might be due to invalid IL or missing references)
			//IL_017b: Unknown result type (might be due to invalid IL or missing references)
			//IL_018a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0194: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e2: Expected O, but got Unknown
			//IL_01f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0214: Unknown result type (might be due to invalid IL or missing references)
			//IL_0229: Unknown result type (might be due to invalid IL or missing references)
			//IL_023e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0249: Unknown result type (might be due to invalid IL or missing references)
			//IL_0258: 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_0280: Unknown result type (might be due to invalid IL or missing references)
			//IL_0291: Unknown result type (might be due to invalid IL or missing references)
			//IL_0297: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b5: 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_02e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0317: Unknown result type (might be due to invalid IL or missing references)
			//IL_0342: Unknown result type (might be due to invalid IL or missing references)
			//IL_0349: Expected O, but got Unknown
			//IL_0362: Unknown result type (might be due to invalid IL or missing references)
			//IL_037e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0393: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_03fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0402: Unknown result type (might be due to invalid IL or missing references)
			//IL_040c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0420: Unknown result type (might be due to invalid IL or missing references)
			//IL_0436: Unknown result type (might be due to invalid IL or missing references)
			//IL_044c: Unknown result type (might be due to invalid IL or missing references)
			//IL_045a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0469: Unknown result type (might be due to invalid IL or missing references)
			//IL_0473: Unknown result type (might be due to invalid IL or missing references)
			//IL_047f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0494: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f2: Unknown result type (might be due to invalid IL or missing references)
			Transform transform = ((Component)__instance).transform;
			RectTransform component = ((Component)transform.GetChild(0)).GetComponent<RectTransform>();
			component.sizeDelta += new Vector2(0f, 45f);
			((BasePlugin)MoreSettings.Instance).Log.LogInfo((object)"New Slider/Interact/Slider");
			GameObject val = new GameObject("Slider");
			val.transform.SetParent(transform.GetChild(0).GetChild(1));
			val.transform.localScale = Vector3.one;
			val.AddComponent<RectTransform>().sizeDelta = new Vector2(150f, 40f);
			MyVolumeSlider myVolumeSlider = val.AddComponent<MyVolumeSlider>();
			Slider obj = (volumeSlider = val.AddComponent<Slider>());
			obj.wholeNumbers = true;
			obj.minValue = 0f;
			obj.maxValue = 300f;
			obj.value = 100f;
			((UnityEventBase)obj.onValueChanged).AddListener((Object)(object)myVolumeSlider, ((Object)myVolumeSlider).GetIl2CppType().GetMethod("SliderUpdated"));
			myVolumeSlider.volumeSlider = volumeSlider;
			((BasePlugin)MoreSettings.Instance).Log.LogInfo((object)"New Slider/Interact/Slider/Background");
			GameObject val2 = new GameObject("Background");
			val2.transform.SetParent(val.transform);
			val2.transform.localScale = Vector3.one;
			RectTransform obj2 = val2.AddComponent<RectTransform>();
			obj2.anchorMax = new Vector2(0.9787f, 0.75f);
			obj2.anchorMin = new Vector2(0f, 0.25f);
			obj2.sizeDelta = new Vector2(0f, -10f);
			((Transform)obj2).localPosition = new Vector3(((Transform)obj2).localPosition.x, 0f);
			val2.AddComponent<CanvasRenderer>().cullTransparentMesh = false;
			((Graphic)val2.AddComponent<Image>()).color = new Color(0f, 0f, 0f, 0.5804f);
			((BasePlugin)MoreSettings.Instance).Log.LogInfo((object)"New Slider/Interact/Slider/Fill Area");
			GameObject val3 = new GameObject("Fill Area");
			val3.transform.SetParent(val.transform);
			val3.transform.localScale = Vector3.one;
			RectTransform obj3 = val3.AddComponent<RectTransform>();
			obj3.anchorMax = new Vector2(0.9787f, 0.75f);
			obj3.anchorMin = new Vector2(0f, 0.25f);
			obj3.sizeDelta = new Vector2(0f, -10f);
			((Transform)obj3).localPosition = new Vector3(((Transform)obj3).localPosition.x, 0f);
			((BasePlugin)MoreSettings.Instance).Log.LogInfo((object)"New Slider/Interact/Slider/Fill Area/Fill");
			GameObject val4 = new GameObject("Fill");
			val4.transform.SetParent(val3.transform);
			val4.transform.localScale = Vector3.one;
			RectTransform val5 = val4.AddComponent<RectTransform>();
			val5.anchorMax = new Vector2(1f, 1f);
			val5.anchorMin = new Vector2(0f, 0f);
			val5.sizeDelta = new Vector2(0f, 0f);
			((Transform)val5).localPosition = Vector3.zero;
			val4.AddComponent<CanvasRenderer>().cullTransparentMesh = false;
			((Graphic)val4.AddComponent<Image>()).color = new Color(0.2235f, 0.2745f, 0.8f);
			obj.fillRect = val5;
			((BasePlugin)MoreSettings.Instance).Log.LogInfo((object)"New Slider/Interact/Slider/Handle Slide Area");
			GameObject val6 = new GameObject("Handle Slide Area");
			val6.transform.SetParent(val.transform);
			val6.transform.localScale = Vector3.one;
			RectTransform obj4 = val6.AddComponent<RectTransform>();
			obj4.anchorMax = new Vector2(1f, 1f);
			obj4.anchorMin = new Vector2(0f, 0f);
			obj4.sizeDelta = new Vector2(-20f, 0f);
			((Transform)obj4).localPosition = new Vector3(((Transform)obj4).localPosition.x, 0f);
			((BasePlugin)MoreSettings.Instance).Log.LogInfo((object)"New Slider/Interact/Slider/Handle Slide Area/Handle");
			GameObject val7 = new GameObject("Handle");
			val7.transform.SetParent(val6.transform);
			val7.transform.localScale = Vector3.one;
			RectTransform val8 = val7.AddComponent<RectTransform>();
			val8.anchorMax = new Vector2(1f, 1f);
			val8.anchorMin = new Vector2(1f, 0f);
			val8.sizeDelta = new Vector2(15f, 0f);
			((Transform)val8).localPosition = new Vector3(((Transform)val8).localPosition.x, 0f);
			val7.AddComponent<CanvasRenderer>().cullTransparentMesh = false;
			val7.AddComponent<Image>();
			val7.AddComponent<MonoBehaviourPublicIPointerEnterHandlerIEventSystemHandlerIPointerClickHandlerUnique>();
			obj.handleRect = val8;
			component.sizeDelta += new Vector2(0f, 37f);
			Transform child = transform.GetChild(0).GetChild(1).GetChild(3);
			GameObject val9 = Object.Instantiate<GameObject>(((Component)child).gameObject, child.parent);
			val9.GetComponent<Graphic>().color = new Color(0.25f, 0.25f, 0.75f);
			((TMP_Text)((Component)val9.transform.GetChild(4)).GetComponent<TextMeshProUGUI>()).text = "Profile";
			ButtonClickedEvent onClick = val9.GetComponent<Button>().onClick;
			((UnityEventBase)onClick).m_PersistentCalls.Clear();
			((UnityEventBase)onClick).AddListener((Object)(object)val9.AddComponent<ModListViewSteamProfileButton>(), UnityEventBase.GetValidMethodInfo(Il2CppType.Of<ModListViewSteamProfileButton>(), "Clicked", new Il2CppReferenceArray<Type>(0L)));
		}

		[HarmonyPatch(typeof(MonoBehaviourPublicTrwiReGakibaGaTeplmuUnique), "SetPlayer")]
		[HarmonyPostfix]
		internal static void PostManagePlayerListingSetPlayer()
		{
			float num = 1f;
			ObjectPublicAbstractObStAc12ObAc1BoStUnique val = MonoBehaviourPublicObdicoObInGaObdiUnique.Instance.comms.FindPlayer(MonoBehaviourPublicTrwiReGakibaGaTeplmuUnique.Instance.field_Private_UInt64_0.ToString());
			if (val != null && val.Method_Internal_Abstract_Virtual_New_InterfacePrivateAbstractBoSiBoVoVeBoVoQuObVoUnique_0() != null)
			{
				num = val.Method_Internal_Abstract_Virtual_New_InterfacePrivateAbstractBoSiBoVoVeBoVoQuObVoUnique_0().Method_Public_Abstract_Virtual_New_Single_0();
			}
			volumeSlider.value = num * 100f;
		}

		[HarmonyPatch(typeof(MonoBehaviourPublicGapaTrconaGaDi2UIObUnique), "UpdateList")]
		[HarmonyPostfix]
		internal static void PostPlayerListUpdateList(MonoBehaviourPublicGapaTrconaGaDi2UIObUnique __instance)
		{
			//IL_002a: Unknown result type (might be due to invalid IL or missing references)
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: Unknown result type (might be due to invalid IL or missing references)
			//IL_0077: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e2: 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_00f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0107: Unknown result type (might be due to invalid IL or missing references)
			if (!MonoBehaviourPublicObInUIgaStCSBoStcuCSUnique.Instance.IsLobbyOwner())
			{
				return;
			}
			foreach (ObjectPublicBoInBoCSItBoInSiBySiUnique item in (Il2CppArrayBase<ObjectPublicBoInBoCSItBoInSiBySiUnique>)(object)MonoBehaviourPublicCSDi2UIInstObUIloDiUnique.Instance.GetClients())
			{
				if (!(item.field_Public_CSteamID_0 == CSteamID.Nil) && !__instance.field_Private_Dictionary_2_UInt64_MonoBehaviourPublicRabaicRaTeusscTepiObUnique_0.ContainsKey(item.field_Public_CSteamID_0.m_SteamID))
				{
					MonoBehaviourPublicRabaicRaTeusscTepiObUnique component = Object.Instantiate<GameObject>(__instance.namePrefab, __instance.contentParent).GetComponent<MonoBehaviourPublicRabaicRaTeusscTepiObUnique>();
					__instance.field_Private_Dictionary_2_UInt64_MonoBehaviourPublicRabaicRaTeusscTepiObUnique_0.Add(item.field_Public_CSteamID_0.m_SteamID, component);
					((TMP_Text)component.username).text = MonoBehaviourPublicRaovTMinTemeColoonCoUnique.RemoveRichText(SteamFriends.GetFriendPersonaName(item.field_Public_CSteamID_0));
					if (MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.activePlayers.ContainsKey(item.field_Public_CSteamID_0.m_SteamID))
					{
						component.SetPlayer(MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.activePlayers[item.field_Public_CSteamID_0.m_SteamID]);
					}
					else
					{
						component.SetSpectator(item.field_Public_CSteamID_0.m_SteamID);
					}
					((Graphic)component.background).color = Color.yellow;
					((Graphic)component.icon).color = Color.yellow;
				}
			}
		}

		[HarmonyPatch(typeof(MonoBehaviourPublicObInUIgaStCSBoStcuCSUnique), "Method_Private_Void_LobbyEnter_t_PDM_1")]
		[HarmonyPostfix]
		internal static void PostSteamManagerLobbyEnter(LobbyEnter_t param_1)
		{
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0037: Unknown result type (might be due to invalid IL or missing references)
			//IL_0039: Unknown result type (might be due to invalid IL or missing references)
			if (!MoreSettings.Instance.save.recentlyPlayed)
			{
				return;
			}
			CSteamID currentLobby = MonoBehaviourPublicObInUIgaStCSBoStcuCSUnique.Instance.currentLobby;
			if (param_1.m_ulSteamIDLobby == currentLobby.m_SteamID)
			{
				int numLobbyMembers = SteamMatchmaking.GetNumLobbyMembers(currentLobby);
				for (int i = 0; i < numLobbyMembers; i++)
				{
					SteamFriends.SetPlayedWith(SteamMatchmaking.GetLobbyMemberByIndex(currentLobby, i));
				}
			}
		}

		[HarmonyPatch(typeof(MonoBehaviourPublicObInUIgaStCSBoStcuCSUnique), "Method_Private_Void_LobbyChatUpdate_t_PDM_3")]
		[HarmonyPostfix]
		internal static void PostSteamManagerPlayerJoinOrLeave(LobbyChatUpdate_t param_1)
		{
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0032: Unknown result type (might be due to invalid IL or missing references)
			if (MoreSettings.Instance.save.recentlyPlayed)
			{
				CSteamID currentLobby = MonoBehaviourPublicObInUIgaStCSBoStcuCSUnique.Instance.currentLobby;
				if (param_1.m_ulSteamIDLobby == currentLobby.m_SteamID)
				{
					SteamFriends.SetPlayedWith(new CSteamID(param_1.m_ulSteamIDUserChanged));
				}
			}
		}

		[HarmonyPatch(typeof(SteamMatchmaking), "LeaveLobby")]
		[HarmonyPrefix]
		internal static void PreSteamMatchmakingLeaveLobby(CSteamID steamIDLobby)
		{
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_0032: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			if (!MoreSettings.Instance.save.recentlyPlayed)
			{
				return;
			}
			CSteamID currentLobby = MonoBehaviourPublicObInUIgaStCSBoStcuCSUnique.Instance.currentLobby;
			if (!(steamIDLobby != currentLobby))
			{
				int numLobbyMembers = SteamMatchmaking.GetNumLobbyMembers(currentLobby);
				for (int i = 0; i < numLobbyMembers; i++)
				{
					SteamFriends.SetPlayedWith(SteamMatchmaking.GetLobbyMemberByIndex(currentLobby, i));
				}
			}
		}
	}
	[BepInPlugin("lammas123.MoreSettings", "MoreSettings", "1.2.0")]
	public sealed class MoreSettings : BasePlugin
	{
		internal MoreSettingsSave save;

		internal MonoBehaviour1PublicGachUnique recentlyPlayed;

		internal MonoBehaviour1PublicTekeIncuStUnique alternativeJump;

		internal MonoBehaviour1PublicGachUnique holdJump;

		internal MonoBehaviour1PublicGachUnique holdSprint;

		internal MonoBehaviour1PublicTekeIncuStUnique alternativeCrouch;

		internal MonoBehaviour1PublicGachUnique holdInteract;

		internal MonoBehaviour1PublicGachUnique holdAttack;

		internal Dictionary<ulong, MonoBehaviourPublicRabaicRaTeusscTepiObUnique> playerListPlayers = new Dictionary<ulong, MonoBehaviourPublicRabaicRaTeusscTepiObUnique>();

		internal Dictionary<ulong, RawImage> playerListMicImages = new Dictionary<ulong, RawImage>();

		internal static MoreSettings Instance { get; private set; }

		public override void Load()
		{
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0061: Unknown result type (might be due to invalid IL or missing references)
			//IL_0067: Expected O, but got Unknown
			CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;
			CultureInfo.CurrentUICulture = CultureInfo.InvariantCulture;
			CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture;
			CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.InvariantCulture;
			Instance = this;
			ClassInjector.RegisterTypeInIl2Cpp<ModListViewSteamProfileButton>();
			ClassInjector.RegisterTypeInIl2Cpp<MicDropDownCallbacks>();
			ClassInjector.RegisterTypeInIl2Cpp<MyVolumeSlider>();
			new Harmony("MoreSettings").PatchAll(typeof(Patches));
			ManualLogSource log = ((BasePlugin)this).Log;
			bool flag = default(bool);
			BepInExInfoLogInterpolatedStringHandler val = new BepInExInfoLogInterpolatedStringHandler(15, 2, ref flag);
			if (flag)
			{
				((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Initialized [");
				((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>("MoreSettings");
				((BepInExLogInterpolatedStringHandler)val).AppendLiteral(" ");
				((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>("1.2.0");
				((BepInExLogInterpolatedStringHandler)val).AppendLiteral("]");
			}
			log.LogInfo(val);
		}

		internal T CreateSetting<T>(MonoBehaviourPublicIncuObm_ObUnique baseSetting, int siblingIndex, string settingName) where T : MonoBehaviourPublicIncuObm_ObUnique
		{
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0054: Expected O, but got Unknown
			GameObject obj = Object.Instantiate<GameObject>(((Component)baseSetting).gameObject, ((Component)baseSetting).transform.parent);
			obj.transform.SetSiblingIndex(siblingIndex);
			((TMP_Text)((Component)obj.transform.GetChild(0).GetChild(0)).GetComponent<TextMeshProUGUI>()).text = settingName;
			T component = obj.GetComponent<T>();
			((MonoBehaviourPublicIncuObm_ObUnique)component).m_OnClick = new UnityEventNPublicUnique();
			return component;
		}

		internal bool PlayerIsTalking(ulong clientId)
		{
			ObjectPublicAbstractObStAc12ObAc1BoStUnique val = MonoBehaviourPublicObdicoObInGaObdiUnique.Instance.comms.FindPlayer(clientId.ToString());
			if (val != null)
			{
				return val.Method_Public_Abstract_Virtual_New_Boolean_1();
			}
			return false;
		}
	}
	[Serializable]
	public sealed class MoreSettingsSave
	{
		public bool recentlyPlayed;

		public int alternativeJump = 32;

		public bool holdJump;

		public bool holdSprint = true;

		public int alternativeCrouch = 99;

		public bool holdInteract;

		public bool holdAttack;

		public string microphone = string.Empty;
	}
	public sealed class ModListViewSteamProfileButton : MonoBehaviour
	{
		public void Clicked()
		{
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			SteamFriends.ActivateGameOverlayToUser("steamid", new CSteamID(MonoBehaviourPublicTrwiReGakibaGaTeplmuUnique.Instance.field_Private_UInt64_0));
		}
	}
	public sealed class MicDropDownCallbacks : MonoBehaviour
	{
		public MonoBehaviour1PublicTMdrTeseLi1StUnique devices;

		public void SelectSetting(int _)
		{
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: Expected O, but got Unknown
			ManualLogSource log = ((BasePlugin)MoreSettings.Instance).Log;
			bool flag = default(bool);
			BepInExInfoLogInterpolatedStringHandler val = new BepInExInfoLogInterpolatedStringHandler(15, 1, ref flag);
			if (flag)
			{
				((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Selecting mic: ");
				((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>(devices.field_Private_List_1_String_0[devices.dropdown.value]);
			}
			log.LogInfo(val);
			((MonoBehaviourPublicIncuObm_ObUnique)devices).currentSetting = devices.dropdown.value;
		}

		public void ApplySetting()
		{
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0031: Expected O, but got Unknown
			string text = devices.field_Private_List_1_String_0[((MonoBehaviourPublicIncuObm_ObUnique)devices).currentSetting];
			ManualLogSource log = ((BasePlugin)MoreSettings.Instance).Log;
			bool flag = default(bool);
			BepInExInfoLogInterpolatedStringHandler val = new BepInExInfoLogInterpolatedStringHandler(14, 1, ref flag);
			if (flag)
			{
				((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Applying mic: ");
				((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>(text);
			}
			log.LogInfo(val);
			MoreSettings.Instance.save.microphone = text;
			MonoBehaviourPublicObdicoObInGaObdiUnique.Instance.comms.MicrophoneName = text;
			SaveManager.Instance.Save();
		}
	}
	public sealed class MyVolumeSlider : MonoBehaviour
	{
		public Slider volumeSlider;

		public void SliderUpdated(float value)
		{
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: Expected O, but got Unknown
			ManualLogSource log = ((BasePlugin)MoreSettings.Instance).Log;
			bool flag = default(bool);
			BepInExInfoLogInterpolatedStringHandler val = new BepInExInfoLogInterpolatedStringHandler(9, 1, ref flag);
			if (flag)
			{
				((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Updated: ");
				((BepInExLogInterpolatedStringHandler)val).AppendFormatted<float>(value);
			}
			log.LogInfo(val);
			if ((Object)(object)MonoBehaviourPublicTrwiReGakibaGaTeplmuUnique.Instance == (Object)null)
			{
				volumeSlider.value = 100f;
				return;
			}
			ObjectPublicAbstractObStAc12ObAc1BoStUnique val2 = MonoBehaviourPublicObdicoObInGaObdiUnique.Instance.comms.FindPlayer(MonoBehaviourPublicTrwiReGakibaGaTeplmuUnique.Instance.field_Private_UInt64_0.ToString());
			if (val2 != null && val2.Method_Internal_Abstract_Virtual_New_InterfacePrivateAbstractBoSiBoVoVeBoVoQuObVoUnique_0() != null)
			{
				val2.Method_Internal_Abstract_Virtual_New_InterfacePrivateAbstractBoSiBoVoVeBoVoQuObVoUnique_0().Method_Public_Abstract_Virtual_New_Void_Single_0(value / 100f);
			}
			else
			{
				volumeSlider.value = 100f;
			}
		}
	}
	public static class MyPluginInfo
	{
		public const string PLUGIN_GUID = "lammas123.MoreSettings";

		public const string PLUGIN_NAME = "MoreSettings";

		public const string PLUGIN_VERSION = "1.2.0";
	}
}
namespace System.Runtime.CompilerServices
{
	[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
	internal sealed class IgnoresAccessChecksToAttribute : Attribute
	{
		public IgnoresAccessChecksToAttribute(string assemblyName)
		{
		}
	}
}