diff --git a/EXILED/Exiled.API/Extensions/MirrorExtensions.cs b/EXILED/Exiled.API/Extensions/MirrorExtensions.cs index 8b4350b5b0..e23172b6fa 100644 --- a/EXILED/Exiled.API/Extensions/MirrorExtensions.cs +++ b/EXILED/Exiled.API/Extensions/MirrorExtensions.cs @@ -356,6 +356,24 @@ public static void MessageTranslated(this Player player, string words, string tr } } + /// + /// Moves object for the player. + /// + /// Target to send. + /// The to move. + /// The position to change. + public static void MoveNetworkIdentityObject(this Player player, NetworkIdentity identity, Vector3 pos) + { + identity.gameObject.transform.position = pos; + ObjectDestroyMessage objectDestroyMessage = new() + { + netId = identity.netId, + }; + + player.Connection.Send(objectDestroyMessage, 0); + SendSpawnMessageMethodInfo?.Invoke(null, new object[] { identity, player.Connection }); + } + /// /// Sends to the player a Fake Change Scene. /// @@ -403,6 +421,26 @@ public static void ScaleNetworkIdentityObject(this Player player, NetworkIdentit SendSpawnMessageMethodInfo?.Invoke(null, new object[] { identity, player.Connection }); } + /// + /// Moves object for all the players. + /// + /// The to move. + /// The position to change. + public static void MoveNetworkIdentityObject(this NetworkIdentity identity, Vector3 pos) + { + identity.gameObject.transform.position = pos; + ObjectDestroyMessage objectDestroyMessage = new() + { + netId = identity.netId, + }; + + foreach (Player ply in Player.List) + { + ply.Connection.Send(objectDestroyMessage, 0); + SendSpawnMessageMethodInfo?.Invoke(null, new object[] { identity, ply.Connection }); + } + } + /// /// Scales an object for all players. ///