diff --git a/NwPluginAPI/Core/Player.cs b/NwPluginAPI/Core/Player.cs index 47475e0..d2d79aa 100644 --- a/NwPluginAPI/Core/Player.cs +++ b/NwPluginAPI/Core/Player.cs @@ -572,6 +572,37 @@ public string DisplayNickname /// public string IpAddress => ReferenceHub.characterClassManager.connectionToClient.address; + /// + /// Gets or sets player's scale. + /// + public Vector3 Scale + { + get => GameObject.transform.localScale; + set + { + if (value == Scale) + return; + + try + { + GameObject.transform.localScale = value; + foreach(var player in GetPlayers()) + { + Server.SpawnMessage?.Invoke(null, new object[] { NetworkIdentity, player.Connection }); + } + } + catch (Exception e) + { + Log.Error($"Error on {nameof(Scale)}: {e}"); + } + } + } + + /// + /// Gets player's . + /// + public NetworkIdentity NetworkIdentity => ReferenceHub.networkIdentity; + /// /// Gets or sets the player's current role. /// @@ -679,7 +710,6 @@ public ItemBase CurrentItem /// public RoomIdentifier Room => RoomIdUtils.RoomAtPosition(GameObject.transform.position); - /// /// Get player current zone. /// @@ -713,7 +743,6 @@ public string RoleName set => ReferenceHub.serverRoles.SetText(value); } - /// /// Gets the player unit name. /// diff --git a/NwPluginAPI/Core/Server.cs b/NwPluginAPI/Core/Server.cs index 41e5643..dec4d50 100644 --- a/NwPluginAPI/Core/Server.cs +++ b/NwPluginAPI/Core/Server.cs @@ -10,6 +10,7 @@ namespace PluginAPI.Core using RoundRestarting; using static BanHandler; using static Broadcast; + using System.Reflection; /// /// Represents the server. @@ -17,6 +18,7 @@ namespace PluginAPI.Core public class Server : Player { private static Server _instance; + private static MethodInfo _sendSpawnMessage; /// /// The instance. @@ -104,6 +106,11 @@ public static int ReservedSlots /// public static PermissionsHandler PermissionsHandler => ServerStatic.GetPermissionsHandler(); + /// + /// Gets cached .SendSpawnMessage private method. + /// + public static MethodInfo SpawnMessage => _sendSpawnMessage ??= typeof(NetworkServer).GetMethod("SendSpawnMessage", BindingFlags.NonPublic | BindingFlags.Static); + /// /// Get actual ticks per second of the server. ///