first commit

This commit is contained in:
2025-07-06 00:23:46 +02:00
commit 38f50c8819
1788 changed files with 112878 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
using System;
using System.Reflection;
using HarmonyLib;
using NitroxClient.Communication.Abstract;
using NitroxModel.Helper;
using NitroxModel.Packets;
using NitroxModel.Server;
namespace NitroxPatcher.Patches.Dynamic;
/// <inheritdoc cref="CrashedShipExploder_OnConsoleCommand_Patch"/>
public sealed class GameModeConsoleCommands_OnConsoleCommand_Patch : NitroxPatch, IDynamicPatch
{
public static readonly MethodInfo TARGET_METHOD_SURVIVAL = Reflect.Method((GameModeConsoleCommands t) => t.OnConsoleCommand_survival());
public static readonly MethodInfo TARGET_METHOD_CREATIVE = Reflect.Method((GameModeConsoleCommands t) => t.OnConsoleCommand_creative());
public static readonly MethodInfo TARGET_METHOD_FREEDOM = Reflect.Method((GameModeConsoleCommands t) => t.OnConsoleCommand_freedom());
public static readonly MethodInfo TARGET_METHOD_HARDCORE = Reflect.Method((GameModeConsoleCommands t) => t.OnConsoleCommand_hardcore());
public static bool PrefixSurvival() => BroadcastGameModeChange(NitroxGameMode.SURVIVAL);
public static bool PrefixCreative() => BroadcastGameModeChange(NitroxGameMode.CREATIVE);
public static bool PrefixFreedom() => BroadcastGameModeChange(NitroxGameMode.FREEDOM);
public static bool PrefixHardcore() => BroadcastGameModeChange(NitroxGameMode.HARDCORE);
private static bool BroadcastGameModeChange(NitroxGameMode gameMode)
{
Resolve<IPacketSender>().Send(new ServerCommand($"gamemode {gameMode}"));
return false;
}
public override void Patch(Harmony harmony)
{
PatchPrefix(harmony, TARGET_METHOD_SURVIVAL, ((Func<bool>)PrefixSurvival).Method);
PatchPrefix(harmony, TARGET_METHOD_CREATIVE, ((Func<bool>)PrefixCreative).Method);
PatchPrefix(harmony, TARGET_METHOD_FREEDOM, ((Func<bool>)PrefixFreedom).Method);
PatchPrefix(harmony, TARGET_METHOD_HARDCORE, ((Func<bool>)PrefixHardcore).Method);
}
}