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];
}
}
}