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 LobbyControlCCABindings v2.5.3
baer1.LC_CCA.dll
Decompiled a day agousing System; using System.Collections.Generic; using System.Diagnostics; using System.Drawing; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Logging; using ChatCommandAPI; using ChatCommandAPI.Utils; using LobbyControl; using LobbyControl.TerminalCommands; using Microsoft.CodeAnalysis; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: IgnoresAccessChecksTo("AmazingAssets.TerrainToMesh")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp-firstpass")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: IgnoresAccessChecksTo("ClientNetworkTransform")] [assembly: IgnoresAccessChecksTo("com.olegknyazev.softmask")] [assembly: IgnoresAccessChecksTo("DissonanceVoip")] [assembly: IgnoresAccessChecksTo("DunGen")] [assembly: IgnoresAccessChecksTo("DunGen.Integration.ASPP")] [assembly: IgnoresAccessChecksTo("DunGen.Integration.UnityNav")] [assembly: IgnoresAccessChecksTo("EasyTextEffects")] [assembly: IgnoresAccessChecksTo("Facepunch Transport for Netcode for GameObjects")] [assembly: IgnoresAccessChecksTo("Facepunch.Steamworks.Win64")] [assembly: IgnoresAccessChecksTo("LobbyControl")] [assembly: IgnoresAccessChecksTo("Unity.AI.Navigation")] [assembly: IgnoresAccessChecksTo("Unity.Animation.Rigging")] [assembly: IgnoresAccessChecksTo("Unity.Animation.Rigging.DocCodeExamples")] [assembly: IgnoresAccessChecksTo("Unity.Burst")] [assembly: IgnoresAccessChecksTo("Unity.Burst.Unsafe")] [assembly: IgnoresAccessChecksTo("Unity.Collections")] [assembly: IgnoresAccessChecksTo("Unity.Collections.LowLevel.ILSupport")] [assembly: IgnoresAccessChecksTo("Unity.InputSystem")] [assembly: IgnoresAccessChecksTo("Unity.InputSystem.ForUI")] [assembly: IgnoresAccessChecksTo("Unity.Jobs")] [assembly: IgnoresAccessChecksTo("Unity.Mathematics")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.Common")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.MetricTypes")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStats")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsMonitor.Component")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsMonitor.Configuration")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsMonitor.Implementation")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetStatsReporting")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetworkProfiler.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.Multiplayer.Tools.NetworkSolutionInterface")] [assembly: IgnoresAccessChecksTo("Unity.Netcode.Components")] [assembly: IgnoresAccessChecksTo("Unity.Netcode.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.Networking.Transport")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.Csg")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.KdTree")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.Poly2Tri")] [assembly: IgnoresAccessChecksTo("Unity.ProBuilder.Stl")] [assembly: IgnoresAccessChecksTo("Unity.Profiling.Core")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.Core.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.Core.ShaderLibrary")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.HighDefinition.Config.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.HighDefinition.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.RenderPipelines.ShaderGraph.ShaderGraphLibrary")] [assembly: IgnoresAccessChecksTo("Unity.Services.Authentication")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Analytics")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Components")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Configuration")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Device")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Environments")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Environments.Internal")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Internal")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Networking")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Registration")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Scheduler")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Telemetry")] [assembly: IgnoresAccessChecksTo("Unity.Services.Core.Threading")] [assembly: IgnoresAccessChecksTo("Unity.Services.QoS")] [assembly: IgnoresAccessChecksTo("Unity.Services.Relay")] [assembly: IgnoresAccessChecksTo("Unity.TextMeshPro")] [assembly: IgnoresAccessChecksTo("Unity.Timeline")] [assembly: IgnoresAccessChecksTo("Unity.VisualEffectGraph.Runtime")] [assembly: IgnoresAccessChecksTo("Unity.XR.CoreUtils")] [assembly: IgnoresAccessChecksTo("Unity.XR.Management")] [assembly: IgnoresAccessChecksTo("Unity.XR.OpenXR")] [assembly: IgnoresAccessChecksTo("Unity.XR.OpenXR.Features.ConformanceAutomation")] [assembly: IgnoresAccessChecksTo("Unity.XR.OpenXR.Features.MetaQuestSupport")] [assembly: IgnoresAccessChecksTo("Unity.XR.OpenXR.Features.MockRuntime")] [assembly: IgnoresAccessChecksTo("Unity.XR.OpenXR.Features.OculusQuestSupport")] [assembly: IgnoresAccessChecksTo("Unity.XR.OpenXR.Features.RuntimeDebugger")] [assembly: IgnoresAccessChecksTo("UnityEngine.ARModule")] [assembly: IgnoresAccessChecksTo("UnityEngine.NVIDIAModule")] [assembly: IgnoresAccessChecksTo("UnityEngine.SpatialTracking")] [assembly: IgnoresAccessChecksTo("UnityEngine.UI")] [assembly: IgnoresAccessChecksTo("UnityEngine.XR.LegacyInputHelpers")] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("baer1.LC_CCA")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("2.5.3.0")] [assembly: AssemblyInformationalVersion("2.5.3+bf10a2a7770eb0368e9ee3e4af5c8bc51bddda2d")] [assembly: AssemblyProduct("LobbyControlCCABindings")] [assembly: AssemblyTitle("baer1.LC_CCA")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("2.5.3.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [CompilerGenerated] [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 LobbyControlCCABindings { public class LobbyCommand : Command { public override string Name => "LobbyControl"; public override string Command => "lobby"; public override string[] Syntax => new string[10] { "help", "status", "{ open | close }", "{ private | friend | public }", "rename <name>", "autosave", "{ save | load } [file]", "switch <file>", "{ clear | dropall }", "version" }; public override void Invoke(string _args) { //IL_043a: 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) List<string> list = new List<string>(3) { ((BaseCommand)this).Command }; list.AddRange(Args.Parse(_args, (uint?)null, true)); if (list.Count > 1) { while (list.Count < 3) { list.Add(""); } TerminalNode val = ScriptableObject.CreateInstance<TerminalNode>(); bool flag; switch (list[1]) { case "version": { string text = "LobbyControl version " + LobbyControlCCABindings.Instance.LobbyControlVersion + "\nbindings v2.5.3 for v2.5.12"; if (LobbyControlCCABindings.Instance.LobbyControlVersion != "2.5.12") { Chat.PrintWarning(text); } else { Chat.Print(text, (Color?)null); } return; } case "status": flag = LobbyCommand.StatusCommand(ref val, list.ToArray()); goto IL_0440; case "open": verifyShipPhase(); verifyCanModify(); flag = LobbyCommand.OpenCommand(ref val, list.ToArray()); goto IL_0440; case "close": verifyShipPhase(); verifyCanModify(); flag = LobbyCommand.CloseCommand(ref val, list.ToArray()); goto IL_0440; case "private": verifyShipPhase(); verifyCanModify(); flag = LobbyCommand.PrivateCommand(ref val, list.ToArray()); goto IL_0440; case "friend": verifyShipPhase(); verifyCanModify(); flag = LobbyCommand.FriendCommand(ref val, list.ToArray()); goto IL_0440; case "public": verifyShipPhase(); verifyCanModify(); flag = LobbyCommand.PublicCommand(ref val, list.ToArray()); goto IL_0440; case "rename": verifyShipPhase(); verifyCanModify(); flag = LobbyCommand.RenameCommand(ref val, list.ToArray()); goto IL_0440; case "autosave": flag = LobbyCommand.AutoSaveCommand(ref val, list.ToArray()); goto IL_0440; case "save": verifyShipPhase(); verifyCanModify(); flag = LobbyCommand.SaveCommand(ref val, list.ToArray()); goto IL_0440; case "load": verifyShipPhase(); verifyCanModify(); flag = LobbyCommand.LoadCommand(ref val, list.ToArray()); goto IL_0440; case "switch": verifyShipPhase(); verifyCanModify(); flag = LobbyCommand.SwitchCommand(ref val, list.ToArray()); goto IL_0440; case "clear": verifyShipPhase(); verifyCanModify(); flag = LobbyCommand.ClearCommand(ref val, list.ToArray()); goto IL_0440; case "dropall": verifyShipPhase(); verifyCanModify(); flag = LobbyCommand.DropAllCommand(ref val, list.ToArray()); goto IL_0440; default: throw new InvalidArgumentsException(); case "help": break; IL_0440: if (flag) { Chat.Print(val.displayText.Trim(), (Color?)null); return; } throw new CommandException(val.displayText.Trim()); } } Chat.PrintWarning("status : prints the current lobby status\nopen : open the lobby\nclose : close the lobby\nprivate : set lobby to Invite Only\nfriend : set lobby to Friends Only\npublic : set lobby to Public\nrename <name> : change the name of the lobby\nautosave : toggle the autosave state\nsave [file] : save the lobby to file\nload [file] : re-load the lobby from file\nswitch <file> : change the future save/load location without loading\nclear : clear the current save\ndropall : drop all items on the ground"); static void verifyCanModify() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) if (!LobbyControl.CanModifyLobby) { throw new CommandException("You can not modify the lobby right now"); } } static void verifyShipPhase() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) if (!StartOfRound.Instance.inShipPhase) { throw new CommandException("The ship must be in orbit"); } } } } [BepInPlugin("baer1.LC_CCA", "LobbyControlCCABindings", "2.5.3")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class LobbyControlCCABindings : BaseUnityPlugin { internal string LobbyControlVersion = "[UNKNOWN]"; public static LobbyControlCCABindings Instance { get; private set; } internal static ManualLogSource Logger { get; private set; } private void Awake() { Logger = ((BaseUnityPlugin)this).Logger; Instance = this; if (!Chainloader.PluginInfos.TryGetValue("mattymatty.LobbyControl", out var value) || (LobbyControlVersion = value.Metadata.Version.ToString(3)) != "2.5.12") { Logger.LogWarning((object)("LobbyControl version differs: expected 2.5.12, got " + LobbyControlVersion)); } new LobbyCommand(); Logger.LogInfo((object)"baer1.LC_CCA v2.5.3 has loaded!"); } } public static class MyPluginInfo { public const string PLUGIN_GUID = "baer1.LC_CCA"; public const string PLUGIN_NAME = "LobbyControlCCABindings"; public const string PLUGIN_VERSION = "2.5.3"; } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }