Decompiled source of ChatForger v1.0.0

ChatForger.dll

Decompiled 4 hours ago
using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Text;
using BepInEx;
using GameNetcodeStuff;
using HarmonyLib;
using TMPro;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyTitle("LethalPlugin")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("LethalPlugin")]
[assembly: AssemblyCopyright("Copyright ©  2024")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("0e442c44-8597-4d85-abe7-d8d3cc7d1e3f")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.6", FrameworkDisplayName = ".NET Framework 4.6")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace LethalPlugin;

[BepInPlugin("Vrtua.LethalPlugin.pluginX.ChatForger", "ChatForger", "1.0.0")]
public class ChatForger : BaseUnityPlugin
{
	private void Awake()
	{
		//IL_0015: Unknown result type (might be due to invalid IL or missing references)
		//IL_0020: Unknown result type (might be due to invalid IL or missing references)
		((BaseUnityPlugin)this).Logger.LogInfo((object)"Successfully load Patch");
		new Harmony("Vrtua.LethalPlugin.plugin.ChatForger");
		new Harmony("Vrtua.LethalPlugin.pluginX.ChatForger").PatchAll();
	}
}
public class GlobalsVar
{
}
[HarmonyPatch(typeof(HUDManager))]
[HarmonyPatch("AddTextToChatOnServer", new Type[]
{
	typeof(string),
	typeof(int)
})]
internal class MsgPatch
{
	public static bool Prefix(ref string chatMessage, ref int playerId)
	{
		if (chatMessage.StartsWith("!fake ") && chatMessage.Length > "!fake ".Length)
		{
			utils obj = new utils();
			string msg = chatMessage.Substring("!fake ".Length);
			obj.SendMessageOnServer(msg);
			return false;
		}
		if (chatMessage.StartsWith("!list") && chatMessage.Length <= "!list".Length + 1)
		{
			new utils().GetAllPlayerScript();
			return false;
		}
		if (playerId >= 512)
		{
			playerId -= 512;
		}
		return true;
	}
}
internal class utils
{
	public void SendMessageOnServer(string msg)
	{
		int num = msg.IndexOf(':');
		if (num > 0)
		{
			string text = msg.Substring(0, num);
			int result = -1;
			if (!int.TryParse(text, out result))
			{
				PlayerControllerB[] allPlayerScripts = HUDManager.Instance.playersManager.allPlayerScripts;
				foreach (PlayerControllerB val in allPlayerScripts)
				{
					if (val.playerUsername.Equals(text, StringComparison.OrdinalIgnoreCase))
					{
						result = (int)val.playerClientId;
						break;
					}
				}
			}
			string text2 = msg.Substring(num + 1);
			if (result == -1)
			{
				HUDManager.Instance.DisplayTip("Error", "Player not found", true, false, "LC_Tip1");
			}
			else
			{
				HUDManager.Instance.AddTextToChatOnServer(text2, result + 512);
			}
		}
		else
		{
			HUDManager.Instance.DisplayTip("Error", "Colon not found or is at the start", true, false, "LC_Tip1");
		}
	}

	public void GetAllPlayerScript()
	{
		string text = "";
		PlayerControllerB[] allPlayerScripts = HUDManager.Instance.playersManager.allPlayerScripts;
		foreach (PlayerControllerB val in allPlayerScripts)
		{
			if (val.playerUsername != "Player #" + val.playerClientId)
			{
				text = text + val.playerClientId + ":" + val.playerUsername + "\n";
			}
		}
		MakeMsgOnLocalClient(text);
	}

	public void MakeMsgOnLocalClient(string msg)
	{
		HUDManager.Instance.PingHUDElement(HUDManager.Instance.Chat, 4f, 1f, 0.2f);
		if (HUDManager.Instance.ChatMessageHistory.Count >= 6)
		{
			((TMP_Text)HUDManager.Instance.chatText).text.Remove(0, HUDManager.Instance.ChatMessageHistory[0].Length);
			HUDManager.Instance.ChatMessageHistory.Remove(HUDManager.Instance.ChatMessageHistory[0]);
		}
		msg = new StringBuilder(msg).ToString();
		string item = "<size=8><color=#FFA500>" + msg + "</color></size>";
		HUDManager.Instance.ChatMessageHistory.Add(item);
		((TMP_Text)HUDManager.Instance.chatText).text = "";
		for (int i = 0; i < HUDManager.Instance.ChatMessageHistory.Count; i++)
		{
			TextMeshProUGUI chatText = HUDManager.Instance.chatText;
			((TMP_Text)chatText).text = ((TMP_Text)chatText).text + "\n" + HUDManager.Instance.ChatMessageHistory[i];
		}
	}
}