using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Core.Logging.Interpolation; using BepInEx.IL2CPP; using BepInEx.Logging; using ChatCommands; using CrabDevKit.Intermediary; using CrabDevKit.Utilities; using HarmonyLib; using Il2CppSystem.Collections.Generic; using Microsoft.CodeAnalysis; using SteamworksNative; using UnhollowerBaseLib; 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: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [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 GameMaster { public class ModesCommand : BaseCommand { public ModesCommand() { //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) base.id = "modes"; base.description = "Lists all of the game modes that can be played."; base.args = new CommandArguments((CommandArgument[])(object)new CommandArgument[1] { new CommandArgument(new Type[1] { typeof(int) }, "page", false) }); } public BaseCommandResponse ShowModesPage(BaseExecutionMethod executionMethod, int page = 1) { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Expected O, but got Unknown //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Expected O, but got Unknown //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Expected O, but got Unknown if (page >= 1) { int num = 1; int num2 = 0; List list = new List(1) { string.Empty }; GameModeData[] array = Il2CppArrayBase.op_Implicit((Il2CppArrayBase)(object)MonoBehaviourPublicGadealGaLi1pralObInUnique.Instance.allGameModes); for (int i = 0; i < array.Length; i++) { string text = array[i].modeName; if (i != array.Length - 1) { text += ", "; } if (list[num2].Length + text.Length - 1 > executionMethod.MaxResponseLength) { num2++; if (num2 == 3) { if (num + 1 > page) { break; } num++; num2 = 0; list = new List(); } list.Add(string.Empty); } list[num2] += text; } if (page == num) { return (BaseCommandResponse)new StyledCommandResponse($"Modes Page #{page}", list.ToArray(), (CommandResponseType)1, true); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You didn't specify a valid page number." }, (CommandResponseType)1); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You didn't specify a valid page number." }, (CommandResponseType)1); } public override BaseCommandResponse Execute(BaseExecutionMethod executionMethod, object executorDetails, string args, bool ignorePermissions = false) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Expected O, but got Unknown //IL_0027: Unknown result type (might be due to invalid IL or missing references) if (args.Length == 0) { return ShowModesPage(executionMethod); } ParsedResult val = Api.CommandArgumentParser.Parse(args); if (val.successful) { return ShowModesPage(executionMethod, val.result); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You didn't specify a valid page number." }, (CommandResponseType)1); } } public class MapsCommand : BaseCommand { public MapsCommand() { //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) base.id = "maps"; base.description = "Lists all of the maps that can be played."; base.args = new CommandArguments((CommandArgument[])(object)new CommandArgument[1] { new CommandArgument(new Type[1] { typeof(int) }, "page", false) }); } public BaseCommandResponse ShowMapsPage(BaseExecutionMethod executionMethod, int page = 1) { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Expected O, but got Unknown //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Expected O, but got Unknown //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Expected O, but got Unknown if (page >= 1) { int num = 1; int num2 = 0; List list = new List(1) { string.Empty }; Map[] array = Il2CppArrayBase.op_Implicit((Il2CppArrayBase)(object)MonoBehaviourPublicObInMamaLi1plMadeMaUnique.Instance.maps); for (int i = 0; i < array.Length; i++) { string text = array[i].mapName; if (i != array.Length - 1) { text += ", "; } if (list[num2].Length + text.Length - 1 > executionMethod.MaxResponseLength) { num2++; if (num2 == 3) { if (num + 1 > page) { break; } num++; num2 = 0; list = new List(); } list.Add(string.Empty); } list[num2] += text; } if (page == num) { return (BaseCommandResponse)new StyledCommandResponse($"Maps Page #{page}", list.ToArray(), (CommandResponseType)1, true); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You didn't specify a valid page number." }, (CommandResponseType)1); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You didn't specify a valid page number." }, (CommandResponseType)1); } public override BaseCommandResponse Execute(BaseExecutionMethod executionMethod, object executorDetails, string args, bool ignorePermissions = false) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Expected O, but got Unknown //IL_0027: Unknown result type (might be due to invalid IL or missing references) if (args.Length == 0) { return ShowMapsPage(executionMethod); } ParsedResult val = Api.CommandArgumentParser.Parse(args); if (val.successful) { return ShowMapsPage(executionMethod, val.result); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You didn't specify a valid page number." }, (CommandResponseType)1); } } public class ModeInfoCommand : BaseCommand { public ModeInfoCommand() { //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) base.id = "modeinfo"; base.description = "Shows the description for the given mode."; base.args = new CommandArguments((CommandArgument[])(object)new CommandArgument[1] { new CommandArgument(new Type[1] { typeof(GameModeData) }, "mode", false) }); } public override BaseCommandResponse Execute(BaseExecutionMethod executionMethod, object executorDetails, string args, bool ignorePermissions = false) { //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Expected O, but got Unknown //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Expected O, but got Unknown //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Expected O, but got Unknown if (args.Length == 0) { string modeName = MonoBehaviourPublicCSDi2UIInstObUIloDiUnique.Instance.gameMode.modeName; string[] array = ChatUtil.FormatGameModeDescription(MonoBehaviourPublicCSDi2UIInstObUIloDiUnique.Instance.gameMode.modeDescription); int num = 0; string[] array2 = new string[1 + array.Length]; array2[num] = modeName; num++; ReadOnlySpan readOnlySpan = new ReadOnlySpan(array); readOnlySpan.CopyTo(new Span(array2).Slice(num, readOnlySpan.Length)); num += readOnlySpan.Length; return (BaseCommandResponse)new StyledCommandResponse("Mode Info", array2, (CommandResponseType)0, true); } ParsedResult val = Api.CommandArgumentParser.Parse(args); if (val.successful) { string modeName = val.result.modeName; string[] array2 = ChatUtil.FormatGameModeDescription(val.result.modeDescription); int num = 0; string[] array = new string[1 + array2.Length]; array[num] = modeName; num++; ReadOnlySpan readOnlySpan = new ReadOnlySpan(array2); readOnlySpan.CopyTo(new Span(array).Slice(num, readOnlySpan.Length)); num += readOnlySpan.Length; return (BaseCommandResponse)new StyledCommandResponse("Mode Info", array, (CommandResponseType)0, true); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You didn't specify a valid mode." }, (CommandResponseType)1); } } public class PlayCommand : BaseCommand { public PlayCommand() { //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) base.id = "play"; base.description = "Sets the next mode and map to be played."; base.args = new CommandArguments((CommandArgument[])(object)new CommandArgument[2] { new CommandArgument(new Type[2] { typeof(GameModeData), typeof(Reset) }, "mode/reset", true), new CommandArgument(new Type[1] { typeof(Map) }, "map", false) }); } public override BaseCommandResponse Execute(BaseExecutionMethod executionMethod, object executorDetails, string args, bool ignorePermissions = false) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Expected O, but got Unknown //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Expected O, but got Unknown //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Expected O, but got Unknown //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Expected O, but got Unknown //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_018c: Expected O, but got Unknown //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Expected O, but got Unknown if (args.Length != 0) { if (Api.CommandArgumentParser.Parse(args).successful) { GameMaster.Instance.nextGameModeId = -1; GameMaster.Instance.nextMapId = -1; return (BaseCommandResponse)new StyledCommandResponse("Play", new string[1] { "Reset the queued mode and map." }, (CommandResponseType)1, true); } ParsedResult val = Api.CommandArgumentParser.Parse(args); if (val.successful) { if (!((Object)(object)val.result == (Object)(object)MonoBehaviourPublicGadealGaLi1pralObInUnique.Instance.defaultMode) && !((Object)(object)val.result == (Object)(object)MonoBehaviourPublicGadealGaLi1pralObInUnique.Instance.practiceMode)) { GameMaster.Instance.nextGameModeId = val.result.id; ParsedResult val2 = Api.CommandArgumentParser.Parse(val.newArgs); if (val2.successful) { GameMaster.Instance.nextMapId = val2.result.id; return (BaseCommandResponse)new StyledCommandResponse("Play", new string[2] { "Set the next mode to '" + val.result.modeName + "'.", "Set the next map to '" + val2.result.mapName + "'." }, (CommandResponseType)1, false); } return (BaseCommandResponse)new StyledCommandResponse("Play", new string[1] { "Set the next mode to " + val.result.modeName + "." }, (CommandResponseType)1, true); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You cannot set the next mode to Waiting Room or Practice." }, (CommandResponseType)1); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You didn't specify an existing mode." }, (CommandResponseType)1); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "A mode or 'reset' is required for the first argument." }, (CommandResponseType)1); } } public class StartCommand : BaseCommand { public StartCommand() { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) base.id = "start"; base.description = "Starts the games if you're in the lobby or practice."; base.args = new CommandArguments(Array.Empty()); } public override BaseCommandResponse Execute(BaseExecutionMethod executionMethod, object executorDetails, string args, bool ignorePermissions = false) { //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Expected O, but got Unknown //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Expected O, but got Unknown if (MonoBehaviourPublicCSDi2UIInstObUIloDiUnique.Instance.gameMode.id != MonoBehaviourPublicGadealGaLi1pralObInUnique.Instance.defaultMode.id && MonoBehaviourPublicCSDi2UIInstObUIloDiUnique.Instance.gameMode.id != MonoBehaviourPublicGadealGaLi1pralObInUnique.Instance.practiceMode.id) { return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "Unable to start while not in the lobby or practice." }, (CommandResponseType)1); } MonoBehaviourPublicObInLi1GagasmLi1GaUnique.Instance.StartGames(); return (BaseCommandResponse)new BasicCommandResponse(Array.Empty(), (CommandResponseType)1); } } public class SkipCommand : BaseCommand { public SkipCommand() { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) base.id = "skip"; base.description = "Skips the current mode."; base.args = new CommandArguments(Array.Empty()); } public override BaseCommandResponse Execute(BaseExecutionMethod executionMethod, object executorDetails, string args, bool ignorePermissions = false) { //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Expected O, but got Unknown //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Expected O, but got Unknown //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Expected I4, but got Unknown if (MonoBehaviourPublicCSDi2UIInstObUIloDiUnique.Instance.gameMode.id != MonoBehaviourPublicGadealGaLi1pralObInUnique.Instance.defaultMode.id && MonoBehaviourPublicCSDi2UIInstObUIloDiUnique.Instance.gameMode.id != MonoBehaviourPublicGadealGaLi1pralObInUnique.Instance.practiceMode.id) { if (!MonoBehaviourPublicCSDi2UIInstObUIloDiUnique.Instance.gameMode.skipAsString) { MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.gameMode.modeState = (EnumNPublicSealedvaFrPlEnGa5vUnique)2; MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.gameMode.EndRound(); MonoBehaviourPublicInInUnique.SendGameModeTimer(1f, (int)MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.gameMode.modeState); } MonoBehaviourPublicObInLi1GagasmLi1GaUnique.Instance.NextGame(); return (BaseCommandResponse)new BasicCommandResponse(Array.Empty(), (CommandResponseType)1); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "Unable to skip while not playing a mode." }, (CommandResponseType)1); } } public class LobbyCommand : BaseCommand { public LobbyCommand() { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) base.id = "lobby"; base.description = "Sends everyone to the lobby."; base.args = new CommandArguments(Array.Empty()); } public override BaseCommandResponse Execute(BaseExecutionMethod executionMethod, object executorDetails, string args, bool ignorePermissions = false) { //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Expected O, but got Unknown //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Expected I4, but got Unknown GameMaster.Instance.nextGameModeId = -1; GameMaster.Instance.nextMapId = -1; if (!MonoBehaviourPublicCSDi2UIInstObUIloDiUnique.Instance.gameMode.skipAsString) { MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.gameMode.modeState = (EnumNPublicSealedvaFrPlEnGa5vUnique)2; MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.gameMode.EndRound(); MonoBehaviourPublicInInUnique.SendGameModeTimer(1f, (int)MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.gameMode.modeState); } MonoBehaviourPublicObInLi1GagasmLi1GaUnique.Instance.RestartLobby(); return (BaseCommandResponse)new BasicCommandResponse(Array.Empty(), (CommandResponseType)1); } } public class PracticeCommand : BaseCommand { public PracticeCommand() { //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) base.id = "practice"; base.description = "Goes into practice mode with the given map."; base.args = new CommandArguments((CommandArgument[])(object)new CommandArgument[1] { new CommandArgument(new Type[1] { typeof(Map) }, "map", true) }); } public override BaseCommandResponse Execute(BaseExecutionMethod executionMethod, object executorDetails, string args, bool ignorePermissions = false) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Expected O, but got Unknown //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Expected O, but got Unknown //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Expected O, but got Unknown //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Expected I4, but got Unknown if (args.Length != 0) { ParsedResult val = Api.CommandArgumentParser.Parse(args); if (val.successful) { GameMaster.Instance.nextGameModeId = -1; GameMaster.Instance.nextMapId = -1; if (!MonoBehaviourPublicCSDi2UIInstObUIloDiUnique.Instance.gameMode.skipAsString) { MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.gameMode.modeState = (EnumNPublicSealedvaFrPlEnGa5vUnique)2; MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.gameMode.EndRound(); MonoBehaviourPublicInInUnique.SendGameModeTimer(1f, (int)MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.gameMode.modeState); } MonoBehaviourPublicInInUnique.LoadMap(val.result.id, MonoBehaviourPublicGadealGaLi1pralObInUnique.Instance.practiceMode.id); return (BaseCommandResponse)new BasicCommandResponse(Array.Empty(), (CommandResponseType)1); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You didn't specify an existing map." }, (CommandResponseType)1); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "A map is required for the first argument." }, (CommandResponseType)1); } } public class ToggleModeCommand : BaseCommand { public ToggleModeCommand() { //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) base.id = "togglemode"; base.description = "Toggle a mode on or off."; base.args = new CommandArguments((CommandArgument[])(object)new CommandArgument[1] { new CommandArgument(new Type[1] { typeof(GameModeData) }, "mode", true) }); } public override BaseCommandResponse Execute(BaseExecutionMethod executionMethod, object executorDetails, string args, bool ignorePermissions = false) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Expected O, but got Unknown //IL_0046: 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 //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Expected O, but got Unknown //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Expected O, but got Unknown //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Expected O, but got Unknown if (args.Length != 0) { ParsedResult val = Api.CommandArgumentParser.Parse(args); if (val.successful) { if (!((Object)(object)val.result == (Object)(object)MonoBehaviourPublicGadealGaLi1pralObInUnique.Instance.defaultMode) && !((Object)(object)val.result == (Object)(object)MonoBehaviourPublicGadealGaLi1pralObInUnique.Instance.practiceMode)) { if (MonoBehaviourPublicGadealGaLi1pralObInUnique.Instance.allPlayableGameModes.Contains(val.result)) { MonoBehaviourPublicGadealGaLi1pralObInUnique.Instance.allPlayableGameModes.Remove(val.result); SteamMatchmaking.SetLobbyData(MonoBehaviourPublicObInUIgaStCSBoStcuCSUnique.Instance.currentLobby, "Modes", MonoBehaviourPublicGadealGaLi1pralObInUnique.Instance.GetAvailableModesString()); return (BaseCommandResponse)new StyledCommandResponse("Disabled Mode", new string[1] { val.result.modeName }, (CommandResponseType)1, true); } MonoBehaviourPublicGadealGaLi1pralObInUnique.Instance.allPlayableGameModes.Add(val.result); SteamMatchmaking.SetLobbyData(MonoBehaviourPublicObInUIgaStCSBoStcuCSUnique.Instance.currentLobby, "Modes", MonoBehaviourPublicGadealGaLi1pralObInUnique.Instance.GetAvailableModesString()); return (BaseCommandResponse)new StyledCommandResponse("Enabled Mode", new string[1] { val.result.modeName }, (CommandResponseType)1, true); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You cannot toggle Waiting Room or Practice on." }, (CommandResponseType)1); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You didn't specify an existing mode." }, (CommandResponseType)1); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "A mode is required for the first argument." }, (CommandResponseType)1); } } public class RestartCommand : BaseCommand { public RestartCommand() { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) base.id = "restart"; base.description = "Restart the current round."; base.args = new CommandArguments(Array.Empty()); } public override BaseCommandResponse Execute(BaseExecutionMethod executionMethod, object executorDetails, string args, bool ignorePermissions = false) { //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Expected O, but got Unknown //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Expected I4, but got Unknown Enumerator enumerator = MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.activePlayers.Keys.GetEnumerator(); while (enumerator.MoveNext()) { ulong current = enumerator.Current; MonoBehaviourPublicCSDi2UIInstObUIloDiUnique.Instance.GetClient(current).field_Public_Boolean_0 = true; } if (!MonoBehaviourPublicCSDi2UIInstObUIloDiUnique.Instance.gameMode.skipAsString) { MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.gameMode.modeState = (EnumNPublicSealedvaFrPlEnGa5vUnique)2; MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.gameMode.EndRound(); MonoBehaviourPublicInInUnique.SendGameModeTimer(1f, (int)MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.gameMode.modeState); } MonoBehaviourPublicInInUnique.StartGame(); return (BaseCommandResponse)new BasicCommandResponse(Array.Empty(), (CommandResponseType)1); } } public class TimeCommand : BaseCommand { public TimeCommand() { //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) base.id = "time"; base.description = "Set the mode timer in seconds."; base.args = new CommandArguments((CommandArgument[])(object)new CommandArgument[1] { new CommandArgument(new Type[1] { typeof(float) }, "seconds", true) }); } public override BaseCommandResponse Execute(BaseExecutionMethod executionMethod, object executorDetails, string args, bool ignorePermissions = false) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Expected O, but got Unknown //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Expected O, but got Unknown //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Expected O, but got Unknown //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Expected I4, but got Unknown //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Expected O, but got Unknown if (args.Length != 0) { if (!((Object)(object)MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance == (Object)null) && MonoBehaviourPublicCSDi2UIInstObUIloDiUnique.Instance.gameMode.id != MonoBehaviourPublicGadealGaLi1pralObInUnique.Instance.defaultMode.id && MonoBehaviourPublicCSDi2UIInstObUIloDiUnique.Instance.gameMode.id != MonoBehaviourPublicGadealGaLi1pralObInUnique.Instance.practiceMode.id) { ParsedResult val = Api.CommandArgumentParser.Parse(args); if (val.successful && !(val.result < 0f)) { MonoBehaviourPublicInInUnique.SendGameModeTimer((val.result == 0f) ? float.Epsilon : val.result, (int)MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.gameMode.modeState); return (BaseCommandResponse)new BasicCommandResponse(Array.Empty(), (CommandResponseType)1); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You didn't specify a positive number." }, (CommandResponseType)1); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You cannot set the mode timer right now." }, (CommandResponseType)1); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "A time in seconds is required for the first argument." }, (CommandResponseType)1); } } public class KillCommand : BaseCommand { public KillCommand() { //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) base.id = "kill"; base.description = "Kills the given player(s)."; base.args = new CommandArguments((CommandArgument[])(object)new CommandArgument[1] { new CommandArgument(new Type[2] { typeof(OnlineClientId[]), typeof(OnlineClientId) }, "player(s)", true) }); } public override BaseCommandResponse Execute(BaseExecutionMethod executionMethod, object executorDetails, string args, bool ignorePermissions = false) { //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Expected O, but got Unknown //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Expected O, but got Unknown //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Expected O, but got Unknown //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_017a: Expected O, but got Unknown //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Expected O, but got Unknown //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: Expected O, but got Unknown //IL_01ba: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance == (Object)null) && (MonoBehaviourPublicCSDi2UIInstObUIloDiUnique.Instance.gameMode.skipAsString || (int)MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.gameMode.modeState != 0)) { if (args.Length == 0) { if (executionMethod is ChatExecutionMethod) { if (MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.activePlayers.ContainsKey((ulong)executorDetails) && !MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.activePlayers[(ulong)executorDetails].dead) { MonoBehaviourPublicObInCoIE85SiAwVoFoCoUnique.PlayerDied((ulong)executorDetails, (ulong)executorDetails, Vector3.zero); return (BaseCommandResponse)new BasicCommandResponse(Array.Empty(), (CommandResponseType)1); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You are already dead." }, (CommandResponseType)1); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "A player selector or player is required for the first argument." }, (CommandResponseType)1); } if (!ignorePermissions && !executionMethod.HasPermission(executorDetails, "command.kill.others")) { return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You don't have sufficient permission to kill other players." }, (CommandResponseType)1); } ParsedResult val = Api.CommandArgumentParser.Parse(args); IEnumerable enumerable; if (val.successful) { enumerable = val.result.Select((OnlineClientId clientId) => OnlineClientId.op_Implicit(clientId)); } else { ParsedResult val2 = Api.CommandArgumentParser.Parse(args); if (!val2.successful) { return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You did not select any players." }, (CommandResponseType)1); } enumerable = new <>z__ReadOnlySingleElementList(OnlineClientId.op_Implicit(val2.result)); } foreach (ulong item in enumerable) { if (MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.activePlayers.ContainsKey(item) && !MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.activePlayers[item].dead) { MonoBehaviourPublicObInCoIE85SiAwVoFoCoUnique.PlayerDied(item, item, Vector3.zero); } } return (BaseCommandResponse)new BasicCommandResponse(Array.Empty(), (CommandResponseType)1); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You cannot kill players right now." }, (CommandResponseType)1); } } public class ExplodeCommand : BaseCommand { public ExplodeCommand() { //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) base.id = "explode"; base.description = "Explodes the given player(s)."; base.args = new CommandArguments((CommandArgument[])(object)new CommandArgument[1] { new CommandArgument(new Type[2] { typeof(OnlineClientId[]), typeof(OnlineClientId) }, "player(s)", true) }); } public override BaseCommandResponse Execute(BaseExecutionMethod executionMethod, object executorDetails, string args, bool ignorePermissions = false) { //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Expected O, but got Unknown //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Expected O, but got Unknown //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Expected O, but got Unknown //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Expected O, but got Unknown //IL_014e: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Expected O, but got Unknown //IL_01da: Unknown result type (might be due to invalid IL or missing references) //IL_01e0: Expected O, but got Unknown //IL_01b6: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance == (Object)null) && (MonoBehaviourPublicCSDi2UIInstObUIloDiUnique.Instance.gameMode.skipAsString || (int)MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.gameMode.modeState != 0)) { if (args.Length == 0) { if (executionMethod is ChatExecutionMethod) { if (MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.activePlayers.ContainsKey((ulong)executorDetails) && !MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.activePlayers[(ulong)executorDetails].dead) { MonoBehaviourPublicObInCoIE85SiAwVoFoCoUnique.PlayerDied((ulong)executorDetails, 1uL, Vector3.zero); return (BaseCommandResponse)new BasicCommandResponse(Array.Empty(), (CommandResponseType)1); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You are already dead." }, (CommandResponseType)1); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "A player selector or player is required for the first argument." }, (CommandResponseType)1); } if (!ignorePermissions && !executionMethod.HasPermission(executorDetails, "command.explode.others")) { return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You don't have sufficient permission to explode other players." }, (CommandResponseType)1); } ParsedResult val = Api.CommandArgumentParser.Parse(args); IEnumerable enumerable; if (val.successful) { enumerable = val.result.Select((OnlineClientId clientId) => OnlineClientId.op_Implicit(clientId)); } else { ParsedResult val2 = Api.CommandArgumentParser.Parse(args); if (!val2.successful) { return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You did not select any players." }, (CommandResponseType)1); } enumerable = new <>z__ReadOnlySingleElementList(OnlineClientId.op_Implicit(val2.result)); } foreach (ulong item in enumerable) { if (MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.activePlayers.ContainsKey(item) && !MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.activePlayers[item].dead) { MonoBehaviourPublicObInCoIE85SiAwVoFoCoUnique.PlayerDied(item, 1uL, Vector3.zero); } } return (BaseCommandResponse)new BasicCommandResponse(Array.Empty(), (CommandResponseType)1); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You cannot explode players right now." }, (CommandResponseType)1); } } public class RespawnCommand : BaseCommand { public RespawnCommand() { //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) base.id = "respawn"; base.description = "Respawns the given player(s)."; base.args = new CommandArguments((CommandArgument[])(object)new CommandArgument[1] { new CommandArgument(new Type[2] { typeof(OnlineClientId[]), typeof(OnlineClientId) }, "player(s)", true) }); } public override BaseCommandResponse Execute(BaseExecutionMethod executionMethod, object executorDetails, string args, bool ignorePermissions = false) { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Expected O, but got Unknown //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Expected O, but got Unknown //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Expected O, but got Unknown //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Expected O, but got Unknown //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Expected O, but got Unknown //IL_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_01c5: Expected O, but got Unknown if (!((Object)(object)MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance == (Object)null)) { if (args.Length == 0) { if (executionMethod is ChatExecutionMethod) { if (MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.activePlayers.ContainsKey((ulong)executorDetails) && !MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.activePlayers[(ulong)executorDetails].dead) { return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You are already alive." }, (CommandResponseType)1); } ClientExtensions[MonoBehaviourPublicCSDi2UIInstObUIloDiUnique.Instance.GetClient((ulong)executorDetails)] = true; MonoBehaviourPublicObInCoIE85SiAwVoFoCoUnique.Instance.QueueRespawn((ulong)executorDetails, 0f); return (BaseCommandResponse)new BasicCommandResponse(Array.Empty(), (CommandResponseType)1); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "A player selector or player is required for the first argument." }, (CommandResponseType)1); } ParsedResult val = Api.CommandArgumentParser.Parse(args); IEnumerable enumerable; if (val.successful) { enumerable = val.result.Select((OnlineClientId clientId) => OnlineClientId.op_Implicit(clientId)); } else { ParsedResult val2 = Api.CommandArgumentParser.Parse(args); if (!val2.successful) { return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You did not select any players." }, (CommandResponseType)1); } enumerable = new <>z__ReadOnlySingleElementList(OnlineClientId.op_Implicit(val2.result)); } foreach (ulong item in enumerable) { if (!MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.activePlayers.ContainsKey(item) || MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.activePlayers[item].dead) { ClientExtensions[MonoBehaviourPublicCSDi2UIInstObUIloDiUnique.Instance.GetClient(item)] = true; MonoBehaviourPublicObInCoIE85SiAwVoFoCoUnique.Instance.QueueRespawn(item, 0f); } } return (BaseCommandResponse)new BasicCommandResponse(Array.Empty(), (CommandResponseType)1); } return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You cannot respawn players right now." }, (CommandResponseType)1); } } internal static class Patches { [HarmonyPatch(typeof(MonoBehaviourPublicInInUnique), "LoadMap", new Type[] { typeof(int), typeof(int) })] [HarmonyPrefix] [HarmonyPriority(int.MaxValue)] internal static void PreServerSendLoadMap(ref int param_0, ref int param_1) { if (GameMaster.Instance.nextGameModeId != -1 && !((Il2CppArrayBase)(object)MonoBehaviourPublicGadealGaLi1pralObInUnique.Instance.allGameModes)[param_1].skipAsString) { param_1 = GameMaster.Instance.nextGameModeId; GameMaster.Instance.nextGameModeId = -1; if (GameMaster.Instance.nextMapId != -1) { param_0 = GameMaster.Instance.nextMapId; GameMaster.Instance.nextMapId = -1; } else { param_0 = ((Il2CppArrayBase)(object)MonoBehaviourPublicGadealGaLi1pralObInUnique.Instance.allGameModes)[param_1].Method_Public_Map_Int32_0(MonoBehaviourPublicDi2UIObacspDi2UIObUnique.Instance.GetPlayersAlive()).id; } } } [HarmonyPatch(typeof(MonoBehaviourPublicInInUnique), "PlayerDied")] [HarmonyPostfix] internal static void PostServerSendPlayerDied(ulong param_0) { if ((Object)(object)MonoBehaviourPublicCSDi2UIInstObUIloDiUnique.Instance.gameMode == (Object)(object)MonoBehaviourPublicGadealGaLi1pralObInUnique.Instance.defaultMode) { MonoBehaviourPublicObInCoIE85SiAwVoFoCoUnique.Instance.QueueRespawn(param_0, 3f); } } } [BepInPlugin("lammas123.GameMaster", "GameMaster", "1.1.2")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public sealed class GameMaster : BasePlugin { internal int nextGameModeId = -1; internal int nextMapId = -1; internal static GameMaster Instance { get; private set; } public override void Load() { //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Expected O, but got Unknown CultureInfo.CurrentCulture = CultureInfo.InvariantCulture; CultureInfo.CurrentUICulture = CultureInfo.InvariantCulture; CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture; CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.InvariantCulture; Instance = this; Api.RegisterCommand((BaseCommand)(object)new ModesCommand()); Api.RegisterCommand((BaseCommand)(object)new MapsCommand()); Api.RegisterCommand((BaseCommand)(object)new ModeInfoCommand()); Api.RegisterCommand((BaseCommand)(object)new PlayCommand()); Api.RegisterCommand((BaseCommand)(object)new StartCommand()); Api.RegisterCommand((BaseCommand)(object)new SkipCommand()); Api.RegisterCommand((BaseCommand)(object)new LobbyCommand()); Api.RegisterCommand((BaseCommand)(object)new PracticeCommand()); Api.RegisterCommand((BaseCommand)(object)new ToggleModeCommand()); Api.RegisterCommand((BaseCommand)(object)new RestartCommand()); Api.RegisterCommand((BaseCommand)(object)new TimeCommand()); Api.RegisterCommand((BaseCommand)(object)new KillCommand()); Api.RegisterCommand((BaseCommand)(object)new ExplodeCommand()); Api.RegisterCommand((BaseCommand)(object)new RespawnCommand()); new Harmony("GameMaster").PatchAll(typeof(Patches)); ManualLogSource log = ((BasePlugin)this).Log; bool flag = default(bool); BepInExInfoLogInterpolatedStringHandler val = new BepInExInfoLogInterpolatedStringHandler(15, 2, ref flag); if (flag) { ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Initialized ["); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted("GameMaster"); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral(" "); ((BepInExLogInterpolatedStringHandler)val).AppendFormatted("1.1.2"); ((BepInExLogInterpolatedStringHandler)val).AppendLiteral("]"); } log.LogInfo(val); } } public static class MyPluginInfo { public const string PLUGIN_GUID = "lammas123.GameMaster"; public const string PLUGIN_NAME = "GameMaster"; public const string PLUGIN_VERSION = "1.1.2"; } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } } [CompilerGenerated] internal sealed class <>z__ReadOnlySingleElementList : IEnumerable, ICollection, IList, IEnumerable, IReadOnlyCollection, IReadOnlyList, ICollection, IList { private sealed class Enumerator : IDisposable, IEnumerator, IEnumerator { object IEnumerator.Current => _item; T IEnumerator.Current => _item; public Enumerator(T item) { _item = item; } bool IEnumerator.MoveNext() { if (!_moveNextCalled) { return _moveNextCalled = true; } return false; } void IEnumerator.Reset() { _moveNextCalled = false; } void IDisposable.Dispose() { } } int ICollection.Count => 1; bool ICollection.IsSynchronized => false; object ICollection.SyncRoot => this; object IList.this[int index] { get { if (index != 0) { throw new IndexOutOfRangeException(); } return _item; } set { throw new NotSupportedException(); } } bool IList.IsFixedSize => true; bool IList.IsReadOnly => true; int IReadOnlyCollection.Count => 1; T IReadOnlyList.this[int index] { get { if (index != 0) { throw new IndexOutOfRangeException(); } return _item; } } int ICollection.Count => 1; bool ICollection.IsReadOnly => true; T IList.this[int index] { get { if (index != 0) { throw new IndexOutOfRangeException(); } return _item; } set { throw new NotSupportedException(); } } public <>z__ReadOnlySingleElementList(T item) { _item = item; } IEnumerator IEnumerable.GetEnumerator() { return new Enumerator(_item); } void ICollection.CopyTo(Array array, int index) { array.SetValue(_item, index); } int IList.Add(object value) { throw new NotSupportedException(); } void IList.Clear() { throw new NotSupportedException(); } bool IList.Contains(object value) { return EqualityComparer.Default.Equals(_item, (T)value); } int IList.IndexOf(object value) { if (!EqualityComparer.Default.Equals(_item, (T)value)) { return -1; } return 0; } void IList.Insert(int index, object value) { throw new NotSupportedException(); } void IList.Remove(object value) { throw new NotSupportedException(); } void IList.RemoveAt(int index) { throw new NotSupportedException(); } IEnumerator IEnumerable.GetEnumerator() { return new Enumerator(_item); } void ICollection.Add(T item) { throw new NotSupportedException(); } void ICollection.Clear() { throw new NotSupportedException(); } bool ICollection.Contains(T item) { return EqualityComparer.Default.Equals(_item, item); } void ICollection.CopyTo(T[] array, int arrayIndex) { array[arrayIndex] = _item; } bool ICollection.Remove(T item) { throw new NotSupportedException(); } int IList.IndexOf(T item) { if (!EqualityComparer.Default.Equals(_item, item)) { return -1; } return 0; } void IList.Insert(int index, T item) { throw new NotSupportedException(); } void IList.RemoveAt(int index) { throw new NotSupportedException(); } }