using System.Reflection; using NitroxClient.GameLogic; using NitroxModel.DataStructures; using NitroxModel.DataStructures.Util; using NitroxModel.Helper; namespace NitroxPatcher.Patches.Dynamic; /// /// Broadcast the escape pod and sub root changes of a player respawning. /// public sealed partial class Player_MovePlayerToRespawnPoint_Patch : NitroxPatch, IDynamicPatch { private static readonly MethodInfo TARGET_METHOD = Reflect.Method((Player t) => t.MovePlayerToRespawnPoint()); public static void Postfix(Player __instance) { Optional currentSubId = Optional.Empty; if (__instance.currentSub) { currentSubId = __instance.currentSub.GetId(); } Resolve().BroadcastSubrootChange(currentSubId); // BroadcastEscapePodChange() is handled by EscapePod_RespawnPlayer_Patch for cross-functionality with the warpme command } }