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]
[Microsoft.CodeAnalysis.Embedded]
internal sealed class EmbeddedAttribute : Attribute
{
}
}
namespace System.Runtime.CompilerServices
{
[CompilerGenerated]
[Microsoft.CodeAnalysis.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<string> list = new List<string>(1) { string.Empty };
GameModeData[] array = Il2CppArrayBase<GameModeData>.op_Implicit((Il2CppArrayBase<GameModeData>)(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<string>();
}
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<int> val = Api.CommandArgumentParser.Parse<int>(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<string> list = new List<string>(1) { string.Empty };
Map[] array = Il2CppArrayBase<Map>.op_Implicit((Il2CppArrayBase<Map>)(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<string>();
}
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<int> val = Api.CommandArgumentParser.Parse<int>(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<string> readOnlySpan = new ReadOnlySpan<string>(array);
readOnlySpan.CopyTo(new Span<string>(array2).Slice(num, readOnlySpan.Length));
num += readOnlySpan.Length;
return (BaseCommandResponse)new StyledCommandResponse("Mode Info", array2, (CommandResponseType)0, true);
}
ParsedResult<GameModeData> val = Api.CommandArgumentParser.Parse<GameModeData>(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<string> readOnlySpan = new ReadOnlySpan<string>(array2);
readOnlySpan.CopyTo(new Span<string>(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<Reset>(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<GameModeData> val = Api.CommandArgumentParser.Parse<GameModeData>(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<Map> val2 = Api.CommandArgumentParser.Parse<Map>(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<CommandArgument>());
}
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<string>(), (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<CommandArgument>());
}
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<string>(), (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<CommandArgument>());
}
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<string>(), (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<Map> val = Api.CommandArgumentParser.Parse<Map>(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<string>(), (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<GameModeData> val = Api.CommandArgumentParser.Parse<GameModeData>(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<CommandArgument>());
}
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<ulong, MonoBehaviourPublicCSstReshTrheObplBojuUnique> 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<string>(), (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<float> val = Api.CommandArgumentParser.Parse<float>(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<string>(), (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<string>(), (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<OnlineClientId[]> val = Api.CommandArgumentParser.Parse<OnlineClientId[]>(args);
IEnumerable<ulong> enumerable;
if (val.successful)
{
enumerable = val.result.Select((OnlineClientId clientId) => OnlineClientId.op_Implicit(clientId));
}
else
{
ParsedResult<OnlineClientId> val2 = Api.CommandArgumentParser.Parse<OnlineClientId>(args);
if (!val2.successful)
{
return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You did not select any players." }, (CommandResponseType)1);
}
enumerable = new <>z__ReadOnlySingleElementList<ulong>(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<string>(), (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<string>(), (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<OnlineClientId[]> val = Api.CommandArgumentParser.Parse<OnlineClientId[]>(args);
IEnumerable<ulong> enumerable;
if (val.successful)
{
enumerable = val.result.Select((OnlineClientId clientId) => OnlineClientId.op_Implicit(clientId));
}
else
{
ParsedResult<OnlineClientId> val2 = Api.CommandArgumentParser.Parse<OnlineClientId>(args);
if (!val2.successful)
{
return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You did not select any players." }, (CommandResponseType)1);
}
enumerable = new <>z__ReadOnlySingleElementList<ulong>(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<string>(), (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_01c3: Unknown result type (might be due to invalid IL or missing references)
//IL_01c9: 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<string>(), (CommandResponseType)1);
}
return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "A player selector or player is required for the first argument." }, (CommandResponseType)1);
}
ParsedResult<OnlineClientId[]> val = Api.CommandArgumentParser.Parse<OnlineClientId[]>(args);
IEnumerable<ulong> enumerable;
if (val.successful)
{
enumerable = val.result.Select((OnlineClientId clientId) => OnlineClientId.op_Implicit(clientId));
}
else
{
ParsedResult<OnlineClientId> val2 = Api.CommandArgumentParser.Parse<OnlineClientId>(args);
if (!val2.successful)
{
return (BaseCommandResponse)new BasicCommandResponse(new string[1] { "You did not select any players." }, (CommandResponseType)1);
}
enumerable = new <>z__ReadOnlySingleElementList<ulong>(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((ulong)executorDetails)] = true;
MonoBehaviourPublicObInCoIE85SiAwVoFoCoUnique.Instance.QueueRespawn(item, 0f);
}
}
return (BaseCommandResponse)new BasicCommandResponse(Array.Empty<string>(), (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<GameModeData>)(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<GameModeData>)(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.1")]
[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<string>("GameMaster");
((BepInExLogInterpolatedStringHandler)val).AppendLiteral(" ");
((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>("1.1.1");
((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.1";
}
}
namespace System.Runtime.CompilerServices
{
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
internal sealed class IgnoresAccessChecksToAttribute : Attribute
{
public IgnoresAccessChecksToAttribute(string assemblyName)
{
}
}
}
[CompilerGenerated]
internal sealed class <>z__ReadOnlySingleElementList<T> : IEnumerable, ICollection, IList, IEnumerable<T>, IReadOnlyCollection<T>, IReadOnlyList<T>, ICollection<T>, IList<T>
{
private sealed class Enumerator : IDisposable, IEnumerator, IEnumerator<T>
{
object IEnumerator.Current => _item;
T IEnumerator<T>.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<T>.Count => 1;
T IReadOnlyList<T>.this[int index]
{
get
{
if (index != 0)
{
throw new IndexOutOfRangeException();
}
return _item;
}
}
int ICollection<T>.Count => 1;
bool ICollection<T>.IsReadOnly => true;
T IList<T>.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<T>.Default.Equals(_item, (T)value);
}
int IList.IndexOf(object value)
{
if (!EqualityComparer<T>.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<T> IEnumerable<T>.GetEnumerator()
{
return new Enumerator(_item);
}
void ICollection<T>.Add(T item)
{
throw new NotSupportedException();
}
void ICollection<T>.Clear()
{
throw new NotSupportedException();
}
bool ICollection<T>.Contains(T item)
{
return EqualityComparer<T>.Default.Equals(_item, item);
}
void ICollection<T>.CopyTo(T[] array, int arrayIndex)
{
array[arrayIndex] = _item;
}
bool ICollection<T>.Remove(T item)
{
throw new NotSupportedException();
}
int IList<T>.IndexOf(T item)
{
if (!EqualityComparer<T>.Default.Equals(_item, item))
{
return -1;
}
return 0;
}
void IList<T>.Insert(int index, T item)
{
throw new NotSupportedException();
}
void IList<T>.RemoveAt(int index)
{
throw new NotSupportedException();
}
}