Decompiled source of KickMod v1.0.0

KickPlugin.dll

Decompiled a year ago
using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using HarmonyLib;
using MenuLib;
using MenuLib.MonoBehaviors;
using Photon.Pun;
using Photon.Realtime;
using UnityEngine;
using UnityEngine.UI;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("ModKick")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ModKick")]
[assembly: AssemblyCopyright("Copyright ©  2025")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("be8a3341-e9c0-4b90-8164-cc3223ede8eb")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace KickPlugin;

[BepInPlugin("Wtyka.KickMod", "KickMod", "1.0.0")]
public class KickMod : BaseUnityPlugin
{
	[Serializable]
	[CompilerGenerated]
	private sealed class <>c
	{
		public static readonly <>c <>9 = new <>c();

		public static ScrollViewBuilderDelegate <>9__8_0;

		internal RectTransform <CreatePage>b__8_0(Transform scrollView)
		{
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Expected O, but got Unknown
			//IL_008e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0094: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = new GameObject("ButtonContainer", new Type[2]
			{
				typeof(RectTransform),
				typeof(VerticalLayoutGroup)
			});
			val.transform.SetParent(scrollView, false);
			Player[] playerList = PhotonNetwork.PlayerList;
			for (int i = 0; i < playerList.Length; i++)
			{
				<>c__DisplayClass8_0 CS$<>8__locals0 = new <>c__DisplayClass8_0
				{
					player = playerList[i]
				};
				MenuAPI.CreateREPOButton(CS$<>8__locals0.player.NickName + (CS$<>8__locals0.player.IsMasterClient ? " ★" : " \ud83e\udd7e"), (Action)delegate
				{
					if (!CS$<>8__locals0.player.IsMasterClient)
					{
						PhotonNetwork.RemoveRPCs(CS$<>8__locals0.player);
						PhotonNetwork.DestroyPlayerObjects(CS$<>8__locals0.player);
						PhotonNetwork.EnableCloseConnection = true;
						PhotonNetwork.CloseConnection(CS$<>8__locals0.player);
						Debug.Log((object)("Player kicked out: " + CS$<>8__locals0.player.NickName));
					}
				}, val.transform, default(Vector2));
			}
			return val.GetComponent<RectTransform>();
		}
	}

	[CompilerGenerated]
	private sealed class <>c__DisplayClass8_0
	{
		public Player player;

		internal void <CreatePage>b__1()
		{
			if (!player.IsMasterClient)
			{
				PhotonNetwork.RemoveRPCs(player);
				PhotonNetwork.DestroyPlayerObjects(player);
				PhotonNetwork.EnableCloseConnection = true;
				PhotonNetwork.CloseConnection(player);
				Debug.Log((object)("Player kicked out: " + player.NickName));
			}
		}
	}

	private const string Guid = "Wtyka.KickMod";

	private const string Name = "KickMod";

	private const string Version = "1.0.0";

	private REPOPopupPage showPlayerList;

	public static KickMod Instance;

	private readonly Harmony harmony = new Harmony("Wtyka.KickMod");

	private void Awake()
	{
		if ((Object)(object)Instance == (Object)null)
		{
			Instance = this;
		}
		Debug.Log((object)"KickMod Loaded!");
	}

	private void Update()
	{
		if (Input.GetKeyDown((KeyCode)282))
		{
			if ((Object)(object)showPlayerList != (Object)null)
			{
				showPlayerList.ClosePage(true);
			}
			else
			{
				CreatePage();
			}
		}
	}

	private void CreatePage()
	{
		//IL_000d: Unknown result type (might be due to invalid IL or missing references)
		//IL_003b: Unknown result type (might be due to invalid IL or missing references)
		//IL_0040: Unknown result type (might be due to invalid IL or missing references)
		//IL_0046: Expected O, but got Unknown
		showPlayerList = MenuAPI.CreateREPOPopupPage("Players List", false, true, 0.5f, (Vector2?)Vector2.zero);
		REPOPopupPage obj = showPlayerList;
		object obj2 = <>c.<>9__8_0;
		if (obj2 == null)
		{
			ScrollViewBuilderDelegate val = delegate(Transform scrollView)
			{
				//IL_0025: Unknown result type (might be due to invalid IL or missing references)
				//IL_002b: Expected O, but got Unknown
				//IL_008e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0094: Unknown result type (might be due to invalid IL or missing references)
				GameObject val2 = new GameObject("ButtonContainer", new Type[2]
				{
					typeof(RectTransform),
					typeof(VerticalLayoutGroup)
				});
				val2.transform.SetParent(scrollView, false);
				Player[] playerList = PhotonNetwork.PlayerList;
				foreach (Player player in playerList)
				{
					MenuAPI.CreateREPOButton(player.NickName + (player.IsMasterClient ? " ★" : " \ud83e\udd7e"), (Action)delegate
					{
						if (!player.IsMasterClient)
						{
							PhotonNetwork.RemoveRPCs(player);
							PhotonNetwork.DestroyPlayerObjects(player);
							PhotonNetwork.EnableCloseConnection = true;
							PhotonNetwork.CloseConnection(player);
							Debug.Log((object)("Player kicked out: " + player.NickName));
						}
					}, val2.transform, default(Vector2));
				}
				return val2.GetComponent<RectTransform>();
			};
			<>c.<>9__8_0 = val;
			obj2 = (object)val;
		}
		obj.AddElementToScrollView((ScrollViewBuilderDelegate)obj2, 0f, 0f);
		showPlayerList.OpenPage(true);
	}
}