Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of FrostConsole v1.0.0
FrostConsole_v1.0.0.dll
Decompiled 3 days agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using HarmonyLib; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("FrostConsole")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("FrostConsole")] [assembly: AssemblyTitle("FrostConsole")] [assembly: AssemblyVersion("1.0.0.0")] namespace FrostConsole; [BepInPlugin("frost.frostconsole", "FrostConsole", "1.0.0")] public class FrostConsolePlugin : BaseUnityPlugin { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static ConsoleEvent <>9__15_0; internal void <Awake>b__15_0(ConsoleEventArgs args) { string systemCopyBuffer = GUIUtility.systemCopyBuffer; if (string.IsNullOrWhiteSpace(systemCopyBuffer)) { args.Context.AddString("Буфер обмена пуст"); return; } int num = RunLines(args.Context, systemCopyBuffer); args.Context.AddString($"fcpaste: выполнено команд {num}"); } } public const string PluginGuid = "frost.frostconsole"; public const string PluginName = "FrostConsole"; public const string PluginVersion = "1.0.0"; internal static ManualLogSource Log; internal static ConfigEntry<string> Num1; internal static ConfigEntry<string> Num2; internal static ConfigEntry<string> Num3; internal static ConfigEntry<string> Num4; internal static ConfigEntry<string> Num5; internal static ConfigEntry<string> Num6; internal static ConfigEntry<string> Num7; internal static ConfigEntry<string> Num8; internal static ConfigEntry<string> Num9; internal static ConfigEntry<bool> PasteMultiLine; private Harmony _harmony; private void Awake() { //IL_0175: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Expected O, but got Unknown //IL_0160: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Expected O, but got Unknown Log = ((BaseUnityPlugin)this).Logger; Num1 = BindPreset(((BaseUnityPlugin)this).Config, "Num1", "devcommands", "devcommands"); Num2 = BindPreset(((BaseUnityPlugin)this).Config, "Num2", "spawn GreydwarfEye 10", "spawn GreydwarfEye 10"); Num3 = BindPreset(((BaseUnityPlugin)this).Config, "Num3", "", "Команда для Num3 (пусто = не задана)"); Num4 = BindPreset(((BaseUnityPlugin)this).Config, "Num4", "", "Команда для Num4"); Num5 = BindPreset(((BaseUnityPlugin)this).Config, "Num5", "", "Команда для Num5"); Num6 = BindPreset(((BaseUnityPlugin)this).Config, "Num6", "", "Команда для Num6"); Num7 = BindPreset(((BaseUnityPlugin)this).Config, "Num7", "", "Команда для Num7"); Num8 = BindPreset(((BaseUnityPlugin)this).Config, "Num8", "", "Команда для Num8"); Num9 = BindPreset(((BaseUnityPlugin)this).Config, "Num9", "spawn HardAntler 1 | spawn GreydwarfEye 10 | spawn Flint 3 | spawn Raspberry 1", "Компоненты компаса странника (несколько команд через |)"); PasteMultiLine = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "PasteMultiLine", true, "Многострочный текст, отправленный из консоли, выполняется построчно"); object obj = <>c.<>9__15_0; if (obj == null) { ConsoleEvent val = delegate(ConsoleEventArgs args) { string systemCopyBuffer = GUIUtility.systemCopyBuffer; if (string.IsNullOrWhiteSpace(systemCopyBuffer)) { args.Context.AddString("Буфер обмена пуст"); } else { int num = RunLines(args.Context, systemCopyBuffer); args.Context.AddString($"fcpaste: выполнено команд {num}"); } }; <>c.<>9__15_0 = val; obj = (object)val; } new ConsoleCommand("fcpaste", "выполнить все строки из буфера обмена как команды", (ConsoleEvent)obj, false, false, false, false, false, false, (ConsoleOptionsFetcher)null, false, false, false); _harmony = new Harmony("frost.frostconsole"); _harmony.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"FrostConsole 1.0.0 загружен"); } private static ConfigEntry<string> BindPreset(ConfigFile config, string key, string def, string desc) { return config.Bind<string>("Presets", key, def, desc + ". Несколько команд — через |. Работает только при открытой консоли, NumLock включён"); } private void Update() { if ((Object)(object)Console.instance == (Object)null || !Console.IsVisible()) { return; } for (int i = 1; i <= 9; i++) { if (Input.GetKeyDown((KeyCode)(257 + (i - 1)))) { string preset = GetPreset(i); if (!string.IsNullOrWhiteSpace(preset)) { int num = RunLines((Terminal)(object)Console.instance, preset.Replace('|', '\n')); Log.LogInfo((object)$"Пресет Num{i}: выполнено команд {num}"); ClearInput((Terminal)(object)Console.instance); } } } } private static string GetPreset(int num) { return num switch { 1 => Num1.Value, 2 => Num2.Value, 3 => Num3.Value, 4 => Num4.Value, 5 => Num5.Value, 6 => Num6.Value, 7 => Num7.Value, 8 => Num8.Value, 9 => Num9.Value, _ => "", }; } internal static int RunLines(Terminal context, string text) { int num = 0; string[] array = text.Split('\n'); for (int i = 0; i < array.Length; i++) { string text2 = array[i].Trim(); if (text2.Length != 0 && !text2.StartsWith("#")) { context.TryRunCommand(text2, false, false); num++; } } return num; } internal static void ClearInput(Terminal console) { try { object obj = AccessTools.Field(typeof(Terminal), "m_input")?.GetValue(console); AccessTools.Property(obj?.GetType(), "text")?.SetValue(obj, ""); } catch { } } } [HarmonyPatch(typeof(Terminal), "InputText")] internal static class Terminal_InputText_Patch { private static bool Prefix(Terminal __instance) { if (!FrostConsolePlugin.PasteMultiLine.Value) { return true; } try { object obj = AccessTools.Field(typeof(Terminal), "m_input")?.GetValue(__instance); string text = AccessTools.Property(obj?.GetType(), "text")?.GetValue(obj) as string; if (string.IsNullOrEmpty(text) || !text.Contains("\n")) { return true; } FrostConsolePlugin.RunLines(__instance, text); FrostConsolePlugin.ClearInput(__instance); return false; } catch { return true; } } }