diff --git a/MLAPI-Editor/NetworkedObjectEditor.cs b/MLAPI-Editor/NetworkedObjectEditor.cs index a58c2ca471..e66eb98af6 100644 --- a/MLAPI-Editor/NetworkedObjectEditor.cs +++ b/MLAPI-Editor/NetworkedObjectEditor.cs @@ -57,7 +57,7 @@ public override void OnInspectorGUI() if (showObservers) { - HashSet.Enumerator observerClientIds = networkedObject.GetObservers(); + HashSet.Enumerator observerClientIds = networkedObject.GetObservers(); EditorGUI.indentLevel += 1; diff --git a/MLAPI-Editor/NetworkingManagerEditor.cs b/MLAPI-Editor/NetworkingManagerEditor.cs index d9ecf455de..3395f17dae 100644 --- a/MLAPI-Editor/NetworkingManagerEditor.cs +++ b/MLAPI-Editor/NetworkingManagerEditor.cs @@ -1,24 +1,83 @@ -using UnityEditor; +using System; +using System.Collections.Generic; +using System.Reflection; +using UnityEditor; using UnityEngine; using UnityEditorInternal; using MLAPI; +using MLAPI.Transports; +using UnityEditor.Callbacks; [CustomEditor(typeof(NetworkingManager), true)] [CanEditMultipleObjects] public class NetworkingManagerEditor : Editor { - private SerializedProperty DontDestroyOnLoadProperty; - private SerializedProperty RunInBackgroundProperty; - private SerializedProperty LogLevelProperty; - private SerializedProperty NetworkConfigProperty; + // Properties + private SerializedProperty dontDestroyOnLoadProperty; + private SerializedProperty runInBackgroundProperty; + private SerializedProperty logLevelProperty; + + // NetworkConfig + private SerializedProperty networkConfigProperty; + + // NetworkConfig fields + private SerializedProperty protocolVersionProperty; + private SerializedProperty networkTransportProperty; + private SerializedProperty receiveTickrateProperty; + private SerializedProperty maxReceiveEventsPerTickRateProperty; + private SerializedProperty sendTickrateProperty; + private SerializedProperty eventTickrateProperty; + private SerializedProperty maxBehaviourUpdatesPerTickProperty; + private SerializedProperty clientConnectionBufferTimeoutProperty; + private SerializedProperty connectionApprovalProperty; + private SerializedProperty secondsHistoryProperty; + private SerializedProperty enableTimeResyncProperty; + private SerializedProperty enableNetworkedVarProperty; + private SerializedProperty forceSamePrefabsProperty; + private SerializedProperty usePrefabSyncProperty; + private SerializedProperty rpcHashSizeProperty; + private SerializedProperty loadSceneTimeOutProperty; + private SerializedProperty enableEncryptionProperty; + private SerializedProperty signKeyExchangeProperty; + private SerializedProperty serverBase64PfxCertificateProperty; private ReorderableList networkPrefabsList; - private ReorderableList channelsList; private ReorderableList registeredScenesList; private NetworkingManager networkingManager; private bool initialized; + + private readonly List transportTypes = new List(); + private string[] transportNames = new string[] {"Select transport..."}; + + private void ReloadTransports() + { + transportTypes.Clear(); + + Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies(); + foreach (Assembly assembly in assemblies) + { + Type[] types = assembly.GetTypes(); + + foreach (Type type in types) + { + if (type.IsSubclassOf(typeof(Transport))) + { + transportTypes.Add(type); + } + } + } + + transportNames = new string[transportTypes.Count + 1]; + + transportNames[0] = "Select transport..."; + + for (int i = 0; i < transportTypes.Count; i++) + { + transportNames[i + 1] = transportTypes[i].Name; + } + } private void Init() { @@ -27,22 +86,66 @@ private void Init() initialized = true; networkingManager = (NetworkingManager)target; - DontDestroyOnLoadProperty = serializedObject.FindProperty("DontDestroy"); - RunInBackgroundProperty = serializedObject.FindProperty("RunInBackground"); - LogLevelProperty = serializedObject.FindProperty("LogLevel"); - NetworkConfigProperty = serializedObject.FindProperty("NetworkConfig"); + + // Base properties + dontDestroyOnLoadProperty = serializedObject.FindProperty("DontDestroy"); + runInBackgroundProperty = serializedObject.FindProperty("RunInBackground"); + logLevelProperty = serializedObject.FindProperty("LogLevel"); + networkConfigProperty = serializedObject.FindProperty("NetworkConfig"); + + // NetworkConfig properties + protocolVersionProperty = networkConfigProperty.FindPropertyRelative("ProtocolVersion"); + networkTransportProperty = networkConfigProperty.FindPropertyRelative("NetworkTransport"); + receiveTickrateProperty = networkConfigProperty.FindPropertyRelative("ReceiveTickrate"); + maxReceiveEventsPerTickRateProperty = networkConfigProperty.FindPropertyRelative("MaxReceiveEventsPerTickRate"); + sendTickrateProperty = networkConfigProperty.FindPropertyRelative("SendTickrate"); + eventTickrateProperty = networkConfigProperty.FindPropertyRelative("EventTickrate"); + maxBehaviourUpdatesPerTickProperty = networkConfigProperty.FindPropertyRelative("MaxBehaviourUpdatesPerTick"); + clientConnectionBufferTimeoutProperty = networkConfigProperty.FindPropertyRelative("ClientConnectionBufferTimeout"); + connectionApprovalProperty = networkConfigProperty.FindPropertyRelative("ConnectionApproval"); + secondsHistoryProperty = networkConfigProperty.FindPropertyRelative("SecondsHistory"); + enableTimeResyncProperty = networkConfigProperty.FindPropertyRelative("EnableTimeResync"); + enableNetworkedVarProperty = networkConfigProperty.FindPropertyRelative("EnableNetworkedVar"); + forceSamePrefabsProperty = networkConfigProperty.FindPropertyRelative("ForceSamePrefabs"); + usePrefabSyncProperty = networkConfigProperty.FindPropertyRelative("UsePrefabSync"); + rpcHashSizeProperty = networkConfigProperty.FindPropertyRelative("RpcHashSize"); + loadSceneTimeOutProperty = networkConfigProperty.FindPropertyRelative("LoadSceneTimeOut"); + enableEncryptionProperty = networkConfigProperty.FindPropertyRelative("EnableEncryption"); + signKeyExchangeProperty = networkConfigProperty.FindPropertyRelative("SignKeyExchange"); + serverBase64PfxCertificateProperty = networkConfigProperty.FindPropertyRelative("ServerBase64PfxCertificate"); + + + ReloadTransports(); } private void CheckNullProperties() { - if (DontDestroyOnLoadProperty == null) - DontDestroyOnLoadProperty = serializedObject.FindProperty("DontDestroy"); - if (RunInBackgroundProperty == null) - RunInBackgroundProperty = serializedObject.FindProperty("RunInBackground"); - if (LogLevelProperty == null) - LogLevelProperty = serializedObject.FindProperty("LogLevel"); - if (NetworkConfigProperty == null) - NetworkConfigProperty = serializedObject.FindProperty("NetworkConfig"); + // Base properties + dontDestroyOnLoadProperty = serializedObject.FindProperty("DontDestroy"); + runInBackgroundProperty = serializedObject.FindProperty("RunInBackground"); + logLevelProperty = serializedObject.FindProperty("LogLevel"); + networkConfigProperty = serializedObject.FindProperty("NetworkConfig"); + + // NetworkConfig properties + protocolVersionProperty = networkConfigProperty.FindPropertyRelative("ProtocolVersion"); + networkTransportProperty = networkConfigProperty.FindPropertyRelative("NetworkTransport"); + receiveTickrateProperty = networkConfigProperty.FindPropertyRelative("ReceiveTickrate"); + maxReceiveEventsPerTickRateProperty = networkConfigProperty.FindPropertyRelative("MaxReceiveEventsPerTickRate"); + sendTickrateProperty = networkConfigProperty.FindPropertyRelative("SendTickrate"); + eventTickrateProperty = networkConfigProperty.FindPropertyRelative("EventTickrate"); + maxBehaviourUpdatesPerTickProperty = networkConfigProperty.FindPropertyRelative("MaxBehaviourUpdatesPerTick"); + clientConnectionBufferTimeoutProperty = networkConfigProperty.FindPropertyRelative("ClientConnectionBufferTimeout"); + connectionApprovalProperty = networkConfigProperty.FindPropertyRelative("ConnectionApproval"); + secondsHistoryProperty = networkConfigProperty.FindPropertyRelative("SecondsHistory"); + enableTimeResyncProperty = networkConfigProperty.FindPropertyRelative("EnableTimeResync"); + enableNetworkedVarProperty = networkConfigProperty.FindPropertyRelative("EnableNetworkedVar"); + forceSamePrefabsProperty = networkConfigProperty.FindPropertyRelative("ForceSamePrefabs"); + usePrefabSyncProperty = networkConfigProperty.FindPropertyRelative("UsePrefabSync"); + rpcHashSizeProperty = networkConfigProperty.FindPropertyRelative("RpcHashSize"); + loadSceneTimeOutProperty = networkConfigProperty.FindPropertyRelative("LoadSceneTimeOut"); + enableEncryptionProperty = networkConfigProperty.FindPropertyRelative("EnableEncryption"); + signKeyExchangeProperty = networkConfigProperty.FindPropertyRelative("SignKeyExchange"); + serverBase64PfxCertificateProperty = networkConfigProperty.FindPropertyRelative("ServerBase64PfxCertificate"); } private void OnEnable() @@ -61,37 +164,27 @@ private void OnEnable() EditorGUIUtility.singleLineHeight), element.FindPropertyRelative("Prefab"), GUIContent.none); EditorGUI.LabelField(new Rect(rect.width - secondLabelWidth - secondFieldWidth, rect.y, secondLabelWidth, EditorGUIUtility.singleLineHeight), "Default Player Prefab"); - EditorGUI.PropertyField(new Rect(rect.width - secondFieldWidth, rect.y, secondFieldWidth, - EditorGUIUtility.singleLineHeight), element.FindPropertyRelative("PlayerPrefab"), GUIContent.none); - }; - - networkPrefabsList.drawHeaderCallback = (Rect rect) => { - EditorGUI.LabelField(rect, "NetworkedPrefabs"); - }; - - channelsList = new ReorderableList(serializedObject, serializedObject.FindProperty("NetworkConfig").FindPropertyRelative("Channels"), true, true, true, true); - channelsList.drawElementCallback = (Rect rect, int index, bool isActive, bool isFocused) => - { - SerializedProperty element = channelsList.serializedProperty.GetArrayElementAtIndex(index); + int playerPrefabIndex = -1; - int firstLabelWidth = 50; - int secondLabelWidth = 40; - int secondFieldWidth = 150; - int reduceFirstWidth = 45; - - EditorGUI.LabelField(new Rect(rect.x, rect.y, firstLabelWidth, EditorGUIUtility.singleLineHeight), "Name"); - EditorGUI.PropertyField(new Rect(rect.x + firstLabelWidth, rect.y, rect.width - firstLabelWidth - secondLabelWidth - secondFieldWidth - reduceFirstWidth, - EditorGUIUtility.singleLineHeight), element.FindPropertyRelative("Name"), GUIContent.none); - + for (int i = 0; i < networkingManager.NetworkConfig.NetworkedPrefabs.Count; i++) + { + if (networkingManager.NetworkConfig.NetworkedPrefabs[i].PlayerPrefab) + { + playerPrefabIndex = i; + break; + } + } - EditorGUI.LabelField(new Rect(rect.width - secondLabelWidth - secondFieldWidth, rect.y, secondLabelWidth, EditorGUIUtility.singleLineHeight), "Type"); - EditorGUI.PropertyField(new Rect(rect.width - secondFieldWidth, rect.y, secondFieldWidth, - EditorGUIUtility.singleLineHeight), element.FindPropertyRelative("Type"), GUIContent.none); + using (new EditorGUI.DisabledScope(playerPrefabIndex != -1 && playerPrefabIndex != index)) + { + EditorGUI.PropertyField(new Rect(rect.width - secondFieldWidth, rect.y, secondFieldWidth, + EditorGUIUtility.singleLineHeight), element.FindPropertyRelative("PlayerPrefab"), GUIContent.none); + } }; - channelsList.drawHeaderCallback = (Rect rect) => { - EditorGUI.LabelField(rect, "Channels"); + networkPrefabsList.drawHeaderCallback = (Rect rect) => { + EditorGUI.LabelField(rect, "NetworkedPrefabs"); }; @@ -117,29 +210,113 @@ public override void OnInspectorGUI() { Init(); CheckNullProperties(); + + { + SerializedProperty iterator = serializedObject.GetIterator(); + + for (bool enterChildren = true; iterator.NextVisible(enterChildren); enterChildren = false) + { + using (new EditorGUI.DisabledScope("m_Script" == iterator.propertyPath)) + { + EditorGUILayout.PropertyField(iterator, false); + } + } + } + + if (!networkingManager.IsServer && !networkingManager.IsClient) { serializedObject.Update(); - EditorGUILayout.PropertyField(DontDestroyOnLoadProperty); - EditorGUILayout.PropertyField(RunInBackgroundProperty); - EditorGUILayout.PropertyField(LogLevelProperty); + + EditorGUILayout.PropertyField(dontDestroyOnLoadProperty); + EditorGUILayout.PropertyField(runInBackgroundProperty); + EditorGUILayout.PropertyField(logLevelProperty); EditorGUILayout.Space(); networkPrefabsList.DoLayoutList(); - - EditorGUILayout.Space(); - channelsList.DoLayoutList(); - EditorGUILayout.Space(); registeredScenesList.DoLayoutList(); EditorGUILayout.Space(); + + + EditorGUILayout.LabelField("General", EditorStyles.boldLabel); + EditorGUILayout.PropertyField(protocolVersionProperty); + + EditorGUILayout.PropertyField(networkTransportProperty); + + if (networkTransportProperty.objectReferenceValue == null) + { + EditorGUILayout.HelpBox("You have no transport selected. A transport is required for the MLAPI to work. Which one do you want?", MessageType.Warning); + + int selection = EditorGUILayout.Popup(0, transportNames); + + if (selection > 0) + { + ReloadTransports(); + + Component transport = networkingManager.gameObject.GetComponent(transportTypes[selection - 1]); + + if (transport == null) + { + transport = networkingManager.gameObject.AddComponent(transportTypes[selection - 1]); + } + + networkTransportProperty.objectReferenceValue = transport; + + Repaint(); + } + } + + EditorGUILayout.PropertyField(enableTimeResyncProperty); + + EditorGUILayout.LabelField("Performance", EditorStyles.boldLabel); + EditorGUILayout.PropertyField(receiveTickrateProperty); + EditorGUILayout.PropertyField(maxReceiveEventsPerTickRateProperty); + EditorGUILayout.PropertyField(sendTickrateProperty); + EditorGUILayout.PropertyField(eventTickrateProperty); + EditorGUILayout.PropertyField(enableNetworkedVarProperty); + using (new EditorGUI.DisabledScope(!networkingManager.NetworkConfig.EnableNetworkedVar)) + { + EditorGUILayout.PropertyField(maxBehaviourUpdatesPerTickProperty); + } + + EditorGUILayout.LabelField("Connection", EditorStyles.boldLabel); + EditorGUILayout.PropertyField(connectionApprovalProperty); + + using (new EditorGUI.DisabledScope(!networkingManager.NetworkConfig.ConnectionApproval)) + { + EditorGUILayout.PropertyField(clientConnectionBufferTimeoutProperty); + } + + EditorGUILayout.LabelField("Lag Compensation", EditorStyles.boldLabel); + EditorGUILayout.PropertyField(secondsHistoryProperty); + + EditorGUILayout.LabelField("Spawning", EditorStyles.boldLabel); + EditorGUILayout.PropertyField(forceSamePrefabsProperty); + EditorGUILayout.PropertyField(usePrefabSyncProperty); + + EditorGUILayout.LabelField("Bandwidth", EditorStyles.boldLabel); + EditorGUILayout.PropertyField(rpcHashSizeProperty); + + EditorGUILayout.LabelField("Scene Management", EditorStyles.boldLabel); + EditorGUILayout.PropertyField(loadSceneTimeOutProperty); + + EditorGUILayout.LabelField("Cryptography", EditorStyles.boldLabel); + EditorGUILayout.PropertyField(enableEncryptionProperty); + + using (new EditorGUI.DisabledScope(!networkingManager.NetworkConfig.EnableEncryption)) + { + EditorGUILayout.PropertyField(signKeyExchangeProperty); + EditorGUILayout.PropertyField(serverBase64PfxCertificateProperty); + } + serializedObject.ApplyModifiedProperties(); - base.OnInspectorGUI(); } else { string instanceType = ""; + if (networkingManager.IsHost) instanceType = "Host"; else if (networkingManager.IsServer) @@ -147,7 +324,8 @@ public override void OnInspectorGUI() else if (networkingManager.IsClient) instanceType = "Client"; - EditorGUILayout.HelpBox("You cannot edit the NetworkConfig when a " + instanceType + " is running", UnityEditor.MessageType.Info); + EditorGUILayout.HelpBox("You cannot edit the NetworkConfig when a " + instanceType + " is running.", MessageType.Info); + if (GUILayout.Toggle(false, "Stop " + instanceType, EditorStyles.miniButtonMid)) { if (networkingManager.IsHost) @@ -158,6 +336,5 @@ public override void OnInspectorGUI() networkingManager.StopClient(); } } - //Repaint(); } } diff --git a/MLAPI-Examples/ConvenienceMessagingPing.cs b/MLAPI-Examples/ConvenienceMessagingPing.cs index 530f2d52c9..3e4a9477da 100644 --- a/MLAPI-Examples/ConvenienceMessagingPing.cs +++ b/MLAPI-Examples/ConvenienceMessagingPing.cs @@ -20,7 +20,7 @@ public override void NetworkStart() [ServerRPC(RequireOwnership = false)] public void PingServer(int number) { - uint sender = ExecutingRpcSender; + ulong sender = ExecutingRpcSender; Debug.LogFormat("Got pinged by {0} with the number {1}", sender, number); diff --git a/MLAPI-Examples/ManagerExamples.cs b/MLAPI-Examples/ManagerExamples.cs index 291de46d28..11b2fbe6d3 100644 --- a/MLAPI-Examples/ManagerExamples.cs +++ b/MLAPI-Examples/ManagerExamples.cs @@ -10,7 +10,7 @@ namespace MLAPI_Examples // Features example calls for things often needed for things like Game managers public class ManagerExamples : NetworkedBehaviour { - public NetworkedObject GetPlayerGameObject(uint clientId) + public NetworkedObject GetPlayerGameObject(ulong clientId) { return SpawnManager.GetPlayerObject(clientId); } @@ -23,7 +23,7 @@ public NetworkedObject GetLocalPlayerObject() #if !DISABLE_CRYPTOGRAPHY // Only runs on server - public byte[] GetAESKeyForClient(uint clientId) + public byte[] GetAESKeyForClient(ulong clientId) { return CryptographyHelper.GetClientKey(clientId); } @@ -36,7 +36,7 @@ public byte[] GetAESKeyForServer() #endif // Contains player object, owned objects, cryptography keys and more - public NetworkedClient GetClient(uint clientId) + public NetworkedClient GetClient(ulong clientId) { return NetworkingManager.Singleton.ConnectedClients[clientId]; } diff --git a/MLAPI-Examples/UnetNetworkingManagerHud.cs b/MLAPI-Examples/UnetNetworkingManagerHud.cs deleted file mode 100644 index c831065a41..0000000000 --- a/MLAPI-Examples/UnetNetworkingManagerHud.cs +++ /dev/null @@ -1,123 +0,0 @@ -using System.Text.RegularExpressions; -using MLAPI; -using MLAPI.Transports.UNET; -using UnityEngine; - -namespace MLAPI_Examples -{ - public class UnetNetworkingManagerHud : MonoBehaviour - { - private int serverPort = -1; - private int hostPort = -1; - private int connectPort = -1; - private string connectAddress; - - private void OnGUI() - { - Regex digitsOnly = new Regex(@"[^\d]"); - - if (serverPort == -1) serverPort = NetworkingManager.Singleton.NetworkConfig.ConnectPort; - if (hostPort == -1) hostPort = NetworkingManager.Singleton.NetworkConfig.ConnectPort; - if (connectPort == -1) connectPort = NetworkingManager.Singleton.NetworkConfig.ConnectPort; - if (string.IsNullOrEmpty(connectAddress)) connectAddress = NetworkingManager.Singleton.NetworkConfig.ConnectAddress; - - if (!NetworkingManager.Singleton.IsListening) - { - GUILayout.BeginVertical(); - - GUILayout.BeginHorizontal(); - { - if (GUILayout.Button("Start Host", GUILayout.MinWidth(150))) - { - UnetTransport.ServerTransports[0].Port = hostPort; - NetworkingManager.Singleton.StartHost(); - } - - GUILayout.Label("Listen Port:"); - - string stringPort = digitsOnly.Replace(GUILayout.TextField(hostPort.ToString(), GUILayout.MinWidth(50)), ""); - if (string.IsNullOrEmpty(stringPort)) stringPort = "0"; - - hostPort = Mathf.Clamp(int.Parse(stringPort), 0, ushort.MaxValue); - } - GUILayout.EndHorizontal(); - - GUILayout.BeginHorizontal(); - { - if (GUILayout.Button("Start Server", GUILayout.MinWidth(150))) - { - UnetTransport.ServerTransports[0].Port = serverPort; - NetworkingManager.Singleton.StartServer(); - } - - GUILayout.Label("Listen Port:"); - - string stringPort = digitsOnly.Replace(GUILayout.TextField(serverPort.ToString(), GUILayout.MinWidth(50)), ""); - if (string.IsNullOrEmpty(stringPort)) stringPort = "0"; - - serverPort = Mathf.Clamp(int.Parse(stringPort), 0, ushort.MaxValue); - } - GUILayout.EndHorizontal(); - - GUILayout.BeginHorizontal(); - { - if (GUILayout.Button("Connect Client", GUILayout.MinWidth(150))) - { - NetworkingManager.Singleton.NetworkConfig.ConnectPort = connectPort; - NetworkingManager.Singleton.NetworkConfig.ConnectAddress = connectAddress; - NetworkingManager.Singleton.StartClient(); - } - - GUILayout.BeginVertical(); - { - GUILayout.BeginHorizontal(); - { - - GUILayout.Label("Connect Port:"); - - string stringPort = digitsOnly.Replace(GUILayout.TextField(connectPort.ToString(), GUILayout.MinWidth(50)), ""); - if (string.IsNullOrEmpty(stringPort)) stringPort = "0"; - - connectPort = Mathf.Clamp(int.Parse(stringPort), 0, ushort.MaxValue); - } - GUILayout.EndHorizontal(); - GUILayout.BeginHorizontal(); - { - GUILayout.Label("Connect Address:"); - connectAddress = GUILayout.TextField(connectAddress, GUILayout.MinWidth(150)); - } - GUILayout.EndHorizontal(); - } - GUILayout.EndVertical(); - } - GUILayout.EndHorizontal(); - - GUILayout.EndVertical(); - } - else - { - if (NetworkingManager.Singleton.IsHost) - { - if (GUILayout.Button("Stop Host")) - { - NetworkingManager.Singleton.StopHost(); - } - } - else if (NetworkingManager.Singleton.IsServer) - { - if (GUILayout.Button("Stop Server")) - { - NetworkingManager.Singleton.StopServer(); - } - } - else if (NetworkingManager.Singleton.IsClient) - { - if (GUILayout.Button("Stop Client")) - { - NetworkingManager.Singleton.StopClient(); - } - } - } - } - } -} \ No newline at end of file diff --git a/MLAPI.EnetTransport/EnetTransport.cs b/MLAPI.EnetTransport/EnetTransport.cs new file mode 100644 index 0000000000..c4934c025d --- /dev/null +++ b/MLAPI.EnetTransport/EnetTransport.cs @@ -0,0 +1,332 @@ +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member +using System; +using System.Collections.Generic; +using ENet; +using MLAPI.Transports; +using Event = ENet.Event; +using EventType = ENet.EventType; + +namespace MLAPI.EnetTransport +{ + public class EnetTransport : Transport + { + [Serializable] + public struct EnetChannel + { + public byte Id; + public string Name; + public PacketFlags Flags; + } + + public ushort Port = 7777; + public string Address = "127.0.0.1"; + public int MaxClients = 100; + public List Channels = new List(); + public int MessageBufferSize = 1024 * 5; + + + // Runtime / state + private byte[] messageBuffer; + private WeakReference temporaryBufferReference; + + + private readonly Dictionary connectedEnetPeers = new Dictionary(); + + private readonly Dictionary channelNameToId = new Dictionary(); + private readonly Dictionary channelIdToName = new Dictionary(); + private readonly Dictionary internalChannels = new Dictionary(); + + private Host host; + + private uint serverPeerId; + + public override ulong ServerClientId => GetMLAPIClientId(0, true); + + public override void Send(ulong clientId, ArraySegment data, string channelName, bool skipQueue) + { + Packet packet = default(Packet); + + packet.Create(data.Array, data.Offset, data.Count, internalChannels[channelNameToId[channelName]].Flags); + + GetEnetConnectionDetails(clientId, out uint peerId); + + connectedEnetPeers[peerId].Send(channelNameToId[channelName], ref packet); + } + + public override void FlushSendQueue(ulong clientId) + { + // Not needed + } + + public override NetEventType PollEvent(out ulong clientId, out string channelName, out ArraySegment payload) + { + Event @event; + + if (host.CheckEvents(out @event) <= 0) + { + if (host.Service(0, out @event) <= 0) + { + clientId = 0; + channelName = null; + payload = new ArraySegment(); + + return NetEventType.Nothing; + } + } + + clientId = GetMLAPIClientId(@event.Peer.ID, false); + + switch (@event.Type) + { + case EventType.None: + { + channelName = null; + payload = new ArraySegment(); + + return NetEventType.Nothing; + } + case EventType.Connect: + { + channelName = null; + payload = new ArraySegment(); + + connectedEnetPeers.Add(@event.Peer.ID, @event.Peer); + + return NetEventType.Connect; + } + case EventType.Disconnect: + { + channelName = null; + payload = new ArraySegment(); + + connectedEnetPeers.Remove(@event.Peer.ID); + + return NetEventType.Disconnect; + } + case EventType.Receive: + { + channelName = channelIdToName[@event.ChannelID]; + int size = @event.Packet.Length; + + if (size > messageBuffer.Length) + { + byte[] tempBuffer; + + if (temporaryBufferReference != null && temporaryBufferReference.IsAlive && ((byte[]) temporaryBufferReference.Target).Length >= size) + { + tempBuffer = (byte[]) temporaryBufferReference.Target; + } + else + { + tempBuffer = new byte[size]; + temporaryBufferReference = new WeakReference(tempBuffer); + } + + @event.Packet.CopyTo(tempBuffer); + payload = new ArraySegment(tempBuffer, 0, size); + } + else + { + @event.Packet.CopyTo(messageBuffer); + payload = new ArraySegment(messageBuffer, 0, size); + } + + @event.Packet.Dispose(); + + return NetEventType.Data; + } + case EventType.Timeout: + { + channelName = null; + payload = new ArraySegment(); + + connectedEnetPeers.Remove(@event.Peer.ID); + + return NetEventType.Disconnect; + } + default: + { + channelName = null; + payload = new ArraySegment(); + + return NetEventType.Nothing; + } + } + } + + public override void StartClient() + { + host = new Host(); + + host.Create(1, MLAPI_CHANNELS.Length + Channels.Count); + + Address address = new Address(); + address.Port = Port; + address.SetHost(Address); + + Peer serverPeer = host.Connect(address, MLAPI_CHANNELS.Length + Channels.Count); + + serverPeerId = serverPeer.ID; + } + + public override void StartServer() + { + host = new Host(); + + Address address = new Address(); + address.Port = Port; + + host.Create(address, MaxClients, MLAPI_CHANNELS.Length + Channels.Count); + } + + public override void DisconnectRemoteClient(ulong clientId) + { + GetEnetConnectionDetails(serverPeerId, out uint peerId); + + connectedEnetPeers[peerId].DisconnectLater(0); + } + + public override void DisconnectLocalClient() + { + host.Flush(); + + GetEnetConnectionDetails(serverPeerId, out uint peerId); + + connectedEnetPeers[peerId].DisconnectNow(0); + } + + public override ulong GetCurrentRtt(ulong clientId) + { + GetEnetConnectionDetails(serverPeerId, out uint peerId); + + return connectedEnetPeers[peerId].RoundTripTime; + } + + public override void Shutdown() + { + host.Flush(); + host.Dispose(); + Library.Deinitialize(); + } + + public override void Init() + { + Library.Initialize(); + + internalChannels.Clear(); + channelIdToName.Clear(); + channelNameToId.Clear(); + + + // MLAPI Channels + for (byte i = 0; i < MLAPI_CHANNELS.Length; i++) + { + channelIdToName.Add(i, MLAPI_CHANNELS[i].Name); + channelNameToId.Add(MLAPI_CHANNELS[i].Name, i); + internalChannels.Add(i, new EnetChannel() + { + Id = i, + Name = MLAPI_CHANNELS[i].Name, + Flags = ChannelTypeToPacketFlag(MLAPI_CHANNELS[i].Type) + }); + } + + // Internal Channels + for (int i = 0; i < Channels.Count; i++) + { + byte id = (byte) (i + MLAPI_CHANNELS.Length); + + channelIdToName.Add(id, Channels[i].Name); + channelNameToId.Add(Channels[i].Name, id); + internalChannels.Add(id, new EnetChannel() + { + Id = id, + Name = Channels[i].Name, + Flags = ChannelTypeToPacketFlag(Channels[i].Type) + }); + } + + messageBuffer = new byte[MessageBufferSize]; + } + + public PacketFlags ChannelTypeToPacketFlag(ChannelType type) + { + switch (type) + { + case ChannelType.Unreliable: + { + return PacketFlags.Unsequenced | PacketFlags.UnreliableFragment; + } + case ChannelType.UnreliableFragmented: + { + return PacketFlags.Unsequenced | PacketFlags.UnreliableFragment; + } + case ChannelType.UnreliableSequenced: + { + return PacketFlags.UnreliableFragment; + } + case ChannelType.Reliable: + { + return PacketFlags.Reliable | PacketFlags.Unsequenced; + } + case ChannelType.ReliableFragmented: + { + return PacketFlags.Reliable | PacketFlags.Unsequenced; + } + case ChannelType.ReliableSequenced: + { + return PacketFlags.Reliable; + } + case ChannelType.StateUpdate: + { + return PacketFlags.None; + } + case ChannelType.ReliableStateUpdate: + { + return PacketFlags.Reliable; + } + case ChannelType.AllCostDelivery: + { + return PacketFlags.Reliable; + } + case ChannelType.UnreliableFragmentedSequenced: + { + return PacketFlags.UnreliableFragment; + } + case ChannelType.ReliableFragmentedSequenced: + { + return PacketFlags.Reliable; + } + default: + { + throw new ArgumentOutOfRangeException(nameof(type), type, null); + } + } + } + + public ulong GetMLAPIClientId(uint peerId, bool isServer) + { + if (isServer) + { + return 0; + } + else + { + return peerId + 1; + } + } + + public void GetEnetConnectionDetails(ulong clientId, out uint peerId) + { + if (clientId == 0) + { + peerId = serverPeerId; + } + else + { + peerId = (uint)clientId - 1; + } + } + } +} +#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member \ No newline at end of file diff --git a/MLAPI.EnetTransport/MLAPI.EnetTransport.csproj b/MLAPI.EnetTransport/MLAPI.EnetTransport.csproj new file mode 100644 index 0000000000..887cfcbff5 --- /dev/null +++ b/MLAPI.EnetTransport/MLAPI.EnetTransport.csproj @@ -0,0 +1,27 @@ + + + + false + true + MLAPI.EnetTransport + MLAPI.EnetTransport + ENET Transport for MLAPI + 1.0.0 + true + net35;net471;net45;netstandard2.0 + + + + + ..\Libraries\Unity\UnityEngine.dll + False + false + + + + + + + + + \ No newline at end of file diff --git a/MLAPI.EnetTransport/Properties/AssemblyInfo.cs b/MLAPI.EnetTransport/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..17e5bc56e8 --- /dev/null +++ b/MLAPI.EnetTransport/Properties/AssemblyInfo.cs @@ -0,0 +1,9 @@ +using System.Runtime.InteropServices; + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("059FA226-17AB-4BD4-92BC-BCE3574FCAA0")] \ No newline at end of file diff --git a/MLAPI.sln b/MLAPI.sln index d0213e2879..f133d24557 100644 --- a/MLAPI.sln +++ b/MLAPI.sln @@ -11,6 +11,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MLAPI-Tests", "MLAPI-Tests\ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MLAPI-Examples", "MLAPI-Examples\MLAPI-Examples.csproj", "{FED83E10-8157-42C6-A58F-C2545C0D93B4}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MLAPI.EnetTransport", "MLAPI.EnetTransport\MLAPI.EnetTransport.csproj", "{059FA226-17AB-4BD4-92BC-BCE3574FCAA0}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug_Lite|Any CPU = Debug_Lite|Any CPU @@ -51,6 +53,14 @@ Global {FED83E10-8157-42C6-A58F-C2545C0D93B4}.Release_Lite|Any CPU.Build.0 = Release_Lite|Any CPU {FED83E10-8157-42C6-A58F-C2545C0D93B4}.Release|Any CPU.ActiveCfg = Release|Any CPU {FED83E10-8157-42C6-A58F-C2545C0D93B4}.Release|Any CPU.Build.0 = Release|Any CPU + {059FA226-17AB-4BD4-92BC-BCE3574FCAA0}.Debug_Lite|Any CPU.ActiveCfg = Debug|Any CPU + {059FA226-17AB-4BD4-92BC-BCE3574FCAA0}.Debug_Lite|Any CPU.Build.0 = Debug|Any CPU + {059FA226-17AB-4BD4-92BC-BCE3574FCAA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {059FA226-17AB-4BD4-92BC-BCE3574FCAA0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {059FA226-17AB-4BD4-92BC-BCE3574FCAA0}.Release_Lite|Any CPU.ActiveCfg = Debug|Any CPU + {059FA226-17AB-4BD4-92BC-BCE3574FCAA0}.Release_Lite|Any CPU.Build.0 = Debug|Any CPU + {059FA226-17AB-4BD4-92BC-BCE3574FCAA0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {059FA226-17AB-4BD4-92BC-BCE3574FCAA0}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/MLAPI/Data/AttributeMessageMode.cs b/MLAPI/Data/AttributeMessageMode.cs index 25dd22ea50..6c18b912d3 100644 --- a/MLAPI/Data/AttributeMessageMode.cs +++ b/MLAPI/Data/AttributeMessageMode.cs @@ -32,7 +32,7 @@ namespace MLAPI /// /// Delegate definition for performance RPC's. /// - public delegate void RpcDelegate(uint clientId, Stream stream); + public delegate void RpcDelegate(ulong clientId, Stream stream); internal class ReflectionMethod { diff --git a/MLAPI/Data/NetworkConfig.cs b/MLAPI/Data/NetworkConfig.cs index 64c473c405..07ec87141d 100644 --- a/MLAPI/Data/NetworkConfig.cs +++ b/MLAPI/Data/NetworkConfig.cs @@ -19,126 +19,123 @@ public class NetworkConfig /// /// The protocol version. Different versions doesn't talk to each other. /// + [Tooltip("Use this to make two builds incompatible with each other")] public ushort ProtocolVersion = 0; /// - /// The transport to be used - /// - public DefaultTransport Transport = DefaultTransport.UNET; - /// /// The transport hosts the sever uses /// - public IUDPTransport NetworkTransport = null; - /// - /// Channels used by the NetworkedTransport - /// - [HideInInspector] - public List Channels = new List(); + [Tooltip("The NetworkTransport to use")] + public Transport NetworkTransport = null; /// /// A list of SceneNames that can be used during networked games. /// - [HideInInspector] + [Tooltip("The Scenes that can be switched to by the server")] public List RegisteredScenes = new List(); /// /// A list of spawnable prefabs /// - [HideInInspector] + [Tooltip("The prefabs that can be spawned across the network")] public List NetworkedPrefabs = new List(); /// /// The default player prefab /// [SerializeField] - [HideInInspector] internal ulong PlayerPrefabHash; /// - /// The size of the receive message buffer. This is the max message size including any MLAPI overheads. - /// - public int MessageBufferSize = 1024; - /// /// Amount of times per second the receive queue is emptied and all messages inside are processed. /// + [Tooltip("The amount of times per second the receive queue is emptied from pending incoming messages")] public int ReceiveTickrate = 64; /// /// The max amount of messages to process per ReceiveTickrate. This is to prevent flooding. /// + [Tooltip("The maximum amount of Receive events to poll per Receive tick. This is to prevent flooding and freezing on the server")] public int MaxReceiveEventsPerTickRate = 500; /// /// The amount of times per second every pending message will be sent away. /// + [Tooltip("The amount of times per second the pending messages are sent")] public int SendTickrate = 64; /// /// The amount of times per second internal frame events will occur, examples include SyncedVar send checking. /// + [Tooltip("The amount of times per second the internal event loop will run. This includes for example SyncedVar checking and LagCompensation tracking")] public int EventTickrate = 64; /// /// The maximum amount of NetworkedBehaviour's to process per tick. /// This is useful to prevent the MLAPI from hanging a frame /// Set this to less than or equal to 0 for unlimited /// + [Tooltip("The maximum amount of NetworkedBehaviour SyncedVars to process per Event tick. This is to prevent freezing")] public int MaxBehaviourUpdatesPerTick = -1; /// - /// The max amount of Clients that can connect. - /// - public int MaxConnections = 100; - /// - /// The port for the NetworkTransport to use when connecting - /// - public int ConnectPort = 7777; - /// - /// The address to connect to - /// - public string ConnectAddress = "127.0.0.1"; - /// /// The amount of seconds to wait for handshake to complete before timing out a client /// + [Tooltip("The amount of seconds to wait for the handshake to complete before the client times out")] public int ClientConnectionBufferTimeout = 10; /// /// Wheter or not to use connection approval /// + [Tooltip("Whether or not to force clients to be approved before they connect")] public bool ConnectionApproval = false; /// /// The data to send during connection which can be used to decide on if a client should get accepted /// - [HideInInspector] + [Tooltip("The connection data sent along with connection requests")] public byte[] ConnectionData = new byte[0]; /// /// The amount of seconds to keep a lag compensation position history /// + [Tooltip("The amount of seconds to keep lag compensation position history")] public int SecondsHistory = 5; /// /// If your logic uses the NetworkedTime, this should probably be turned off. If however it's needed to maximize accuracy, this is recommended to be turned on /// + [Tooltip("Enable this to resync the NetworkedTime after the initial sync")] public bool EnableTimeResync = false; /// + /// Whether or not to enable the NetworkedVar system. This system runs in the Update loop and will degrade performance, but it can be a huge convenience. + /// Only turn it off if you have no need for the NetworkedVar system. + /// + [Tooltip("Whether or not to enable the NetworkedVar system")] + public bool EnableNetworkedVar = true; + /// /// Wheter or not the MLAPI should check for differences in the prefabs at connection. /// If you dynamically add prefabs at runtime, turn this OFF /// + [Tooltip("Whether or not the MLAPI should check for differences in the prefab lists at connection")] public bool ForceSamePrefabs = true; /// /// If true, all NetworkedObject's need to be prefabs and all scene objects will be replaced on server side which causes all serialization to be lost. Useful for multi project setups /// If false, Only non scene objects have to be prefabs. Scene objects will be matched using their PrefabInstanceId which can be precomputed globally for a scene at build time. Useful for single projects /// + [Tooltip("If true, all NetworkedObject's need to be prefabs and all scene objects will be replaced on server side which causes all serialization to be lost. Useful for multi project setups\n" + + "If false, Only non scene objects have to be prefabs. Scene objects will be matched using their PrefabInstanceId which can be precomputed globally for a scene at build time. Useful for single projects")] public bool UsePrefabSync = false; /// /// Decides how many bytes to use for Rpc messaging. Leave this to 2 bytes unless you are facing hash collisions /// + [Tooltip("The maximum amount of bytes to use for RPC messages. Leave this to 2 unless you are facing hash collisions")] public HashSize RpcHashSize = HashSize.VarIntTwoBytes; /// - /// Wheter or not to enable encryption /// The amount of seconds to wait on all clients to load requested scene before the SwitchSceneProgress onComplete callback, that waits for all clients to complete loading, is called anyway. /// + [Tooltip("The amount of seconds to wait for all clients to load a requested scene")] public int LoadSceneTimeOut = 120; /// /// Wheter or not to enable the ECDHE key exchange to allow for encryption and authentication of messages /// - [Header("Cryptography")] + [Tooltip("Whether or not to enable the ECDHE key exchange to allow for encryption and authentication of messages")] public bool EnableEncryption = false; /// /// Wheter or not to enable signed diffie hellman key exchange. /// + [Tooltip("Whether or not to sign the diffie hellman key exchange to prevent MITM attacks on")] public bool SignKeyExchange = false; /// /// Pfx file in base64 encoding containing private and public key /// + [Tooltip("The certificate in base64 encoded PFX format")] [TextArea] public string ServerBase64PfxCertificate; /// @@ -173,7 +170,6 @@ public byte[] ServerX509CertificateBytes private void Sort() { - Channels = Channels.OrderBy(x => x.Name).ToList(); RegisteredScenes.Sort(); } @@ -189,29 +185,18 @@ public string ToBase64() using (PooledBitWriter writer = PooledBitWriter.Get(stream)) { writer.WriteUInt16Packed(config.ProtocolVersion); - writer.WriteBits((byte)config.Transport, 5); - - writer.WriteUInt16Packed((ushort)config.Channels.Count); - for (int i = 0; i < config.Channels.Count; i++) - { - writer.WriteString(config.Channels[i].Name); - writer.WriteBits((byte)config.Channels[i].Type, 5); - } writer.WriteUInt16Packed((ushort)config.RegisteredScenes.Count); + for (int i = 0; i < config.RegisteredScenes.Count; i++) { writer.WriteString(config.RegisteredScenes[i]); } - writer.WriteInt32Packed(config.MessageBufferSize); writer.WriteInt32Packed(config.ReceiveTickrate); writer.WriteInt32Packed(config.MaxReceiveEventsPerTickRate); writer.WriteInt32Packed(config.SendTickrate); writer.WriteInt32Packed(config.EventTickrate); - writer.WriteInt32Packed(config.MaxConnections); - writer.WriteInt32Packed(config.ConnectPort); - writer.WriteString(config.ConnectAddress); writer.WriteInt32Packed(config.ClientConnectionBufferTimeout); writer.WriteBool(config.ConnectionApproval); writer.WriteInt32Packed(config.SecondsHistory); @@ -222,6 +207,7 @@ public string ToBase64() writer.WriteBits((byte)config.RpcHashSize, 3); writer.WriteBool(ForceSamePrefabs); writer.WriteBool(UsePrefabSync); + writer.WriteBool(EnableNetworkedVar); stream.PadStream(); return Convert.ToBase64String(stream.ToArray()); @@ -241,37 +227,20 @@ public void FromBase64(string base64) { using (PooledBitReader reader = PooledBitReader.Get(stream)) { - config.ProtocolVersion = reader.ReadUInt16Packed(); - config.Transport = (DefaultTransport)reader.ReadBits(5); - - ushort channelCount = reader.ReadUInt16Packed(); - config.Channels.Clear(); - for (int i = 0; i < channelCount; i++) - { - Channel channel = new Channel() - { - Name = reader.ReadString().ToString(), - Type = (ChannelType)reader.ReadBits(5) - }; - config.Channels.Add(channel); - } ushort sceneCount = reader.ReadUInt16Packed(); config.RegisteredScenes.Clear(); + for (int i = 0; i < sceneCount; i++) { config.RegisteredScenes.Add(reader.ReadString().ToString()); } - config.MessageBufferSize = reader.ReadInt32Packed(); config.ReceiveTickrate = reader.ReadInt32Packed(); config.MaxReceiveEventsPerTickRate = reader.ReadInt32Packed(); config.SendTickrate = reader.ReadInt32Packed(); config.EventTickrate = reader.ReadInt32Packed(); - config.MaxConnections = reader.ReadInt32Packed(); - config.ConnectPort = reader.ReadInt32Packed(); - config.ConnectAddress = reader.ReadString().ToString(); config.ClientConnectionBufferTimeout = reader.ReadInt32Packed(); config.ConnectionApproval = reader.ReadBool(); config.SecondsHistory = reader.ReadInt32Packed(); @@ -282,6 +251,7 @@ public void FromBase64(string base64) config.RpcHashSize = (HashSize)reader.ReadBits(3); config.ForceSamePrefabs = reader.ReadBool(); config.UsePrefabSync = reader.ReadBool(); + config.EnableNetworkedVar = reader.ReadBool(); } } } @@ -307,12 +277,6 @@ public ulong GetConfig(bool cache = true) writer.WriteUInt16Packed(ProtocolVersion); writer.WriteString(MLAPIConstants.MLAPI_PROTOCOL_VERSION); - for (int i = 0; i < Channels.Count; i++) - { - writer.WriteString(Channels[i].Name); - writer.WriteByte((byte)Channels[i].Type); - } - for (int i = 0; i < RegisteredScenes.Count; i++) { writer.WriteString(RegisteredScenes[i]); @@ -327,6 +291,7 @@ public ulong GetConfig(bool cache = true) } } + writer.WriteBool(EnableNetworkedVar); writer.WriteBool(ForceSamePrefabs); writer.WriteBool(UsePrefabSync); writer.WriteBool(EnableEncryption); diff --git a/MLAPI/Data/NetworkProfiler/NetworkProfiler.cs b/MLAPI/Data/NetworkProfiler/NetworkProfiler.cs index 5bb747d751..2ff4caf5b0 100644 --- a/MLAPI/Data/NetworkProfiler/NetworkProfiler.cs +++ b/MLAPI/Data/NetworkProfiler/NetworkProfiler.cs @@ -113,13 +113,13 @@ internal static void EndTick() CurrentTick = null; } - internal static void StartEvent(TickType eventType, uint bytes, int channelId, byte messageType) + internal static void StartEvent(TickType eventType, uint bytes, string channelName, byte messageType) { if (!isRunning) return; if (CurrentTick == null) return; - string channelName = MessageManager.reverseChannels.ContainsKey(channelId) ? MessageManager.reverseChannels[channelId] : "INVALID_CHANNEL"; + string messageName = MLAPIConstants.MESSAGE_NAMES.Length < messageType ? MLAPIConstants.MESSAGE_NAMES[messageType] : "INVALID_MESSAGE_TYPE"; CurrentTick.StartEvent(eventType, bytes, channelName, messageName); diff --git a/MLAPI/Data/NetworkedClient.cs b/MLAPI/Data/NetworkedClient.cs index 0f4e4d1487..0f933e6620 100644 --- a/MLAPI/Data/NetworkedClient.cs +++ b/MLAPI/Data/NetworkedClient.cs @@ -10,7 +10,7 @@ public class NetworkedClient /// /// The Id of the NetworkedClient /// - public uint ClientId; + public ulong ClientId; /// /// The PlayerObject of the Client /// diff --git a/MLAPI/Data/NetworkedCollections/NetworkedDictionary.cs b/MLAPI/Data/NetworkedCollections/NetworkedDictionary.cs index 403f19904e..e12bbcad30 100644 --- a/MLAPI/Data/NetworkedCollections/NetworkedDictionary.cs +++ b/MLAPI/Data/NetworkedCollections/NetworkedDictionary.cs @@ -313,7 +313,7 @@ public void WriteField(Stream stream) } /// - public bool CanClientWrite(uint clientId) + public bool CanClientWrite(ulong clientId) { switch (Settings.WritePermission) { @@ -334,7 +334,7 @@ public bool CanClientWrite(uint clientId) } /// - public bool CanClientRead(uint clientId) + public bool CanClientRead(ulong clientId) { switch (Settings.ReadPermission) { diff --git a/MLAPI/Data/NetworkedCollections/NetworkedList.cs b/MLAPI/Data/NetworkedCollections/NetworkedList.cs index 8363d9a28c..cd744e3b62 100644 --- a/MLAPI/Data/NetworkedCollections/NetworkedList.cs +++ b/MLAPI/Data/NetworkedCollections/NetworkedList.cs @@ -93,7 +93,7 @@ public string GetChannel() } /// - public bool CanClientWrite(uint clientId) + public bool CanClientWrite(ulong clientId) { switch (Settings.WritePermission) { @@ -114,7 +114,7 @@ public bool CanClientWrite(uint clientId) } /// - public bool CanClientRead(uint clientId) + public bool CanClientRead(ulong clientId) { switch (Settings.ReadPermission) { diff --git a/MLAPI/Data/NetworkedVar.cs b/MLAPI/Data/NetworkedVar.cs index d678c1a3eb..1242ed68fa 100644 --- a/MLAPI/Data/NetworkedVar.cs +++ b/MLAPI/Data/NetworkedVar.cs @@ -116,7 +116,7 @@ public bool IsDirty() } /// - public bool CanClientRead(uint clientId) + public bool CanClientRead(ulong clientId) { switch (Settings.ReadPermission) { @@ -142,7 +142,7 @@ public bool CanClientRead(uint clientId) public void WriteDelta(Stream stream) => WriteField(stream); //The NetworkedVar is built for simple data types and has no delta. /// - public bool CanClientWrite(uint clientId) + public bool CanClientWrite(ulong clientId) { switch (Settings.WritePermission) { diff --git a/MLAPI/Data/NetworkedVarMeta.cs b/MLAPI/Data/NetworkedVarMeta.cs index 700ee1e344..f9775b1923 100644 --- a/MLAPI/Data/NetworkedVarMeta.cs +++ b/MLAPI/Data/NetworkedVarMeta.cs @@ -27,13 +27,13 @@ public interface INetworkedVar /// /// The clientId of the remote client /// Wheter or not the client can write to the variable - bool CanClientWrite(uint clientId); + bool CanClientWrite(ulong clientId); /// /// Gets wheter or not a specific client can read to the varaible /// /// The clientId of the remote client /// Wheter or not the client can read to the variable - bool CanClientRead(uint clientId); + bool CanClientRead(ulong clientId); /// /// Writes the dirty changes, that is, the changes since the variable was last dirty, to the writer /// @@ -107,7 +107,7 @@ public NetworkedVarSettings() /// Delegate type for permission checking /// /// The clientId whose permissions to check - public delegate bool NetworkedVarPermissionsDelegate(uint clientId); + public delegate bool NetworkedVarPermissionsDelegate(ulong clientId); /// /// Permission type diff --git a/MLAPI/Data/PendingClient.cs b/MLAPI/Data/PendingClient.cs index 87f86370d6..31fe7fa164 100644 --- a/MLAPI/Data/PendingClient.cs +++ b/MLAPI/Data/PendingClient.cs @@ -12,7 +12,7 @@ public class PendingClient /// /// The ClientId of the client /// - public uint ClientId; + public ulong ClientId; #if !DISABLE_CRYPTOGRAPHY internal EllipticDiffieHellman KeyExchange; diff --git a/MLAPI/Data/RpcResponse.cs b/MLAPI/Data/RpcResponse.cs index 92d10320a7..6861b03247 100644 --- a/MLAPI/Data/RpcResponse.cs +++ b/MLAPI/Data/RpcResponse.cs @@ -40,7 +40,7 @@ public abstract class RpcResponseBase /// /// The clientId which the Request/Response was done wit /// - public uint ClientId { get; internal set; } + public ulong ClientId { get; internal set; } /// /// The amount of time to wait for the operation to complete /// diff --git a/MLAPI/Data/SceneSwitchProgress.cs b/MLAPI/Data/SceneSwitchProgress.cs index f400d5e296..e56ee53499 100644 --- a/MLAPI/Data/SceneSwitchProgress.cs +++ b/MLAPI/Data/SceneSwitchProgress.cs @@ -13,7 +13,7 @@ public class SceneSwitchProgress /// /// List of clientIds of those clients that is done loading the scene. /// - public List DoneClients { get; } = new List(); + public List DoneClients { get; } = new List(); /// /// The NetworkTime time at the moment the scene switch was initiated by the server. /// @@ -37,7 +37,7 @@ public class SceneSwitchProgress /// /// Delegate type for when a client is done loading the scene. /// - public delegate void OnClientLoadedSceneDelegate(uint clientId); + public delegate void OnClientLoadedSceneDelegate(ulong clientId); /// /// The callback invoked when a client is done loading the scene. /// @@ -53,7 +53,7 @@ internal SceneSwitchProgress() timeOutCoroutine = NetworkingManager.Singleton.StartCoroutine(NetworkingManager.Singleton.TimeOutSwitchSceneProgress(this)); } - internal void AddClientAsDone(uint clientId) + internal void AddClientAsDone(ulong clientId) { DoneClients.Add(clientId); if (OnClientLoadedScene != null) @@ -61,7 +61,7 @@ internal void AddClientAsDone(uint clientId) CheckCompletion(); } - internal void RemoveClientAsDone(uint clientId) + internal void RemoveClientAsDone(ulong clientId) { DoneClients.Remove(clientId); CheckCompletion(); diff --git a/MLAPI/Data/Transports/DefaultTransport.cs b/MLAPI/Data/Transports/DefaultTransport.cs deleted file mode 100644 index d5743afb0e..0000000000 --- a/MLAPI/Data/Transports/DefaultTransport.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace MLAPI.Transports -{ - /// - /// Supported built in transport - /// - public enum DefaultTransport - { - /// - /// Unity's UNET transport - /// - UNET, - /// - /// MLAPI.Relay transport (UNET internally) - /// - MLAPI_Relay, - /// - /// Custom transport - /// - Custom - } -} diff --git a/MLAPI/Data/Transports/IUDPTransport.cs b/MLAPI/Data/Transports/IUDPTransport.cs deleted file mode 100644 index 7fbe9653c3..0000000000 --- a/MLAPI/Data/Transports/IUDPTransport.cs +++ /dev/null @@ -1,102 +0,0 @@ -namespace MLAPI.Transports -{ - /// - /// A UDP transport - /// - public interface IUDPTransport - { - /// - /// The channelType the Internal library will use - /// - ChannelType InternalChannel { get; } - /// - /// The clientId the transport identifies as the server, should be constant - /// - uint ServerClientId { get; } - /// - /// Queues a message for sending. - /// - /// The clientId to send to - /// The buffer to read from - /// The amount of data to send from the buffer - /// The channelId to send on - /// Wheter or not Send will have to be called for this message to be sent - /// Error byte. Does nothhing - void QueueMessageForSending(uint clientId, byte[] dataBuffer, int dataSize, int channelId, bool skipQueue, out byte error); - /// - /// Sends queued messages for a specific clientId - /// - /// The clientId to send - /// Error byte. Does nothhing - void SendQueue(uint clientId, out byte error); - /// - /// Polls for incoming events - /// - /// The clientId this event is for - /// The channelId this message comes from - /// The data buffer, if any - /// The size of the buffer - /// The amount of bytes we received - /// Error byte. Does nothhing - /// Returns the event type - NetEventType PollReceive(out uint clientId, out int channelId, ref byte[] data, int bufferSize, out int receivedSize, out byte error); - /// - /// Adds a channel with a specific type - /// - /// The channelType - /// The settings object used by the transport - /// Returns a unique id for the channel - int AddChannel(ChannelType type, object settings); - /// - /// Connects client to server - /// - /// The address to connect to - /// The port to connect to - /// The settings object to use for the transport - /// Error byte. Does nothhing - void Connect(string address, int port, object settings, out byte error); - /// - /// Starts to listen for incoming clients. - /// - /// The settings object for the transport - void RegisterServerListenSocket(object settings); - /// - /// Disconnects a client from the server - /// - /// The clientId to disconnect - void DisconnectClient(uint clientId); - /// - /// Disconnects client from the server - /// - void DisconnectFromServer(); - /// - /// Gets the round trip time for a specific client - /// - /// The clientId to get the rtt from - /// Error byte. Does nothhing - /// Returns the event type - int GetCurrentRTT(uint clientId, out byte error); - /// - /// Gets a delay in miliseconds based on a timestamp - /// - /// The clientId to get the delay for - /// The timestamp - /// Error byte. Does nothhing - /// Returns the delay in miliseconds - int GetRemoteDelayTimeMS(uint clientId, int remoteTimestamp, out byte error); - /// - /// Gets a timestamp to be used for calculating latency - /// - /// The timestamp - int GetNetworkTimestamp(); - /// - /// Inits the transport and returns a settings object to be used for listening, connecting and registering channels - /// - /// The settings object - object GetSettings(); - /// - /// Shuts down the transport - /// - void Shutdown(); - } -} diff --git a/MLAPI/Data/Transports/Transport.cs b/MLAPI/Data/Transports/Transport.cs new file mode 100644 index 0000000000..393b487c77 --- /dev/null +++ b/MLAPI/Data/Transports/Transport.cs @@ -0,0 +1,123 @@ +using System; +using UnityEngine; + +namespace MLAPI.Transports +{ + /// + /// A network transport + /// + public abstract class Transport : MonoBehaviour + { + /// + /// A constant clientId that represents the server. + /// When this value is found in methods such as Send, it should be treated as a placeholder that means "the server" + /// + public abstract ulong ServerClientId { get; } + + /// + /// The channels the MLAPI will use when sending internal messages. + /// + public static TransportChannel[] MLAPI_CHANNELS = new TransportChannel[] + { + new TransportChannel() + { + Name = "MLAPI_INTERNAL", + Type = ChannelType.ReliableFragmentedSequenced + }, + new TransportChannel() + { + Name = "MLAPI_DEFAULT_MESSAGE", + Type = ChannelType.Reliable + }, + new TransportChannel() + { + Name = "MLAPI_POSITION_UPDATE", + Type = ChannelType.StateUpdate + }, + new TransportChannel() + { + Name = "MLAPI_ANIMATION_UPDATE", + Type = ChannelType.ReliableSequenced + }, + new TransportChannel() + { + Name = "MLAPI_NAV_AGENT_STATE", + Type = ChannelType.ReliableSequenced + }, + new TransportChannel() + { + Name = "MLAPI_NAV_AGENT_CORRECTION", + Type = ChannelType.StateUpdate + }, + new TransportChannel() + { + Name = "MLAPI_TIME_SYNC", + Type = ChannelType.Unreliable + } + }; + + /// + /// Queues a message for sending if the transports supports manual queueing and you want to use the MLAPIs tick system. + /// If the transport does not support queueing, you can ignore the FlushSendQueue method and do all sending here. + /// + /// The clientId to send to + /// The data to send + /// The channel to send data to + /// Whether or not Send will have to be called for this message to be sent + public abstract void Send(ulong clientId, ArraySegment data, string channelName, bool skipQueue); + + /// + /// Sends queued messages for a specific clientId if queueing is supported. + /// THIS METHOD IS OPTIONAL. IF THE TRANSPORT DOESNT SUPPORT QUEUEING, YOU CAN DO ALL SENDING IN THE QUEUE METHOD. + /// + /// The clientId to send + public abstract void FlushSendQueue(ulong clientId); + + /// + /// Polls for incoming events + /// + /// The clientId this event is for + /// The channel the data arrived at. This is usually used when responding to things like RPCs + /// The incoming data payload + /// Returns the event type + public abstract NetEventType PollEvent(out ulong clientId, out string channelName, out ArraySegment payload); + + /// + /// Connects client to server + /// + public abstract void StartClient(); + + /// + /// Starts to listen for incoming clients. + /// + public abstract void StartServer(); + + /// + /// Disconnects a client from the server + /// + /// The clientId to disconnect + public abstract void DisconnectRemoteClient(ulong clientId); + + /// + /// Disconnects the local client from the server + /// + public abstract void DisconnectLocalClient(); + + /// + /// Gets the round trip time for a specific client. This method is optional + /// + /// The clientId to get the rtt from + /// Returns the round trip time in milliseconds + public abstract ulong GetCurrentRtt(ulong clientId); + + /// + /// Shuts down the transport + /// + public abstract void Shutdown(); + + /// + /// Initializes the transport + /// + public abstract void Init(); + } +} diff --git a/MLAPI/Data/Channel.cs b/MLAPI/Data/Transports/TransportChannel.cs similarity index 56% rename from MLAPI/Data/Channel.cs rename to MLAPI/Data/Transports/TransportChannel.cs index 530ad77cdc..4f8ca4341a 100644 --- a/MLAPI/Data/Channel.cs +++ b/MLAPI/Data/Transports/TransportChannel.cs @@ -1,21 +1,21 @@ -using System; -using MLAPI.Transports; +using System; -namespace MLAPI.Configuration +namespace MLAPI.Transports { /// - /// A data object that represents a NetworkTransport channel + /// A transport channel used by the MLAPI /// [Serializable] - public class Channel + public class TransportChannel { /// /// The name of the channel /// public string Name; + /// - /// The Transport QOS type + /// The type of channel /// public ChannelType Type; } -} +} \ No newline at end of file diff --git a/MLAPI/Data/Transports/UNET/NetId.cs b/MLAPI/Data/Transports/UNET/NetId.cs deleted file mode 100644 index 83681f0eed..0000000000 --- a/MLAPI/Data/Transports/UNET/NetId.cs +++ /dev/null @@ -1,104 +0,0 @@ -namespace MLAPI.Transports.UNET -{ - /// - /// Represents a ClientId structure - /// - public struct NetId - { - //The NetId uses a ushort as connectionId and byte as hostId. Explanation: https://blogs.unity3d.com/2014/06/11/all-about-the-unity-networking-transport-layer/#comment-167515 - - - /// - /// The hostId this client is on - /// - public byte HostId; - /// - /// The connectionId this client is assigned - /// - public ushort ConnectionId; - /// - /// Meta data about hte client - /// - public byte Meta; - - /// - /// Returns wheter or not the clientId represents a -1 - /// - /// true, if server, false otherwise. - public bool IsServer() - { - return Meta == 1; - } - /// - /// Initializes a new instance of the netId struct from transport values - /// - /// Host identifier. - /// Connection identifier. - /// If set to true is isServer. - public NetId(byte hostId, ushort connectionId, bool isServer) - { - HostId = hostId; - ConnectionId = connectionId; - Meta = isServer ? (byte)1 : (byte)0; - } - /// - /// Initializes a new instance of the netId struct from a clientId - /// - /// Client identifier. - public NetId(uint clientId) - { - HostId = (byte)(clientId & 0xFF); - ConnectionId = (ushort)((byte)((clientId >> 8) & 0xFF) | (ushort)(((clientId >> 16) & 0xFF) << 8)); - Meta = (byte)((clientId >> 24) & 0xFF); - } - /// - /// Gets the clientId. - /// - /// The client identifier. - public uint GetClientId() - { - return HostId | (uint)((ConnectionId & 0xFF) << 8) | (uint)(((ConnectionId >> 8) & 0xFF) << 16) | (uint)(Meta << 24); - } - /// - /// Checks if two NetId's are equal - /// - /// NetId to compare to - /// Wheter or not the two NetIds are equal - public override bool Equals (object obj) - { - if (obj == null || GetType() != obj.GetType()) - return false; - - NetId key = (NetId)obj; - return (HostId == key.HostId) && (ConnectionId == key.ConnectionId); - } - /// - /// Returns a hash code for the instance - /// - /// Returns a hash code for the instance - public override int GetHashCode() - { - return (int)GetClientId(); - } - /// - /// Checks if two NetId's are equal - /// - /// First netId - /// Second netId - /// Wheter or not the two NetIds are equal - public static bool operator ==(NetId client1, NetId client2) - { - return (client1.HostId == client2.HostId && client1.ConnectionId == client2.ConnectionId) || (client1.IsServer() == client2.IsServer()); - } - /// - /// Checks if two NetId's are not equal - /// - /// First netId - /// Second netId - /// Wheter or not the two NetIds are not equal - public static bool operator !=(NetId client1, NetId client2) - { - return !(client1 == client2); - } - } -} diff --git a/MLAPI/Data/Transports/UNET/RelayedTransport.cs b/MLAPI/Data/Transports/UNET/RelayedTransport.cs deleted file mode 100644 index cb65ac6212..0000000000 --- a/MLAPI/Data/Transports/UNET/RelayedTransport.cs +++ /dev/null @@ -1,178 +0,0 @@ -#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -using System.Collections.Generic; -using UnityEngine.Networking; - -namespace MLAPI.Transports.UNET -{ - public class RelayedTransport : IUDPTransport - { - public ChannelType InternalChannel => ChannelType.ReliableFragmentedSequenced; - public uint ServerClientId => new NetId(0, 0, true).GetClientId(); - public int serverConnectionId; - public int serverHostId; - - public static readonly List ServerTransports = new List() - { - new TransportHost() - { - Name = "UDP Socket", - Port = 7777, - Websockets = false - } - }; - - public int Connect(string address, int port, object settings, bool websocket, out byte error) - { - NetworkTransport.Init(); - int hostId = RelayTransport.AddHost((HostTopology)settings, false); - return RelayTransport.Connect(hostId, address, port, 0, out error); - } - - public void DisconnectClient(uint clientId) - { - NetId netId = new NetId(clientId); - if (netId.IsServer()) - return; - RelayTransport.Disconnect(netId.HostId, netId.ConnectionId, out byte error); - } - - public void DisconnectFromServer() => RelayTransport.Disconnect(serverHostId, serverConnectionId, out byte error); - - public int GetCurrentRTT(uint clientId, out byte error) - { - NetId netId = new NetId(clientId); - if (netId.IsServer()) - { - netId.ConnectionId = (ushort)serverConnectionId; - netId.HostId = (byte)serverHostId; - } - return NetworkTransport.GetCurrentRTT(netId.HostId, netId.ConnectionId, out error); - } - - public int GetNetworkTimestamp() => NetworkTransport.GetNetworkTimestamp(); - - public int GetRemoteDelayTimeMS(uint clientId, int remoteTimestamp, out byte error) - { - NetId netId = new NetId(clientId); - if (netId.IsServer()) - { - netId.ConnectionId = (ushort)serverConnectionId; - netId.HostId = (byte)serverHostId; - } - return NetworkTransport.GetRemoteDelayTimeMS(netId.HostId, netId.ConnectionId, remoteTimestamp, out error); - } - - public NetEventType PollReceive(out uint clientId, out int channelId, ref byte[] data, int bufferSize, out int receivedSize, out byte error) - { - NetworkEventType eventType = RelayTransport.Receive(out int hostId, out int connectionId, out channelId, data, bufferSize, out receivedSize, out byte err); - clientId = new NetId((byte)hostId, (ushort)connectionId, false).GetClientId(); - NetworkError errorType = (NetworkError)err; - if (errorType == NetworkError.Timeout) - eventType = NetworkEventType.DisconnectEvent; //In UNET. Timeouts are not disconnects. We have to translate that here. - error = 0; - - //Translate NetworkEventType to NetEventType - switch (eventType) - { - case NetworkEventType.DataEvent: - return NetEventType.Data; - case NetworkEventType.ConnectEvent: - return NetEventType.Connect; - case NetworkEventType.DisconnectEvent: - return NetEventType.Disconnect; - case NetworkEventType.Nothing: - return NetEventType.Nothing; - case NetworkEventType.BroadcastEvent: - return NetEventType.Nothing; - } - return NetEventType.Nothing; - } - - public void QueueMessageForSending(uint clientId, byte[] dataBuffer, int dataSize, int channelId, bool skipqueue, out byte error) - { - NetId netId = new NetId(clientId); - if (netId.IsServer()) - { - netId.ConnectionId = (ushort)serverConnectionId; - netId.HostId = (byte)serverHostId; - } - if (skipqueue) - RelayTransport.Send(netId.HostId, netId.ConnectionId, channelId, dataBuffer, dataSize, out error); - else - RelayTransport.QueueMessageForSending(netId.HostId, netId.ConnectionId, channelId, dataBuffer, dataSize, out error); - } - - public void Shutdown() => NetworkTransport.Shutdown(); - - public void SendQueue(uint clientId, out byte error) - { - NetId netId = new NetId(clientId); - if (netId.IsServer()) - { - netId.ConnectionId = (ushort)serverConnectionId; - netId.HostId = (byte)serverHostId; - } - RelayTransport.SendQueuedMessages(netId.HostId, netId.ConnectionId, out error); - } - - public void RegisterServerListenSocket(object settings) - { - HostTopology topology = new HostTopology((ConnectionConfig)settings, NetworkingManager.Singleton.NetworkConfig.MaxConnections); - for (int i = 0; i < ServerTransports.Count; i++) - { - if (ServerTransports[i].Websockets) - RelayTransport.AddWebsocketHost(topology, ServerTransports[i].Port, true); - else - RelayTransport.AddHost(topology, ServerTransports[i].Port, true); - } - } - - public int AddChannel(ChannelType type, object settings) - { - ConnectionConfig config = (ConnectionConfig)settings; - switch (type) - { - case ChannelType.Unreliable: - return config.AddChannel(QosType.Unreliable); - case ChannelType.UnreliableFragmented: - return config.AddChannel(QosType.UnreliableFragmented); - case ChannelType.UnreliableSequenced: - return config.AddChannel(QosType.UnreliableSequenced); - case ChannelType.Reliable: - return config.AddChannel(QosType.Reliable); - case ChannelType.ReliableFragmented: - return config.AddChannel(QosType.ReliableFragmented); - case ChannelType.ReliableSequenced: - return config.AddChannel(QosType.ReliableSequenced); - case ChannelType.StateUpdate: - return config.AddChannel(QosType.StateUpdate); - case ChannelType.ReliableStateUpdate: - return config.AddChannel(QosType.ReliableStateUpdate); - case ChannelType.AllCostDelivery: - return config.AddChannel(QosType.AllCostDelivery); - case ChannelType.UnreliableFragmentedSequenced: - return config.AddChannel(QosType.UnreliableFragmentedSequenced); - case ChannelType.ReliableFragmentedSequenced: - return config.AddChannel(QosType.ReliableFragmentedSequenced); - } - return 0; - } - - public object GetSettings() - { - NetworkTransport.Init(); - return new ConnectionConfig() - { - SendDelay = 0 - }; - } - - public void Connect(string address, int port, object settings, out byte error) - { - serverHostId = RelayTransport.AddHost(new HostTopology((ConnectionConfig)settings, 1), false); - serverConnectionId = RelayTransport.Connect(serverHostId, address, port, 0, out error); - } - } -} - -#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member diff --git a/MLAPI/Data/Transports/UNET/TransportHost.cs b/MLAPI/Data/Transports/UNET/TransportHost.cs deleted file mode 100644 index 50cafa0a30..0000000000 --- a/MLAPI/Data/Transports/UNET/TransportHost.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; - -namespace MLAPI.Transports.UNET -{ - /// - /// Represents a Transport host - /// - [Serializable] - public class TransportHost - { - /// - /// The name of the host - /// - public string Name = Guid.NewGuid().ToString().Replace("-", ""); - /// - /// The port the host should listen to - /// - public int Port = 7777; - /// - /// If true, the socket will listen on TCP-Websockets, otherwise UDP - /// - public bool Websockets = false; - } -} diff --git a/MLAPI/Data/Transports/UNET/UnetTransport.cs b/MLAPI/Data/Transports/UNET/UnetTransport.cs index d36432cc7e..c29da7f5e9 100644 --- a/MLAPI/Data/Transports/UNET/UnetTransport.cs +++ b/MLAPI/Data/Transports/UNET/UnetTransport.cs @@ -1,79 +1,113 @@ -#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member +#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member using System; using System.Collections.Generic; +using MLAPI.Logging; using UnityEngine.Networking; namespace MLAPI.Transports.UNET { - [Serializable] - public class UnetTransport : IUDPTransport + public class UnetTransport : Transport { - private WeakReference temporaryBufferReference; + // Inspector / settings + public int MessageBufferSize = 1024 * 5; + public int MaxConnections = 100; + + public string ConnectAddress = "127.0.0.1"; + public int ConnectPort = 7777; + public int ServerListenPort = 7777; + public int ServerWebsocketListenPort = 8887; + public bool SupportWebsocket = false; + public List Channels = new List(); - public ChannelType InternalChannel => ChannelType.ReliableFragmentedSequenced; - public uint ServerClientId => new NetId(0, 0, true).GetClientId(); - public int serverConnectionId; - public int serverHostId; - public static readonly List ServerTransports = new List() - { - new TransportHost() - { - Name = "UDP Socket", - Port = 7777, - Websockets = false - } - }; + + // Relay + public bool UseMLAPIRelay = false; + public string MLAPIRelayAddress = "184.72.104.138"; + public int MLAPIRelayPort = 8888; + + // Runtime / state + private byte[] messageBuffer; + private WeakReference temporaryBufferReference; - public int Connect(string address, int port, object settings, bool websocket, out byte error) - { - NetworkTransport.Init(); - int hostId = NetworkTransport.AddHost((HostTopology)settings); - return NetworkTransport.Connect(hostId, address, port, 0, out error); - } + // Lookup / translation + private readonly Dictionary channelNameToId = new Dictionary(); + private readonly Dictionary channelIdToName = new Dictionary(); + private int serverConnectionId; + private int serverHostId; - public void DisconnectClient(uint clientId) + public override ulong ServerClientId => GetMLAPIClientId(0, 0, true); + + public override void Send(ulong clientId, ArraySegment data, string channelName, bool skipQueue) { - NetId netId = new NetId(clientId); - if (netId.IsServer()) - return; - NetworkTransport.Disconnect(netId.HostId, netId.ConnectionId, out byte error); - } + UpdateRelay(); + + GetUnetConnectionDetails(clientId, out byte hostId, out ushort connectionId); + + int channelId = channelNameToId[channelName]; - public void DisconnectFromServer() => NetworkTransport.Disconnect(serverHostId, serverConnectionId, out byte error); + byte[] buffer; - public int GetCurrentRTT(uint clientId, out byte error) - { - NetId netId = new NetId(clientId); - if (netId.IsServer()) - { - netId.ConnectionId = (ushort)serverConnectionId; - netId.HostId = (byte)serverHostId; - } - return NetworkTransport.GetCurrentRTT(netId.HostId, netId.ConnectionId, out error); - } + if (data.Offset > 0) + { + // UNET cant handle this, do a copy - public int GetNetworkTimestamp() => NetworkTransport.GetNetworkTimestamp(); + if (messageBuffer.Length >= data.Count) + { + buffer = messageBuffer; + } + else + { + if (temporaryBufferReference != null && temporaryBufferReference.IsAlive && ((byte[]) temporaryBufferReference.Target).Length >= data.Count) + { + buffer = (byte[])temporaryBufferReference.Target; + } + else + { + buffer = new byte[data.Count]; + temporaryBufferReference = new WeakReference(buffer); + } + } + + Buffer.BlockCopy(data.Array, data.Offset, buffer, 0, data.Count); + } + else + { + buffer = data.Array; + } - public int GetRemoteDelayTimeMS(uint clientId, int remoteTimestamp, out byte error) - { - NetId netId = new NetId(clientId); - if (netId.IsServer()) + if (skipQueue) + { + RelayTransport.Send(hostId, connectionId, channelId, buffer, data.Count, out byte error); + } + else { - netId.ConnectionId = (ushort)serverConnectionId; - netId.HostId = (byte)serverHostId; + RelayTransport.QueueMessageForSending(hostId, connectionId, channelId, buffer, data.Count, out byte error); } - return NetworkTransport.GetRemoteDelayTimeMS(netId.HostId, netId.ConnectionId, remoteTimestamp, out error); } - public NetEventType PollReceive(out uint clientId, out int channelId, ref byte[] data, int bufferSize, out int receivedSize, out byte error) + public override void FlushSendQueue(ulong clientId) + { + UpdateRelay(); + + GetUnetConnectionDetails(clientId, out byte hostId, out ushort connectionId); + + RelayTransport.SendQueuedMessages(hostId, connectionId, out byte error); + } + + public override NetEventType PollEvent(out ulong clientId, out string channelName, out ArraySegment payload) { - NetworkEventType eventType = NetworkTransport.Receive(out int hostId, out int connectionId, out channelId, data, bufferSize, out receivedSize, out byte err); - clientId = new NetId((byte)hostId, (ushort)connectionId, false).GetClientId(); - NetworkError errorType = (NetworkError)err; + UpdateRelay(); + + NetworkEventType eventType = RelayTransport.Receive(out int hostId, out int connectionId, out int channelId, messageBuffer, messageBuffer.Length, out int receivedSize, out byte error); + + clientId = GetMLAPIClientId((byte) hostId, (ushort) connectionId, false); - if (errorType == NetworkError.MessageToLong) + NetworkError networkError = (NetworkError) error; + + if (networkError == NetworkError.MessageToLong) { byte[] tempBuffer; + if (temporaryBufferReference != null && temporaryBufferReference.IsAlive && ((byte[]) temporaryBufferReference.Target).Length >= receivedSize) { tempBuffer = (byte[])temporaryBufferReference.Target; @@ -84,18 +118,24 @@ public NetEventType PollReceive(out uint clientId, out int channelId, ref byte[] temporaryBufferReference = new WeakReference(tempBuffer); } - eventType = NetworkTransport.Receive(out hostId, out connectionId, out channelId, tempBuffer, tempBuffer.Length, out receivedSize, out err); - data = tempBuffer; + eventType = RelayTransport.Receive(out hostId, out connectionId, out channelId, tempBuffer, tempBuffer.Length, out receivedSize, out error); + payload = new ArraySegment(tempBuffer, 0, receivedSize); + } + else + { + payload = new ArraySegment(messageBuffer, 0, receivedSize); } - errorType = (NetworkError)err; - clientId = new NetId((byte)hostId, (ushort)connectionId, false).GetClientId(); + channelName = channelIdToName[channelId]; - if (errorType == NetworkError.Timeout) - eventType = NetworkEventType.DisconnectEvent; //In UNET. Timeouts are not disconnects. We have to translate that here. - error = 0; - //Translate NetworkEventType to NetEventType + if (networkError == NetworkError.Timeout) + { + // In UNET. Timeouts are not disconnects. We have to translate that here. + eventType = NetworkEventType.DisconnectEvent; + } + + // Translate NetworkEventType to NetEventType switch (eventType) { case NetworkEventType.DataEvent: @@ -109,52 +149,134 @@ public NetEventType PollReceive(out uint clientId, out int channelId, ref byte[] case NetworkEventType.BroadcastEvent: return NetEventType.Nothing; } + return NetEventType.Nothing; } - public void QueueMessageForSending(uint clientId, byte[] dataBuffer, int dataSize, int channelId, bool skipqueue, out byte error) + public override void StartClient() { - NetId netId = new NetId(clientId); - if (netId.IsServer()) + UpdateRelay(); + + serverHostId = RelayTransport.AddHost(new HostTopology(GetConfig(), 1), false); + + serverConnectionId = RelayTransport.Connect(serverHostId, ConnectAddress, ConnectPort, 0, out byte error); + } + + public override void StartServer() + { + UpdateRelay(); + + HostTopology topology = new HostTopology(GetConfig(), MaxConnections); + + if (SupportWebsocket) { - netId.ConnectionId = (ushort)serverConnectionId; - netId.HostId = (byte)serverHostId; + if (!UseMLAPIRelay) + { + int websocketHostId = NetworkTransport.AddWebsocketHost(topology, ServerWebsocketListenPort); + } + else + { + if (LogHelper.CurrentLogLevel <= LogLevel.Error) LogHelper.LogError("Cannot create websocket host when using MLAPI relay"); + } + } + + int normalHostId = RelayTransport.AddHost(topology, ServerListenPort, true); + } + + public override void DisconnectRemoteClient(ulong clientId) + { + UpdateRelay(); + + GetUnetConnectionDetails(clientId, out byte hostId, out ushort connectionId); - if (skipqueue) - NetworkTransport.Send(netId.HostId, netId.ConnectionId, channelId, dataBuffer, dataSize, out error); + RelayTransport.Disconnect((int) hostId, (int) connectionId, out byte error); + } + + public override void DisconnectLocalClient() + { + UpdateRelay(); + + RelayTransport.Disconnect(serverHostId, serverConnectionId, out byte error); + } + + public override ulong GetCurrentRtt(ulong clientId) + { + GetUnetConnectionDetails(clientId, out byte hostId, out ushort connectionId); + + if (UseMLAPIRelay) + { + return 0; + } else - NetworkTransport.QueueMessageForSending(netId.HostId, netId.ConnectionId, channelId, dataBuffer, dataSize, out error); + { + return (ulong)NetworkTransport.GetCurrentRTT((int) hostId, (int) connectionId, out byte error); + } } - public void Shutdown() => NetworkTransport.Shutdown(); + public override void Shutdown() + { + NetworkTransport.Shutdown(); + } - public void SendQueue(uint clientId, out byte error) + public override void Init() + { + messageBuffer = new byte[MessageBufferSize]; + + NetworkTransport.Init(); + } + + public ulong GetMLAPIClientId(byte hostId, ushort connectionId, bool isServer) { - NetId netId = new NetId(clientId); - if (netId.IsServer()) + if (isServer) { - netId.ConnectionId = (ushort)serverConnectionId; - netId.HostId = (byte)serverHostId; + return 0; + } + else + { + return ((ulong)connectionId | (ulong)hostId << 16) + 1; } - NetworkTransport.SendQueuedMessages(netId.HostId, netId.ConnectionId, out error); } - public void RegisterServerListenSocket(object settings) + public void GetUnetConnectionDetails(ulong clientId, out byte hostId, out ushort connectionId) { - HostTopology topology = new HostTopology((ConnectionConfig)settings, NetworkingManager.Singleton.NetworkConfig.MaxConnections); - for (int i = 0; i < ServerTransports.Count; i++) + if (clientId == 0) { - if (ServerTransports[i].Websockets) - NetworkTransport.AddWebsocketHost(topology, ServerTransports[i].Port); - else - NetworkTransport.AddHost(topology, ServerTransports[i].Port); + hostId = (byte)serverHostId; + connectionId = (ushort)serverConnectionId; + } + else + { + hostId = (byte) ((clientId - 1) >> 16); + connectionId = (ushort) ((clientId - 1)); } } - public int AddChannel(ChannelType type, object settings) + public ConnectionConfig GetConfig() + { + ConnectionConfig config = new ConnectionConfig(); + + for (int i = 0; i < MLAPI_CHANNELS.Length; i++) + { + int channelId = AddChannel(MLAPI_CHANNELS[i].Type, config); + + channelIdToName.Add(channelId, MLAPI_CHANNELS[i].Name); + channelNameToId.Add(MLAPI_CHANNELS[i].Name, channelId); + } + + for (int i = 0; i < Channels.Count; i++) + { + int channelId = AddChannel(Channels[i].Type, config); + + channelIdToName.Add(channelId, Channels[i].Name); + channelNameToId.Add(Channels[i].Name, channelId); + } + + return config; + } + + public int AddChannel(ChannelType type, ConnectionConfig config) { - ConnectionConfig config = (ConnectionConfig)settings; switch (type) { case ChannelType.Unreliable: @@ -183,20 +305,12 @@ public int AddChannel(ChannelType type, object settings) return 0; } - public object GetSettings() - { - NetworkTransport.Init(); - return new ConnectionConfig() - { - SendDelay = 0 - }; - } - - public void Connect(string address, int port, object settings, out byte error) + private void UpdateRelay() { - serverHostId = NetworkTransport.AddHost(new HostTopology((ConnectionConfig)settings, 1)); - serverConnectionId = NetworkTransport.Connect(serverHostId, address, port, 0, out error); + RelayTransport.Enabled = UseMLAPIRelay; + RelayTransport.RelayAddress = MLAPIRelayAddress; + RelayTransport.RelayPort = (ushort)MLAPIRelayPort; } } } -#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member +#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member \ No newline at end of file diff --git a/MLAPI/MLAPI.csproj b/MLAPI/MLAPI.csproj index 13eadf01ca..ebac37675c 100644 --- a/MLAPI/MLAPI.csproj +++ b/MLAPI/MLAPI.csproj @@ -20,10 +20,4 @@ false - - - - - - \ No newline at end of file diff --git a/MLAPI/MonoBehaviours/Core/NetworkedBehaviour.RpcOverloads.cs b/MLAPI/MonoBehaviours/Core/NetworkedBehaviour.RpcOverloads.cs index dac1ce27a2..71d6f1d268 100644 --- a/MLAPI/MonoBehaviours/Core/NetworkedBehaviour.RpcOverloads.cs +++ b/MLAPI/MonoBehaviours/Core/NetworkedBehaviour.RpcOverloads.cs @@ -155,24 +155,24 @@ public abstract partial class NetworkedBehaviour : MonoBehaviour #region BOXED CLIENT RPC - public void InvokeClientRpc(string methodName, List clientIds, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security); } - public void InvokeClientRpc(RpcMethod method, List clientIds, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security); } public void InvokeClientRpcOnOwner(RpcMethod method, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security); } public void InvokeClientRpcOnOwner(string methodName, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security); } public void InvokeClientRpcOnEveryone(RpcMethod method, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -185,39 +185,39 @@ public void InvokeClientRpcOnEveryone(string methodName, string channel = null, SendClientRPCBoxed(HashMethodName(methodName), null, channel, security); } - public void InvokeClientRpcOnClient(RpcMethod method, uint clientId, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethod(method.Method), channel, security); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -227,7 +227,7 @@ public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMetho public void InvokeClientRpcOnOwner(string methodName, T1 t1, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -245,49 +245,49 @@ public void InvokeClientRpcOnEveryone(string methodName, T1 t1, string chann SendClientRPCBoxed(HashMethodName(methodName), null, channel, security, t1); } - public void InvokeClientRpcOnClient(RpcMethod method, uint clientId, T1 t1, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -297,7 +297,7 @@ public RpcResponse InvokeClientRpcOnOwner(ResponseRpcM public void InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -315,49 +315,49 @@ public void InvokeClientRpcOnEveryone(string methodName, T1 t1, T2 t2, s SendClientRPCBoxed(HashMethodName(methodName), null, channel, security, t1, t2); } - public void InvokeClientRpcOnClient(RpcMethod method, uint clientId, T1 t1, T2 t2, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -367,7 +367,7 @@ public RpcResponse InvokeClientRpcOnOwner(Response public void InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -385,49 +385,49 @@ public void InvokeClientRpcOnEveryone(string methodName, T1 t1, T2 t SendClientRPCBoxed(HashMethodName(methodName), null, channel, security, t1, t2, t3); } - public void InvokeClientRpcOnClient(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -437,7 +437,7 @@ public RpcResponse InvokeClientRpcOnOwner(Resp public void InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -455,49 +455,49 @@ public void InvokeClientRpcOnEveryone(string methodName, T1 t1, SendClientRPCBoxed(HashMethodName(methodName), null, channel, security, t1, t2, t3, t4); } - public void InvokeClientRpcOnClient(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -507,7 +507,7 @@ public RpcResponse InvokeClientRpcOnOwner( public void InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -525,49 +525,49 @@ public void InvokeClientRpcOnEveryone(string methodName, T1 SendClientRPCBoxed(HashMethodName(methodName), null, channel, security, t1, t2, t3, t4, t5); } - public void InvokeClientRpcOnClient(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -577,7 +577,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -595,49 +595,49 @@ public void InvokeClientRpcOnEveryone(string methodName, SendClientRPCBoxed(HashMethodName(methodName), null, channel, security, t1, t2, t3, t4, t5, t6); } - public void InvokeClientRpcOnClient(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -647,7 +647,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -665,49 +665,49 @@ public void InvokeClientRpcOnEveryone(string methodN SendClientRPCBoxed(HashMethodName(methodName), null, channel, security, t1, t2, t3, t4, t5, t6, t7); } - public void InvokeClientRpcOnClient(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -717,7 +717,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -735,49 +735,49 @@ public void InvokeClientRpcOnEveryone(string met SendClientRPCBoxed(HashMethodName(methodName), null, channel, security, t1, t2, t3, t4, t5, t6, t7, t8); } - public void InvokeClientRpcOnClient(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -787,7 +787,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -805,49 +805,49 @@ public void InvokeClientRpcOnEveryone(string SendClientRPCBoxed(HashMethodName(methodName), null, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9); } - public void InvokeClientRpcOnClient(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -857,7 +857,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -875,49 +875,49 @@ public void InvokeClientRpcOnEveryone(s SendClientRPCBoxed(HashMethodName(methodName), null, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10); } - public void InvokeClientRpcOnClient(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -927,7 +927,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -945,49 +945,49 @@ public void InvokeClientRpcOnEveryone(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -997,7 +997,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1015,49 +1015,49 @@ public void InvokeClientRpcOnEveryone(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1067,7 +1067,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1085,49 +1085,49 @@ public void InvokeClientRpcOnEveryone(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1137,7 +1137,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1155,49 +1155,49 @@ public void InvokeClientRpcOnEveryone(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1207,7 +1207,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1225,49 +1225,49 @@ public void InvokeClientRpcOnEveryone(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1277,7 +1277,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1295,49 +1295,49 @@ public void InvokeClientRpcOnEveryone(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1347,7 +1347,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1365,49 +1365,49 @@ public void InvokeClientRpcOnEveryone(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1417,7 +1417,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1435,49 +1435,49 @@ public void InvokeClientRpcOnEveryone(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1487,7 +1487,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1505,49 +1505,49 @@ public void InvokeClientRpcOnEveryone(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1557,7 +1557,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1575,49 +1575,49 @@ public void InvokeClientRpcOnEveryone(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1627,7 +1627,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1645,49 +1645,49 @@ public void InvokeClientRpcOnEveryone(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1697,7 +1697,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1715,49 +1715,49 @@ public void InvokeClientRpcOnEveryone(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1767,7 +1767,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1785,49 +1785,49 @@ public void InvokeClientRpcOnEveryone(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1837,7 +1837,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1855,49 +1855,49 @@ public void InvokeClientRpcOnEveryone(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1907,7 +1907,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1925,49 +1925,49 @@ public void InvokeClientRpcOnEveryone(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1977,7 +1977,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -1995,49 +1995,49 @@ public void InvokeClientRpcOnEveryone(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -2047,7 +2047,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -2065,49 +2065,49 @@ public void InvokeClientRpcOnEveryone(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -2117,7 +2117,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -2135,49 +2135,49 @@ public void InvokeClientRpcOnEveryone(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -2187,7 +2187,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -2205,49 +2205,49 @@ public void InvokeClientRpcOnEveryone(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -2257,7 +2257,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -2275,49 +2275,49 @@ public void InvokeClientRpcOnEveryone(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -2327,7 +2327,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -2345,49 +2345,49 @@ public void InvokeClientRpcOnEveryone(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31); } - public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, T32 t32, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, T32 t32, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethodName(methodName), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32); } - public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, T32 t32, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcMethod method, List clientIds, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, T32 t32, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCBoxed(HashMethod(method.Method), clientIds, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32); } public void InvokeClientRpcOnOwner(RpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, T32 t32, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32); + SendClientRPCBoxedToClient(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32); } public RpcResponse InvokeClientRpcOnOwner(ResponseRpcMethod method, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, T32 t32, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -2397,7 +2397,7 @@ public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, T32 t32, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32); + SendClientRPCBoxedToClient(HashMethodName(methodName), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32); } public RpcResponse InvokeClientRpcOnOwner(string methodName, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, T32 t32, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) @@ -2415,34 +2415,34 @@ public void InvokeClientRpcOnEveryone(RpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, T32 t32, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, T32 t32, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32); + SendClientRPCBoxedToClient(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32); } - public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, T32 t32, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(ResponseRpcMethod method, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, T32 t32, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethod(method.Method), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32); } - public void InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, T32 t32, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, T32 t32, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32); + SendClientRPCBoxedToClient(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32); } - public RpcResponse InvokeClientRpcOnClient(string methodName, uint clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, T32 t32, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public RpcResponse InvokeClientRpcOnClient(string methodName, ulong clientId, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, T32 t32, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { return SendClientRPCBoxedResponse(HashMethodName(methodName), clientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32); } - public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, T32 t32, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcMethod method, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, T32 t32, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethod(method.Method), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32); + SendClientRPCBoxedToEveryoneExcept(HashMethod(method.Method), OwnerClientId, channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32); } - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, T32 t32, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8, T9 t9, T10 t10, T11 t11, T12 t12, T13 t13, T14 t14, T15 t15, T16 t16, T17 t17, T18 t18, T19 t19, T20 t20, T21 t21, T22 t22, T23 t23, T24 t24, T25 t25, T26 t26, T27 t27, T28 t28, T29 t29, T30 t30, T31 t31, T32 t32, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { - SendClientRPCBoxed(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32); + SendClientRPCBoxedToEveryoneExcept(clientIdToIgnore, HashMethodName(methodName), channel, security, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32); } #endregion @@ -3113,7 +3113,7 @@ public RpcResponse InvokeServerRpc clientIds, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(RpcDelegate method, List clientIds, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCPerformance(HashMethod(method.Method), clientIds, stream, channel, security); } @@ -3123,7 +3123,7 @@ public void InvokeClientRpcOnOwner(RpcDelegate method, Stream stream, string cha SendClientRPCPerformance(HashMethod(method.Method), OwnerClientId, stream, channel, security); } [Obsolete("Use InvokeClientRpcOnClientPerformance instead")] - public void InvokeClientRpcOnClient(RpcDelegate method, uint clientId, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(RpcDelegate method, ulong clientId, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCPerformance(HashMethod(method.Method), clientId, stream, channel, security); } @@ -3133,17 +3133,17 @@ public void InvokeClientRpcOnEveryone(RpcDelegate method, Stream stream, string SendClientRPCPerformance(HashMethod(method.Method), null, stream, channel, security); } [Obsolete("Use InvokeClientRpcOnEveryoneExceptPerformance instead")] - public void InvokeClientRpcOnEveryoneExcept(RpcDelegate method, uint clientIdToIgnore, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(RpcDelegate method, ulong clientIdToIgnore, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCPerformance(HashMethod(method.Method), stream, clientIdToIgnore, channel, security); } [Obsolete("Use InvokeClientRpcPerformance instead")] - public void InvokeClientRpc(string methodName, List clientIds, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpc(string methodName, List clientIds, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCPerformance(HashMethodName(methodName), clientIds, stream, channel, security); } [Obsolete("Use InvokeClientRpcOnClientPerformance instead")] - public void InvokeClientRpcOnClient(string methodName, uint clientId, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClient(string methodName, ulong clientId, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCPerformance(HashMethodName(methodName), clientId, stream, channel, security); } @@ -3158,11 +3158,11 @@ public void InvokeClientRpcOnEveryone(string methodName, Stream stream, string c SendClientRPCPerformance(HashMethodName(methodName), null, stream, channel, security); } [Obsolete("Use InvokeClientRpcOnEveryoneExceptPerformance instead")] - public void InvokeClientRpcOnEveryoneExcept(string methodName, uint clientIdToIgnore, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExcept(string methodName, ulong clientIdToIgnore, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCPerformance(HashMethodName(methodName), stream, clientIdToIgnore, channel, security); } - public void InvokeClientRpcPerformance(RpcDelegate method, List clientIds, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcPerformance(RpcDelegate method, List clientIds, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCPerformance(HashMethod(method.Method), clientIds, stream, channel, security); } @@ -3170,7 +3170,7 @@ public void InvokeClientRpcOnOwnerPerformance(RpcDelegate method, Stream stream, { SendClientRPCPerformance(HashMethod(method.Method), OwnerClientId, stream, channel, security); } - public void InvokeClientRpcOnClientPerformance(RpcDelegate method, uint clientId, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClientPerformance(RpcDelegate method, ulong clientId, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCPerformance(HashMethod(method.Method), clientId, stream, channel, security); } @@ -3178,15 +3178,15 @@ public void InvokeClientRpcOnEveryonePerformance(RpcDelegate method, Stream stre { SendClientRPCPerformance(HashMethod(method.Method), null, stream, channel, security); } - public void InvokeClientRpcOnEveryoneExceptPerformance(RpcDelegate method, uint clientIdToIgnore, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExceptPerformance(RpcDelegate method, ulong clientIdToIgnore, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCPerformance(HashMethod(method.Method), stream, clientIdToIgnore, channel, security); } - public void InvokeClientRpcPerformance(string methodName, List clientIds, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcPerformance(string methodName, List clientIds, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCPerformance(HashMethodName(methodName), clientIds, stream, channel, security); } - public void InvokeClientRpcOnClientPerformance(string methodName, uint clientId, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnClientPerformance(string methodName, ulong clientId, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCPerformance(HashMethodName(methodName), clientId, stream, channel, security); } @@ -3198,7 +3198,7 @@ public void InvokeClientRpcOnEveryonePerformance(string methodName, Stream strea { SendClientRPCPerformance(HashMethodName(methodName), null, stream, channel, security); } - public void InvokeClientRpcOnEveryoneExceptPerformance(string methodName, uint clientIdToIgnore, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void InvokeClientRpcOnEveryoneExceptPerformance(string methodName, ulong clientIdToIgnore, Stream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { SendClientRPCPerformance(HashMethodName(methodName), stream, clientIdToIgnore, channel, security); } diff --git a/MLAPI/MonoBehaviours/Core/NetworkedBehaviour.cs b/MLAPI/MonoBehaviours/Core/NetworkedBehaviour.cs index 879465302c..033f7e972d 100644 --- a/MLAPI/MonoBehaviours/Core/NetworkedBehaviour.cs +++ b/MLAPI/MonoBehaviours/Core/NetworkedBehaviour.cs @@ -78,7 +78,7 @@ public abstract partial class NetworkedBehaviour : MonoBehaviour /// /// Contains the sender of the currently executing RPC. Useful for the convenience RPC methods /// - protected uint ExecutingRpcSender { get; private set; } + protected ulong ExecutingRpcSender { get; private set; } /// /// Gets the NetworkedObject that owns this NetworkedBehaviour instance /// @@ -112,7 +112,7 @@ public NetworkedObject NetworkedObject /// /// Gets the clientId that owns the NetworkedObject /// - public uint OwnerClientId => NetworkedObject.OwnerClientId; + public ulong OwnerClientId => NetworkedObject.OwnerClientId; private void OnEnable() { @@ -356,7 +356,7 @@ internal void NetworkedVarUpdate() writer.WriteUInt64Packed(NetworkId); writer.WriteUInt16Packed(NetworkedObject.GetOrderIndex(this)); - uint clientId = IsServer ? NetworkingManager.Singleton.ConnectedClientsList[i].ClientId : NetworkingManager.Singleton.ServerClientId; + ulong clientId = IsServer ? NetworkingManager.Singleton.ConnectedClientsList[i].ClientId : NetworkingManager.Singleton.ServerClientId; bool writtenAny = false; for (int k = 0; k < networkedVarFields.Count; k++) { @@ -413,7 +413,7 @@ private bool CouldHaveDirtyVars() } - internal static void HandleNetworkedVarDeltas(List networkedVarList, Stream stream, uint clientId, NetworkedBehaviour logInstance) + internal static void HandleNetworkedVarDeltas(List networkedVarList, Stream stream, ulong clientId, NetworkedBehaviour logInstance) { using (PooledBitReader reader = PooledBitReader.Get(stream)) { @@ -441,7 +441,7 @@ internal static void HandleNetworkedVarDeltas(List networkedVarLi } } - internal static void HandleNetworkedVarUpdate(List networkedVarList, Stream stream, uint clientId, NetworkedBehaviour logInstance) + internal static void HandleNetworkedVarUpdate(List networkedVarList, Stream stream, ulong clientId, NetworkedBehaviour logInstance) { using (PooledBitReader reader = PooledBitReader.Get(stream)) { @@ -468,7 +468,7 @@ internal static void HandleNetworkedVarUpdate(List networkedVarLi } } - internal static void WriteNetworkedVarData(List networkedVarList, PooledBitWriter writer, Stream stream, uint clientId) + internal static void WriteNetworkedVarData(List networkedVarList, PooledBitWriter writer, Stream stream, ulong clientId) { if (networkedVarList.Count == 0) return; @@ -596,7 +596,7 @@ private void CacheAttributes() } ParameterInfo[] parameters = methods[i].GetParameters(); - if (parameters.Length == 2 && parameters[0].ParameterType == typeof(uint) && parameters[1].ParameterType == typeof(Stream) && methods[i].ReturnType == typeof(void)) + if (parameters.Length == 2 && parameters[0].ParameterType == typeof(ulong) && parameters[1].ParameterType == typeof(Stream) && methods[i].ReturnType == typeof(void)) { //use delegate attributes[0].rpcDelegate = (RpcDelegate)Delegate.CreateDelegate(typeof(RpcDelegate), this, methods[i].Name); @@ -653,7 +653,7 @@ private void CacheAttributes() } ParameterInfo[] parameters = methods[i].GetParameters(); - if (parameters.Length == 2 && parameters[0].ParameterType == typeof(uint) && parameters[1].ParameterType == typeof(Stream) && methods[i].ReturnType == typeof(void)) + if (parameters.Length == 2 && parameters[0].ParameterType == typeof(ulong) && parameters[1].ParameterType == typeof(Stream) && methods[i].ReturnType == typeof(void)) { //use delegate attributes[0].rpcDelegate = (RpcDelegate)Delegate.CreateDelegate(typeof(RpcDelegate), this, methods[i].Name); @@ -704,7 +704,7 @@ private void CacheAttributes() } } - internal object OnRemoteServerRPC(ulong hash, uint senderClientId, Stream stream) + internal object OnRemoteServerRPC(ulong hash, ulong senderClientId, Stream stream) { if (!CachedServerRpcs.ContainsKey(this) || !CachedServerRpcs[this].ContainsKey(hash)) { @@ -715,7 +715,7 @@ internal object OnRemoteServerRPC(ulong hash, uint senderClientId, Stream stream return InvokeServerRPCLocal(hash, senderClientId, stream); } - internal object OnRemoteClientRPC(ulong hash, uint senderClientId, Stream stream) + internal object OnRemoteClientRPC(ulong hash, ulong senderClientId, Stream stream) { if (!CachedClientRpcs.ContainsKey(this) || !CachedClientRpcs[this].ContainsKey(hash)) { @@ -726,7 +726,7 @@ internal object OnRemoteClientRPC(ulong hash, uint senderClientId, Stream stream return InvokeClientRPCLocal(hash, senderClientId, stream); } - private object InvokeServerRPCLocal(ulong hash, uint senderClientId, Stream stream) + private object InvokeServerRPCLocal(ulong hash, ulong senderClientId, Stream stream) { if (!CachedServerRpcs.ContainsKey(this) || !CachedServerRpcs[this].ContainsKey(hash)) return null; @@ -783,7 +783,7 @@ private object InvokeServerRPCLocal(ulong hash, uint senderClientId, Stream stre } } - private object InvokeClientRPCLocal(ulong hash, uint senderClientId, Stream stream) + private object InvokeClientRPCLocal(ulong hash, ulong senderClientId, Stream stream) { if (!CachedClientRpcs.ContainsKey(this) || !CachedClientRpcs[this].ContainsKey(hash)) return null; @@ -861,7 +861,7 @@ internal RpcResponse SendServerRPCBoxedResponse(ulong hash, string channel } } - internal void SendClientRPCBoxed(ulong hash, uint clientId, string channel, SecuritySendFlags security, params object[] parameters) + internal void SendClientRPCBoxedToClient(ulong hash, ulong clientId, string channel, SecuritySendFlags security, params object[] parameters) { using (PooledBitStream stream = PooledBitStream.Get()) { @@ -876,7 +876,7 @@ internal void SendClientRPCBoxed(ulong hash, uint clientId, string channel, Secu } } - internal RpcResponse SendClientRPCBoxedResponse(ulong hash, uint clientId, string channel, SecuritySendFlags security, params object[] parameters) + internal RpcResponse SendClientRPCBoxedResponse(ulong hash, ulong clientId, string channel, SecuritySendFlags security, params object[] parameters) { using (PooledBitStream stream = PooledBitStream.Get()) { @@ -892,7 +892,7 @@ internal RpcResponse SendClientRPCBoxedResponse(ulong hash, uint clientId, } } - internal void SendClientRPCBoxed(ulong hash, List clientIds, string channel, SecuritySendFlags security, params object[] parameters) + internal void SendClientRPCBoxed(ulong hash, List clientIds, string channel, SecuritySendFlags security, params object[] parameters) { using (PooledBitStream stream = PooledBitStream.Get()) { @@ -907,7 +907,7 @@ internal void SendClientRPCBoxed(ulong hash, List clientIds, string channe } } - internal void SendClientRPCBoxed(uint clientIdToIgnore, ulong hash, string channel, SecuritySendFlags security, params object[] parameters) + internal void SendClientRPCBoxedToEveryoneExcept(ulong clientIdToIgnore, ulong hash, string channel, SecuritySendFlags security, params object[] parameters) { using (PooledBitStream stream = PooledBitStream.Get()) { @@ -1013,7 +1013,7 @@ internal RpcResponse SendServerRPCPerformanceResponse(ulong hash, Stream m } } - internal void SendClientRPCPerformance(ulong hash, List clientIds, Stream messageStream, string channel, SecuritySendFlags security) + internal void SendClientRPCPerformance(ulong hash, List clientIds, Stream messageStream, string channel, SecuritySendFlags security) { if (!IsServer && IsRunning) { @@ -1078,7 +1078,7 @@ internal void SendClientRPCPerformance(ulong hash, List clientIds, Stream } } - internal void SendClientRPCPerformance(ulong hash, Stream messageStream, uint clientIdToIgnore, string channel, SecuritySendFlags security) + internal void SendClientRPCPerformance(ulong hash, Stream messageStream, ulong clientIdToIgnore, string channel, SecuritySendFlags security) { if (!IsServer && IsRunning) { @@ -1124,7 +1124,7 @@ internal void SendClientRPCPerformance(ulong hash, Stream messageStream, uint cl } } - internal void SendClientRPCPerformance(ulong hash, uint clientId, Stream messageStream, string channel, SecuritySendFlags security) + internal void SendClientRPCPerformance(ulong hash, ulong clientId, Stream messageStream, string channel, SecuritySendFlags security) { if (!IsServer && IsRunning) { @@ -1162,7 +1162,7 @@ internal void SendClientRPCPerformance(ulong hash, uint clientId, Stream message } } - internal RpcResponse SendClientRPCPerformanceResponse(ulong hash, uint clientId, Stream messageStream, string channel, SecuritySendFlags security) + internal RpcResponse SendClientRPCPerformanceResponse(ulong hash, ulong clientId, Stream messageStream, string channel, SecuritySendFlags security) { if (!IsServer && IsRunning) { diff --git a/MLAPI/MonoBehaviours/Core/NetworkedObject.cs b/MLAPI/MonoBehaviours/Core/NetworkedObject.cs index e4d25a33fd..28ea7ba00f 100644 --- a/MLAPI/MonoBehaviours/Core/NetworkedObject.cs +++ b/MLAPI/MonoBehaviours/Core/NetworkedObject.cs @@ -37,7 +37,7 @@ private void OnValidate() /// /// Gets the clientId of the owner of this NetworkedObject /// - public uint OwnerClientId + public ulong OwnerClientId { get { @@ -54,7 +54,7 @@ internal set _ownerClientId = value; } } - private uint? _ownerClientId = null; + private ulong? _ownerClientId = null; /// /// InstanceId is the id that is unique to the object and scene for a scene object when UsePrefabSync is false. @@ -135,7 +135,7 @@ internal set /// Delegate type for checking visibility /// /// The clientId to check visibility for - public delegate bool VisibilityDelegate(uint clientId); + public delegate bool VisibilityDelegate(ulong clientId); /// /// Delegate invoked when the MLAPI needs to know if the object should be visible to a client, if null it will assume true @@ -148,13 +148,13 @@ internal set /// public bool DontDestroyWithOwner; - internal readonly HashSet observers = new HashSet(); + internal readonly HashSet observers = new HashSet(); /// /// Returns Observers enumerator /// /// Observers enumerator - public HashSet.Enumerator GetObservers() + public HashSet.Enumerator GetObservers() { return observers.GetEnumerator(); } @@ -164,7 +164,7 @@ public HashSet.Enumerator GetObservers() /// /// The clientId of the client /// True if the client knows about the object - public bool IsNetworkVisibleTo(uint clientId) + public bool IsNetworkVisibleTo(ulong clientId) { return observers.Contains(clientId); } @@ -174,7 +174,7 @@ public bool IsNetworkVisibleTo(uint clientId) /// /// The client to show the object to /// An optional payload to send as part of the spawn - public void NetworkShow(uint clientId, Stream payload = null) + public void NetworkShow(ulong clientId, Stream payload = null) { if (!NetworkingManager.Singleton.IsServer) { @@ -195,7 +195,7 @@ public void NetworkShow(uint clientId, Stream payload = null) /// Hides a object from a specific client /// /// The client to hide the object for - public void NetworkHide(uint clientId) + public void NetworkHide(ulong clientId) { if (!NetworkingManager.Singleton.IsServer) { @@ -261,7 +261,7 @@ public void UnSpawn() /// The clientId to own the object /// The writer containing the spawn payload /// Should the object be destroyd when the scene is changed - public void SpawnWithOwnership(uint clientId, Stream spawnPayload = null, bool destroyWithScene = false) + public void SpawnWithOwnership(ulong clientId, Stream spawnPayload = null, bool destroyWithScene = false) { if (spawnPayload != null) spawnPayload.Position = 0; @@ -283,7 +283,7 @@ public void SpawnWithOwnership(uint clientId, Stream spawnPayload = null, bool d /// The clientId whos player object this is /// The writer containing the spawn payload /// Should the object be destroyd when the scene is changed - public void SpawnAsPlayerObject(uint clientId, Stream spawnPayload = null, bool destroyWithScene = false) + public void SpawnAsPlayerObject(ulong clientId, Stream spawnPayload = null, bool destroyWithScene = false) { if (spawnPayload != null) spawnPayload.Position = 0; @@ -310,7 +310,7 @@ public void RemoveOwnership() /// Changes the owner of the object. Can only be called from server /// /// The new owner clientId - public void ChangeOwnership(uint newOwnerClientId) + public void ChangeOwnership(ulong newOwnerClientId) { SpawnManager.ChangeOwnership(NetworkId, newOwnerClientId); } @@ -379,7 +379,7 @@ internal static void NetworkedBehaviourUpdate() } } - internal void WriteNetworkedVarData(Stream stream, uint clientId) + internal void WriteNetworkedVarData(Stream stream, ulong clientId) { using (PooledBitWriter writer = PooledBitWriter.Get(stream)) { diff --git a/MLAPI/MonoBehaviours/Core/NetworkingManager.cs b/MLAPI/MonoBehaviours/Core/NetworkingManager.cs index fefd6399f5..0663d0bc2b 100644 --- a/MLAPI/MonoBehaviours/Core/NetworkingManager.cs +++ b/MLAPI/MonoBehaviours/Core/NetworkingManager.cs @@ -62,11 +62,11 @@ public class NetworkingManager : MonoBehaviour /// /// Gets the networkId of the server /// - public uint ServerClientId => NetworkConfig.NetworkTransport != null ? NetworkConfig.NetworkTransport.ServerClientId : 0; + public ulong ServerClientId => NetworkConfig.NetworkTransport != null ? NetworkConfig.NetworkTransport.ServerClientId : throw new NullReferenceException("The transport in the active NetworkConfig is null"); /// /// The clientId the server calls the local client by, only valid for clients /// - public uint LocalClientId + public ulong LocalClientId { get { @@ -78,11 +78,11 @@ internal set localClientId = value; } } - private uint localClientId; + private ulong localClientId; /// /// Gets a dictionary of connected clients and their clientId keys /// - public readonly Dictionary ConnectedClients = new Dictionary(); + public readonly Dictionary ConnectedClients = new Dictionary(); /// /// Gets a list of connected clients /// @@ -90,7 +90,7 @@ internal set /// /// Gets a dictionary of the clients that have been accepted by the transport but are still pending by the MLAPI. /// - public readonly Dictionary PendingClients = new Dictionary(); + public readonly Dictionary PendingClients = new Dictionary(); /// /// Gets wheter or not a server is running /// @@ -127,7 +127,6 @@ internal set /// Gets wheter or not we are listening for connections /// public bool IsListening { get; internal set; } - private byte[] messageBuffer; /// /// Gets if we are connected as a client /// @@ -140,11 +139,11 @@ internal set /// /// The callback to invoke once a client connects /// - public Action OnClientConnectedCallback = null; + public Action OnClientConnectedCallback = null; /// /// The callback to invoke when a client disconnects /// - public Action OnClientDisconnectCallback = null; + public Action OnClientDisconnectCallback = null; /// /// The callback to invoke once the server is ready /// @@ -157,21 +156,22 @@ internal set /// Wheter or not the client was approved /// The position to spawn the client at /// The rotation to spawn the client with - public delegate void ConnectionApprovedDelegate(uint clientId, ulong? prefabHash, bool approved, Vector3? position, Quaternion? rotation); + public delegate void ConnectionApprovedDelegate(ulong clientId, ulong? prefabHash, bool approved, Vector3? position, Quaternion? rotation); /// /// The callback to invoke during connection approval /// - public Action ConnectionApprovalCallback = null; + public Action ConnectionApprovalCallback = null; /// /// The current NetworkingConfiguration /// + [HideInInspector] public NetworkConfig NetworkConfig; /// /// Delegate used for incoming custom messages /// /// The clientId that sent the message /// The stream containing the message data - public delegate void CustomMessageDelegete(uint clientId, Stream stream); + public delegate void CustomMessageDelegete(ulong clientId, Stream stream); /// /// Event invoked when custom messages arrive /// @@ -183,7 +183,7 @@ internal set internal byte[] clientAesKey; internal static event Action OnSingletonReady; - internal void InvokeOnIncomingCustomMessage(uint clientId, Stream stream) + internal void InvokeOnIncomingCustomMessage(ulong clientId, Stream stream) { if (OnIncomingCustomMessage != null) OnIncomingCustomMessage(clientId, stream); } @@ -225,7 +225,7 @@ public void SendCustomMessage(List clientIds, BitStream stream, string cha /// The message stream containing the data /// The channel tos end the data on /// The security settings to apply to the message - public void SendCustomMessage(uint clientId, BitStream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) + public void SendCustomMessage(ulong clientId, BitStream stream, string channel = null, SecuritySendFlags security = SecuritySendFlags.None) { InternalMessageHandler.Send(clientId, MLAPIConstants.MLAPI_CUSTOM_MESSAGE, string.IsNullOrEmpty(channel) ? "MLAPI_DEFAULT_MESSAGE" : channel, stream, security, null); } @@ -267,9 +267,10 @@ private void OnValidate() else NetworkConfig.PlayerPrefabHash = NetworkConfig.NetworkedPrefabs.Find(x => x.PlayerPrefab == true).Hash; } - private object Init(bool server) + private void Init(bool server) { if (LogHelper.CurrentLogLevel <= LogLevel.Developer) LogHelper.LogInfo("Init()"); + LocalClientId = 0; NetworkTime = 0f; lastSendTickTime = 0f; @@ -279,11 +280,8 @@ private object Init(bool server) PendingClients.Clear(); ConnectedClients.Clear(); ConnectedClientsList.Clear(); - messageBuffer = new byte[NetworkConfig.MessageBufferSize]; ResponseMessageManager.Clear(); - MessageManager.channels.Clear(); - MessageManager.reverseChannels.Clear(); SpawnManager.SpawnedObjects.Clear(); SpawnManager.SpawnedObjectsList.Clear(); SpawnManager.releasedNetworkObjectIds.Clear(); @@ -295,14 +293,32 @@ private object Init(bool server) NetworkSceneManager.sceneNameToIndex.Clear(); NetworkSceneManager.sceneSwitchProgresses.Clear(); + if (NetworkConfig.NetworkTransport == null) + { + if (LogHelper.CurrentLogLevel <= LogLevel.Error) LogHelper.LogError("No transport has been selected!"); + return; + } + try { - if (server && !string.IsNullOrEmpty(NetworkConfig.ServerBase64PfxCertificate)) + string pfx = NetworkConfig.ServerBase64PfxCertificate.Trim(); + + if (server && NetworkConfig.EnableEncryption && NetworkConfig.SignKeyExchange && !string.IsNullOrEmpty(pfx)) { - NetworkConfig.ServerX509Certificate = new X509Certificate2(Convert.FromBase64String(NetworkConfig.ServerBase64PfxCertificate)); - if (!NetworkConfig.ServerX509Certificate.HasPrivateKey) + try { - if (LogHelper.CurrentLogLevel <= LogLevel.Normal) LogHelper.LogWarning("The imported PFX file did not have a private key"); + byte[] decodedPfx = Convert.FromBase64String(pfx); + + NetworkConfig.ServerX509Certificate = new X509Certificate2(decodedPfx); + + if (!NetworkConfig.ServerX509Certificate.HasPrivateKey) + { + if (LogHelper.CurrentLogLevel <= LogLevel.Normal) LogHelper.LogWarning("The imported PFX file did not have a private key"); + } + } + catch (FormatException ex) + { + if (LogHelper.CurrentLogLevel <= LogLevel.Error) LogHelper.LogError("Parsing PFX failed: " + ex.ToString()); } } } @@ -311,72 +327,6 @@ private object Init(bool server) if (LogHelper.CurrentLogLevel <= LogLevel.Error) LogHelper.LogError("Importing of certificate failed: " + ex.ToString()); } - if (NetworkConfig.Transport == DefaultTransport.UNET) - NetworkConfig.NetworkTransport = new UnetTransport(); - else if (NetworkConfig.Transport == DefaultTransport.MLAPI_Relay) - NetworkConfig.NetworkTransport = new RelayedTransport(); - else if (NetworkConfig.Transport == DefaultTransport.Custom && NetworkConfig.NetworkTransport == null) - throw new NullReferenceException("The current NetworkTransport is null"); - - object settings = NetworkConfig.NetworkTransport.GetSettings(); //Gets a new "settings" object for the transport currently used. - - - //MLAPI channels and messageTypes - List internalChannels = new List - { - new Channel() - { - Name = "MLAPI_INTERNAL", - Type = NetworkConfig.NetworkTransport.InternalChannel - }, - new Channel() - { - Name = "MLAPI_DEFAULT_MESSAGE", - Type = ChannelType.Reliable - }, - new Channel() - { - Name = "MLAPI_POSITION_UPDATE", - Type = ChannelType.StateUpdate - }, - new Channel() - { - Name = "MLAPI_ANIMATION_UPDATE", - Type = ChannelType.ReliableSequenced - }, - new Channel() - { - Name = "MLAPI_NAV_AGENT_STATE", - Type = ChannelType.ReliableSequenced - }, - new Channel() - { - Name = "MLAPI_NAV_AGENT_CORRECTION", - Type = ChannelType.StateUpdate - }, - new Channel() - { - Name = "MLAPI_TIME_SYNC", - Type = ChannelType.Unreliable - } - }; - - HashSet channelNames = new HashSet(); - //Register internal channels - for (int i = 0; i < internalChannels.Count; i++) - { - if (channelNames.Contains(internalChannels[i].Name)) - { - if (LogHelper.CurrentLogLevel <= LogLevel.Normal) LogHelper.LogWarning("Duplicate channel name: " + NetworkConfig.Channels[i].Name); - continue; - } - - int channelId = NetworkConfig.NetworkTransport.AddChannel(internalChannels[i].Type, settings); - MessageManager.channels.Add(internalChannels[i].Name, channelId); - channelNames.Add(internalChannels[i].Name); - MessageManager.reverseChannels.Add(channelId, internalChannels[i].Name); - } - NetworkConfig.RegisteredScenes.Sort(); for (int i = 0; i < NetworkConfig.RegisteredScenes.Count; i++) @@ -387,24 +337,8 @@ private object Init(bool server) } NetworkSceneManager.SetCurrentSceneIndex(); - - //Register user channels - NetworkConfig.Channels = NetworkConfig.Channels.OrderBy(x => x.Name).ToList(); - for (int i = 0; i < NetworkConfig.Channels.Count; i++) - { - if (channelNames.Contains(NetworkConfig.Channels[i].Name)) - { - if (LogHelper.CurrentLogLevel <= LogLevel.Normal) LogHelper.LogWarning("Duplicate channel name: " + NetworkConfig.Channels[i].Name); - continue; - } - - int channelId = NetworkConfig.NetworkTransport.AddChannel(NetworkConfig.Channels[i].Type, settings); - MessageManager.channels.Add(NetworkConfig.Channels[i].Name, channelId); - channelNames.Add(NetworkConfig.Channels[i].Name); - MessageManager.reverseChannels.Add(channelId, NetworkConfig.Channels[i].Name); - } - - return settings; + + NetworkConfig.NetworkTransport.Init(); } /// @@ -427,8 +361,8 @@ public void StartServer() } } - object settings = Init(true); - NetworkConfig.NetworkTransport.RegisterServerListenSocket(settings); + Init(true); + NetworkConfig.NetworkTransport.StartServer(); IsServer = true; IsClient = false; @@ -452,10 +386,9 @@ public void StartClient() return; } - object settings = Init(false); - byte error; - ConnectedHostname = NetworkConfig.ConnectAddress; - NetworkConfig.NetworkTransport.Connect(NetworkConfig.ConnectAddress, NetworkConfig.ConnectPort, settings, out error); + Init(false); + NetworkConfig.NetworkTransport.StartClient(); + IsServer = false; IsClient = true; IsListening = true; @@ -467,21 +400,23 @@ public void StartClient() public void StopServer() { if (LogHelper.CurrentLogLevel <= LogLevel.Developer) LogHelper.LogInfo("StopServer()"); - HashSet disconnectedIds = new HashSet(); + HashSet disconnectedIds = new HashSet(); //Don't know if I have to disconnect the clients. I'm assuming the NetworkTransport does all the cleaning on shtudown. But this way the clients get a disconnect message from server (so long it does't get lost) - foreach (KeyValuePair pair in ConnectedClients) + + foreach (KeyValuePair pair in ConnectedClients) { - if(!disconnectedIds.Contains(pair.Key)) + if (!disconnectedIds.Contains(pair.Key)) { disconnectedIds.Add(pair.Key); + if (pair.Key == NetworkConfig.NetworkTransport.ServerClientId) continue; - NetworkConfig.NetworkTransport.DisconnectClient(pair.Key); + NetworkConfig.NetworkTransport.DisconnectRemoteClient(pair.Key); } } - foreach (KeyValuePair pair in PendingClients) + foreach (KeyValuePair pair in PendingClients) { if(!disconnectedIds.Contains(pair.Key)) { @@ -489,7 +424,7 @@ public void StopServer() if (pair.Key == NetworkConfig.NetworkTransport.ServerClientId) continue; - NetworkConfig.NetworkTransport.DisconnectClient(pair.Key); + NetworkConfig.NetworkTransport.DisconnectRemoteClient(pair.Key); } } @@ -516,7 +451,7 @@ public void StopClient() { if (LogHelper.CurrentLogLevel <= LogLevel.Developer) LogHelper.LogInfo("StopClient()"); IsClient = false; - NetworkConfig.NetworkTransport.DisconnectFromServer(); + NetworkConfig.NetworkTransport.DisconnectLocalClient(); IsConnectedClient = false; Shutdown(); } @@ -540,18 +475,21 @@ public void StartHost(Vector3? position = null, Quaternion? rotation = null, ulo if (LogHelper.CurrentLogLevel <= LogLevel.Normal) LogHelper.LogWarning("No ConnectionApproval callback defined. Connection approval will timeout"); } } - object settings = Init(true); - NetworkConfig.NetworkTransport.RegisterServerListenSocket(settings); + + Init(true); + NetworkConfig.NetworkTransport.StartServer(); IsServer = true; IsClient = true; IsListening = true; - uint hostClientId = NetworkConfig.NetworkTransport.ServerClientId; + ulong hostClientId = NetworkConfig.NetworkTransport.ServerClientId; + ConnectedClients.Add(hostClientId, new NetworkedClient() { ClientId = hostClientId }); + ConnectedClientsList.Add(ConnectedClients[hostClientId]); NetworkedObject netObject = SpawnManager.CreateLocalNetworkedObject(false, 0, (prefabHash == null ? NetworkConfig.PlayerPrefabHash : prefabHash.Value), position, rotation); @@ -616,18 +554,23 @@ private void Update() { if(IsListening) { - if((NetworkTime - lastSendTickTime >= (1f / NetworkConfig.SendTickrate)) || NetworkConfig.SendTickrate <= 0) + if ((NetworkTime - lastSendTickTime >= (1f / NetworkConfig.SendTickrate)) || NetworkConfig.SendTickrate <= 0) { - NetworkedObject.NetworkedBehaviourUpdate(); - foreach (KeyValuePair pair in ConnectedClients) + if (NetworkConfig.EnableNetworkedVar) { - byte error; - NetworkConfig.NetworkTransport.SendQueue(pair.Key, out error); + NetworkedObject.NetworkedBehaviourUpdate(); + } + + foreach (KeyValuePair pair in ConnectedClients) + { + NetworkConfig.NetworkTransport.FlushSendQueue(pair.Key); + if (LogHelper.CurrentLogLevel <= LogLevel.Developer) LogHelper.LogInfo("Send Pending Queue: " + pair.Key); } + lastSendTickTime = NetworkTime; } - if((NetworkTime - lastReceiveTickTime >= (1f / NetworkConfig.ReceiveTickrate)) || NetworkConfig.ReceiveTickrate <= 0) + if ((NetworkTime - lastReceiveTickTime >= (1f / NetworkConfig.ReceiveTickrate)) || NetworkConfig.ReceiveTickrate <= 0) { NetworkProfiler.StartTick(TickType.Receive); NetEventType eventType; @@ -635,17 +578,12 @@ private void Update() do { processedEvents++; - eventType = NetworkConfig.NetworkTransport.PollReceive(out uint clientId, out int channelId, ref messageBuffer, messageBuffer.Length, out int receivedSize, out byte error); + eventType = NetworkConfig.NetworkTransport.PollEvent(out ulong clientId, out string channelName, out ArraySegment payload); - if ((NetworkError)error == NetworkError.MessageToLong) - { - byte[] b = messageBuffer; - eventType = NetworkConfig.NetworkTransport.PollReceive(out clientId, out channelId, ref b, b.Length, out receivedSize, out error); - } switch (eventType) { case NetEventType.Connect: - NetworkProfiler.StartEvent(TickType.Receive, (uint)receivedSize, MessageManager.reverseChannels[channelId], "TRANSPORT_CONNECT"); + NetworkProfiler.StartEvent(TickType.Receive, (uint)payload.Count, channelName, "TRANSPORT_CONNECT"); if (IsServer) { if (LogHelper.CurrentLogLevel <= LogLevel.Developer) LogHelper.LogInfo("Client Connected"); @@ -720,9 +658,9 @@ private void Update() NetworkProfiler.EndEvent(); break; case NetEventType.Data: - if (LogHelper.CurrentLogLevel <= LogLevel.Developer) LogHelper.LogInfo($"Incoming Data From {clientId} : {receivedSize} bytes"); + if (LogHelper.CurrentLogLevel <= LogLevel.Developer) LogHelper.LogInfo($"Incoming Data From {clientId} : {payload.Count} bytes"); - HandleIncomingData(clientId, messageBuffer, channelId, receivedSize); + HandleIncomingData(clientId, channelName, payload); break; case NetEventType.Disconnect: NetworkProfiler.StartEvent(TickType.Receive, 0, "NONE", "TRANSPORT_DISCONNECT"); @@ -793,7 +731,7 @@ internal void SendConnectionRequest() } } - private IEnumerator ApprovalTimeout(uint clientId) + private IEnumerator ApprovalTimeout(ulong clientId) { float timeStarted = NetworkTime; //We yield every frame incase a pending client disconnects and someone else gets its connection id @@ -816,13 +754,14 @@ internal IEnumerator TimeOutSwitchSceneProgress(SceneSwitchProgress switchSceneP switchSceneProgress.SetTimedOut(); } - private void HandleIncomingData(uint clientId, byte[] data, int channelId, int totalSize) + private void HandleIncomingData(ulong clientId, string channelName, ArraySegment data) { if (LogHelper.CurrentLogLevel <= LogLevel.Developer) LogHelper.LogInfo("Unwrapping Data Header"); - using (BitStream inputStream = new BitStream(data)) + using (BitStream inputStream = new BitStream(data.Array)) { - inputStream.SetLength(totalSize); + inputStream.SetLength(data.Count + data.Offset); + inputStream.Position = data.Offset; using (BitStream messageStream = MessageManager.UnwrapMessage(inputStream, clientId, out byte messageType, out SecuritySendFlags security)) { @@ -838,7 +777,7 @@ private void HandleIncomingData(uint clientId, byte[] data, int channelId, int t } uint headerByteSize = (uint)Arithmetic.VarIntSize(messageType); - NetworkProfiler.StartEvent(TickType.Receive, (uint)(totalSize - headerByteSize), channelId, messageType); + NetworkProfiler.StartEvent(TickType.Receive, (uint)(data.Count - headerByteSize), channelName, messageType); if (LogHelper.CurrentLogLevel <= LogLevel.Developer) LogHelper.LogInfo("Data Header: messageType=" + messageType); @@ -856,70 +795,70 @@ private void HandleIncomingData(uint clientId, byte[] data, int channelId, int t { case MLAPIConstants.MLAPI_CONNECTION_REQUEST: if (IsServer) - InternalMessageHandler.HandleConnectionRequest(clientId, messageStream, channelId); + InternalMessageHandler.HandleConnectionRequest(clientId, messageStream); break; case MLAPIConstants.MLAPI_CONNECTION_APPROVED: if (IsClient) - InternalMessageHandler.HandleConnectionApproved(clientId, messageStream, channelId); + InternalMessageHandler.HandleConnectionApproved(clientId, messageStream); break; case MLAPIConstants.MLAPI_ADD_OBJECT: - if (IsClient) InternalMessageHandler.HandleAddObject(clientId, messageStream, channelId); + if (IsClient) InternalMessageHandler.HandleAddObject(clientId, messageStream); break; case MLAPIConstants.MLAPI_DESTROY_OBJECT: - if (IsClient) InternalMessageHandler.HandleDestroyObject(clientId, messageStream, channelId); + if (IsClient) InternalMessageHandler.HandleDestroyObject(clientId, messageStream); break; case MLAPIConstants.MLAPI_SWITCH_SCENE: - if (IsClient) InternalMessageHandler.HandleSwitchScene(clientId, messageStream, channelId); + if (IsClient) InternalMessageHandler.HandleSwitchScene(clientId, messageStream); break; case MLAPIConstants.MLAPI_CHANGE_OWNER: - if (IsClient) InternalMessageHandler.HandleChangeOwner(clientId, messageStream, channelId); + if (IsClient) InternalMessageHandler.HandleChangeOwner(clientId, messageStream); break; case MLAPIConstants.MLAPI_ADD_OBJECTS: - if (IsClient) InternalMessageHandler.HandleAddObjects(clientId, messageStream, channelId); + if (IsClient) InternalMessageHandler.HandleAddObjects(clientId, messageStream); break; case MLAPIConstants.MLAPI_TIME_SYNC: - if (IsClient) InternalMessageHandler.HandleTimeSync(clientId, messageStream, channelId); + if (IsClient) InternalMessageHandler.HandleTimeSync(clientId, messageStream); break; case MLAPIConstants.MLAPI_NETWORKED_VAR_DELTA: - InternalMessageHandler.HandleNetworkedVarDelta(clientId, messageStream, channelId); + InternalMessageHandler.HandleNetworkedVarDelta(clientId, messageStream); break; case MLAPIConstants.MLAPI_NETWORKED_VAR_UPDATE: - InternalMessageHandler.HandleNetworkedVarUpdate(clientId, messageStream, channelId); + InternalMessageHandler.HandleNetworkedVarUpdate(clientId, messageStream); break; case MLAPIConstants.MLAPI_SERVER_RPC: - if (IsServer) InternalMessageHandler.HandleServerRPC(clientId, messageStream, channelId); + if (IsServer) InternalMessageHandler.HandleServerRPC(clientId, messageStream); break; case MLAPIConstants.MLAPI_SERVER_RPC_REQUEST: - if (IsServer) InternalMessageHandler.HandleServerRPCRequest(clientId, messageStream, channelId, security); + if (IsServer) InternalMessageHandler.HandleServerRPCRequest(clientId, messageStream, channelName, security); break; case MLAPIConstants.MLAPI_SERVER_RPC_RESPONSE: - if (IsClient) InternalMessageHandler.HandleServerRPCResponse(clientId, messageStream, channelId); + if (IsClient) InternalMessageHandler.HandleServerRPCResponse(clientId, messageStream); break; case MLAPIConstants.MLAPI_CLIENT_RPC: - if (IsClient) InternalMessageHandler.HandleClientRPC(clientId, messageStream, channelId); + if (IsClient) InternalMessageHandler.HandleClientRPC(clientId, messageStream); break; case MLAPIConstants.MLAPI_CLIENT_RPC_REQUEST: - if (IsClient) InternalMessageHandler.HandleClientRPCRequest(clientId, messageStream, channelId, security); + if (IsClient) InternalMessageHandler.HandleClientRPCRequest(clientId, messageStream, channelName, security); break; case MLAPIConstants.MLAPI_CLIENT_RPC_RESPONSE: - if (IsServer) InternalMessageHandler.HandleClientRPCResponse(clientId, messageStream, channelId); + if (IsServer) InternalMessageHandler.HandleClientRPCResponse(clientId, messageStream); break; case MLAPIConstants.MLAPI_CUSTOM_MESSAGE: - InternalMessageHandler.HandleCustomMessage(clientId, messageStream, channelId); + InternalMessageHandler.HandleCustomMessage(clientId, messageStream); break; #if !DISABLE_CRYPTOGRAPHY case MLAPIConstants.MLAPI_CERTIFICATE_HAIL: - if (IsClient) InternalMessageHandler.HandleHailRequest(clientId, messageStream, channelId); + if (IsClient) InternalMessageHandler.HandleHailRequest(clientId, messageStream); break; case MLAPIConstants.MLAPI_CERTIFICATE_HAIL_RESPONSE: - if (IsServer) InternalMessageHandler.HandleHailResponse(clientId, messageStream, channelId); + if (IsServer) InternalMessageHandler.HandleHailResponse(clientId, messageStream); break; case MLAPIConstants.MLAPI_GREETINGS: - if (IsClient) InternalMessageHandler.HandleGreetings(clientId, messageStream, channelId); + if (IsClient) InternalMessageHandler.HandleGreetings(clientId, messageStream); break; #endif case MLAPIConstants.MLAPI_CLIENT_SWITCH_SCENE_COMPLETED: - if (IsServer) InternalMessageHandler.HandleClientSwitchSceneCompleted(clientId, messageStream, channelId); + if (IsServer) InternalMessageHandler.HandleClientSwitchSceneCompleted(clientId, messageStream); break; default: if (LogHelper.CurrentLogLevel <= LogLevel.Error) LogHelper.LogError("Read unrecognized messageType " + messageType); @@ -933,7 +872,7 @@ private void HandleIncomingData(uint clientId, byte[] data, int channelId, int t } } - internal void DisconnectClient(uint clientId) + internal void DisconnectClient(ulong clientId) { if (!IsServer) return; @@ -950,10 +889,10 @@ internal void DisconnectClient(uint clientId) ConnectedClientsList.RemoveAt(i); } - NetworkConfig.NetworkTransport.DisconnectClient(clientId); + NetworkConfig.NetworkTransport.DisconnectRemoteClient(clientId); } - internal void OnClientDisconnectFromServer(uint clientId) + internal void OnClientDisconnectFromServer(ulong clientId) { if (PendingClients.ContainsKey(clientId)) PendingClients.Remove(clientId); @@ -1026,8 +965,6 @@ private void SyncTime() using (PooledBitWriter writer = PooledBitWriter.Get(stream)) { writer.WriteSinglePacked(NetworkTime); - int timestamp = NetworkConfig.NetworkTransport.GetNetworkTimestamp(); - writer.WriteInt32Packed(timestamp); InternalMessageHandler.Send(MLAPIConstants.MLAPI_TIME_SYNC, "MLAPI_TIME_SYNC", stream, SecuritySendFlags.None, null); } } @@ -1035,7 +972,7 @@ private void SyncTime() private readonly List _observedObjects = new List(); - internal void HandleApproval(uint clientId, ulong? prefabHash, bool approved, Vector3? position, Quaternion? rotation) + internal void HandleApproval(ulong clientId, ulong? prefabHash, bool approved, Vector3? position, Quaternion? rotation) { if(approved) { @@ -1074,13 +1011,12 @@ internal void HandleApproval(uint clientId, ulong? prefabHash, bool approved, Ve { using (PooledBitWriter writer = PooledBitWriter.Get(stream)) { - writer.WriteUInt32Packed(clientId); + writer.WriteUInt64Packed(clientId); writer.WriteUInt32Packed(NetworkSceneManager.currentSceneIndex); writer.WriteByteArray(NetworkSceneManager.currentSceneSwitchProgressGuid.ToByteArray()); writer.WriteSinglePacked(NetworkTime); - writer.WriteInt32Packed(NetworkConfig.NetworkTransport.GetNetworkTimestamp()); writer.WriteUInt32Packed((uint)_observedObjects.Count); @@ -1088,7 +1024,7 @@ internal void HandleApproval(uint clientId, ulong? prefabHash, bool approved, Ve { writer.WriteBool(_observedObjects[i].IsPlayerObject); writer.WriteUInt64Packed(_observedObjects[i].NetworkId); - writer.WriteUInt32Packed(_observedObjects[i].OwnerClientId); + writer.WriteUInt64Packed(_observedObjects[i].OwnerClientId); if (NetworkConfig.UsePrefabSync) { @@ -1119,7 +1055,10 @@ internal void HandleApproval(uint clientId, ulong? prefabHash, bool approved, Ve writer.WriteSinglePacked(_observedObjects[i].transform.rotation.eulerAngles.y); writer.WriteSinglePacked(_observedObjects[i].transform.rotation.eulerAngles.z); - _observedObjects[i].WriteNetworkedVarData(stream, clientId); + if (NetworkConfig.EnableNetworkedVar) + { + _observedObjects[i].WriteNetworkedVarData(stream, clientId); + } } InternalMessageHandler.Send(clientId, MLAPIConstants.MLAPI_CONNECTION_APPROVED, "MLAPI_INTERNAL", stream, SecuritySendFlags.Encrypted | SecuritySendFlags.Authenticated, null, true); @@ -1142,7 +1081,7 @@ internal void HandleApproval(uint clientId, ulong? prefabHash, bool approved, Ve { writer.WriteBool(true); writer.WriteUInt64Packed(ConnectedClients[clientId].PlayerObject.GetComponent().NetworkId); - writer.WriteUInt32Packed(clientId); + writer.WriteUInt64Packed(clientId); if (NetworkConfig.UsePrefabSync) { @@ -1167,7 +1106,10 @@ internal void HandleApproval(uint clientId, ulong? prefabHash, bool approved, Ve writer.WriteBool(false); //No payload data - ConnectedClients[clientId].PlayerObject.GetComponent().WriteNetworkedVarData(stream, clientPair.Key); + if (NetworkConfig.EnableNetworkedVar) + { + ConnectedClients[clientId].PlayerObject.WriteNetworkedVarData(stream, clientPair.Key); + } InternalMessageHandler.Send(clientPair.Key, MLAPIConstants.MLAPI_ADD_OBJECT, "MLAPI_INTERNAL", stream, SecuritySendFlags.None, null); } @@ -1179,7 +1121,7 @@ internal void HandleApproval(uint clientId, ulong? prefabHash, bool approved, Ve if (PendingClients.ContainsKey(clientId)) PendingClients.Remove(clientId); - NetworkConfig.NetworkTransport.DisconnectClient(clientId); + NetworkConfig.NetworkTransport.DisconnectRemoteClient(clientId); } } } diff --git a/MLAPI/MonoBehaviours/Prototyping/NetworkedAnimator.cs b/MLAPI/MonoBehaviours/Prototyping/NetworkedAnimator.cs index 510e6502c1..34881daeb4 100644 --- a/MLAPI/MonoBehaviours/Prototyping/NetworkedAnimator.cs +++ b/MLAPI/MonoBehaviours/Prototyping/NetworkedAnimator.cs @@ -120,8 +120,8 @@ private void FixedUpdate() { if (EnableProximity) { - List clientsInProximity = new List(); - foreach (KeyValuePair client in NetworkingManager.Singleton.ConnectedClients) + List clientsInProximity = new List(); + foreach (KeyValuePair client in NetworkingManager.Singleton.ConnectedClients) { if (Vector3.Distance(transform.position, client.Value.PlayerObject.transform.position) <= ProximityRange) clientsInProximity.Add(client.Key); @@ -192,8 +192,8 @@ private void CheckSendRate() { if (EnableProximity) { - List clientsInProximity = new List(); - foreach (KeyValuePair client in NetworkingManager.Singleton.ConnectedClients) + List clientsInProximity = new List(); + foreach (KeyValuePair client in NetworkingManager.Singleton.ConnectedClients) { if (Vector3.Distance(transform.position, client.Value.PlayerObject.transform.position) <= ProximityRange) clientsInProximity.Add(client.Key); @@ -237,7 +237,7 @@ private void SetRecvTrackingParam(string p, int i) } [ServerRPC] - private void SubmitAnimMsg(uint clientId, Stream stream) + private void SubmitAnimMsg(ulong clientId, Stream stream) { // usually transitions will be triggered by parameters, if not, play anims directly. // NOTE: this plays "animations", not transitions, so any transitions will be skipped. @@ -245,8 +245,8 @@ private void SubmitAnimMsg(uint clientId, Stream stream) if (EnableProximity) { - List clientsInProximity = new List(); - foreach (KeyValuePair client in NetworkingManager.Singleton.ConnectedClients) + List clientsInProximity = new List(); + foreach (KeyValuePair client in NetworkingManager.Singleton.ConnectedClients) { if (Vector3.Distance(transform.position, client.Value.PlayerObject.transform.position) <= ProximityRange) clientsInProximity.Add(client.Key); @@ -260,7 +260,7 @@ private void SubmitAnimMsg(uint clientId, Stream stream) } [ClientRPC] - private void ApplyAnimMsg(uint clientId, Stream stream) + private void ApplyAnimMsg(ulong clientId, Stream stream) { using (PooledBitReader reader = PooledBitReader.Get(stream)) { @@ -275,12 +275,12 @@ private void ApplyAnimMsg(uint clientId, Stream stream) } [ServerRPC] - private void SubmitAnimParamMsg(uint clientId, Stream stream) + private void SubmitAnimParamMsg(ulong clientId, Stream stream) { if (EnableProximity) { - List clientsInProximity = new List(); - foreach (KeyValuePair client in NetworkingManager.Singleton.ConnectedClients) + List clientsInProximity = new List(); + foreach (KeyValuePair client in NetworkingManager.Singleton.ConnectedClients) { if (Vector3.Distance(transform.position, client.Value.PlayerObject.transform.position) <= ProximityRange) clientsInProximity.Add(client.Key); @@ -294,18 +294,18 @@ private void SubmitAnimParamMsg(uint clientId, Stream stream) } [ClientRPC] - private void ApplyAnimParamMsg(uint clientId, Stream stream) + private void ApplyAnimParamMsg(ulong clientId, Stream stream) { ReadParameters(stream, true); } [ServerRPC] - private void SubmitAnimTriggerMsg(uint clientId, Stream stream) + private void SubmitAnimTriggerMsg(ulong clientId, Stream stream) { if (EnableProximity) { - List clientsInProximity = new List(); - foreach (KeyValuePair client in NetworkingManager.Singleton.ConnectedClients) + List clientsInProximity = new List(); + foreach (KeyValuePair client in NetworkingManager.Singleton.ConnectedClients) { if (Vector3.Distance(transform.position, client.Value.PlayerObject.transform.position) <= ProximityRange) clientsInProximity.Add(client.Key); @@ -319,7 +319,7 @@ private void SubmitAnimTriggerMsg(uint clientId, Stream stream) } [ClientRPC] - private void ApplyAnimTriggerMsg(uint clientId, Stream stream) + private void ApplyAnimTriggerMsg(ulong clientId, Stream stream) { using (PooledBitReader reader = PooledBitReader.Get(stream)) { @@ -431,8 +431,8 @@ public void SetTrigger(int hash) { if (EnableProximity) { - List clientsInProximity = new List(); - foreach (KeyValuePair client in NetworkingManager.Singleton.ConnectedClients) + List clientsInProximity = new List(); + foreach (KeyValuePair client in NetworkingManager.Singleton.ConnectedClients) { if (Vector3.Distance(transform.position, client.Value.PlayerObject.transform.position) <= ProximityRange) clientsInProximity.Add(client.Key); diff --git a/MLAPI/MonoBehaviours/Prototyping/NetworkedNavMeshAgent.cs b/MLAPI/MonoBehaviours/Prototyping/NetworkedNavMeshAgent.cs index ff625def06..67656b66ba 100644 --- a/MLAPI/MonoBehaviours/Prototyping/NetworkedNavMeshAgent.cs +++ b/MLAPI/MonoBehaviours/Prototyping/NetworkedNavMeshAgent.cs @@ -76,8 +76,8 @@ private void Update() } else { - List proximityClients = new List(); - foreach (KeyValuePair client in NetworkingManager.Singleton.ConnectedClients) + List proximityClients = new List(); + foreach (KeyValuePair client in NetworkingManager.Singleton.ConnectedClients) { if (Vector3.Distance(client.Value.PlayerObject.transform.position, transform.position) <= ProximityRange) proximityClients.Add(client.Key); @@ -109,8 +109,8 @@ private void Update() } else { - List proximityClients = new List(); - foreach (KeyValuePair client in NetworkingManager.Singleton.ConnectedClients) + List proximityClients = new List(); + foreach (KeyValuePair client in NetworkingManager.Singleton.ConnectedClients) { if (Vector3.Distance(client.Value.PlayerObject.transform.position, transform.position) <= ProximityRange) proximityClients.Add(client.Key); @@ -124,7 +124,7 @@ private void Update() } [ClientRPC] - private void OnNavMeshStateUpdate(uint clientId, Stream stream) + private void OnNavMeshStateUpdate(ulong clientId, Stream stream) { using (PooledBitReader reader = PooledBitReader.Get(stream)) { @@ -155,7 +155,7 @@ private void OnNavMeshStateUpdate(uint clientId, Stream stream) } [ClientRPC] - private void OnNavMeshCorrectionUpdate(uint clientId, Stream stream) + private void OnNavMeshCorrectionUpdate(ulong clientId, Stream stream) { using (PooledBitReader reader = PooledBitReader.Get(stream)) { diff --git a/MLAPI/MonoBehaviours/Prototyping/NetworkedTransform.cs b/MLAPI/MonoBehaviours/Prototyping/NetworkedTransform.cs index bd47becc9a..04e431be2e 100644 --- a/MLAPI/MonoBehaviours/Prototyping/NetworkedTransform.cs +++ b/MLAPI/MonoBehaviours/Prototyping/NetworkedTransform.cs @@ -15,7 +15,7 @@ public class NetworkedTransform : NetworkedBehaviour { internal class ClientSendInfo { - public uint clientId; + public ulong clientId; public float lastSent; public Vector3? lastMissedPosition; public Quaternion? lastMissedRotation; @@ -87,7 +87,7 @@ internal class ClientSendInfo /// The curve to use to calculate the send rate /// public AnimationCurve DistanceSendrate = AnimationCurve.Constant(0, 500, 20); - private readonly Dictionary clientSendInfo = new Dictionary(); + private readonly Dictionary clientSendInfo = new Dictionary(); /// /// The delegate used to check if a move is valid @@ -195,7 +195,7 @@ private void Update() } [ClientRPC] - private void ApplyTransform(uint clientId, Stream stream) + private void ApplyTransform(ulong clientId, Stream stream) { if (!enabled) return; using (PooledBitReader reader = PooledBitReader.Get(stream)) @@ -227,12 +227,11 @@ private void ApplyTransform(uint clientId, Stream stream) } [ServerRPC] - private void SubmitTransform(uint clientId, Stream stream) + private void SubmitTransform(ulong clientId, Stream stream) { if (!enabled) return; using (PooledBitReader reader = PooledBitReader.Get(stream)) { - float xPos = reader.ReadSinglePacked(); float yPos = reader.ReadSinglePacked(); float zPos = reader.ReadSinglePacked(); diff --git a/MLAPI/NetworkingManagerComponents/Core/InternalMessageHandler.Receive.cs b/MLAPI/NetworkingManagerComponents/Core/InternalMessageHandler.Receive.cs index f597a3dbbb..9db274bb72 100644 --- a/MLAPI/NetworkingManagerComponents/Core/InternalMessageHandler.Receive.cs +++ b/MLAPI/NetworkingManagerComponents/Core/InternalMessageHandler.Receive.cs @@ -21,7 +21,7 @@ internal static partial class InternalMessageHandler { #if !DISABLE_CRYPTOGRAPHY // Runs on client - internal static void HandleHailRequest(uint clientId, Stream stream, int channelId) + internal static void HandleHailRequest(ulong clientId, Stream stream) { X509Certificate2 certificate = null; byte[] serverDiffieHellmanPublicPart = null; @@ -110,7 +110,7 @@ internal static void HandleHailRequest(uint clientId, Stream stream, int channel } // Ran on server - internal static void HandleHailResponse(uint clientId, Stream stream, int channelId) + internal static void HandleHailResponse(ulong clientId, Stream stream) { if (!NetworkingManager.Singleton.PendingClients.ContainsKey(clientId) || NetworkingManager.Singleton.PendingClients[clientId].ConnectionState != PendingClient.State.PendingHail) return; if (!NetworkingManager.Singleton.NetworkConfig.EnableEncryption) return; @@ -165,14 +165,14 @@ internal static void HandleHailResponse(uint clientId, Stream stream, int channe } } - internal static void HandleGreetings(uint clientId, Stream stream, int channelId) + internal static void HandleGreetings(ulong clientId, Stream stream) { // Server greeted us, we can now initiate our request to connect. NetworkingManager.Singleton.SendConnectionRequest(); } #endif - internal static void HandleConnectionRequest(uint clientId, Stream stream, int channelId) + internal static void HandleConnectionRequest(ulong clientId, Stream stream) { using (PooledBitReader reader = PooledBitReader.Get(stream)) { @@ -196,18 +196,18 @@ internal static void HandleConnectionRequest(uint clientId, Stream stream, int c } } - internal static void HandleConnectionApproved(uint clientId, Stream stream, int channelId) + internal static void HandleConnectionApproved(ulong clientId, Stream stream) { using (PooledBitReader reader = PooledBitReader.Get(stream)) { - NetworkingManager.Singleton.LocalClientId = reader.ReadUInt32Packed(); + NetworkingManager.Singleton.LocalClientId = reader.ReadUInt64Packed(); uint sceneIndex = reader.ReadUInt32Packed(); Guid sceneSwitchProgressGuid = new Guid(reader.ReadByteArray()); float netTime = reader.ReadSinglePacked(); - int remoteStamp = reader.ReadInt32Packed(); - int msDelay = NetworkingManager.Singleton.NetworkConfig.NetworkTransport.GetRemoteDelayTimeMS(clientId, remoteStamp, out byte error); + ulong msDelay = NetworkingManager.Singleton.NetworkConfig.NetworkTransport.GetCurrentRtt(clientId); + NetworkingManager.Singleton.NetworkTime = netTime + (msDelay / 1000f); NetworkingManager.Singleton.ConnectedClients.Add(NetworkingManager.Singleton.LocalClientId, new NetworkedClient() { ClientId = NetworkingManager.Singleton.LocalClientId }); @@ -232,7 +232,7 @@ void DelayedSpawnAction(Stream continuationStream) { bool isPlayerObject = continuationReader.ReadBool(); ulong networkId = continuationReader.ReadUInt64Packed(); - uint ownerId = continuationReader.ReadUInt32Packed(); + ulong ownerId = continuationReader.ReadUInt64Packed(); ulong prefabHash; ulong instanceId; @@ -302,13 +302,13 @@ void OnSceneLoadComplete() } } - internal static void HandleAddObject(uint clientId, Stream stream, int channelId) + internal static void HandleAddObject(ulong clientId, Stream stream) { using (PooledBitReader reader = PooledBitReader.Get(stream)) { bool isPlayerObject = reader.ReadBool(); ulong networkId = reader.ReadUInt64Packed(); - uint ownerId = reader.ReadUInt32Packed(); + ulong ownerId = reader.ReadUInt64Packed(); ulong prefabHash; ulong instanceId; @@ -354,7 +354,7 @@ internal static void HandleAddObject(uint clientId, Stream stream, int channelId } } - internal static void HandleDestroyObject(uint clientId, Stream stream, int channelId) + internal static void HandleDestroyObject(ulong clientId, Stream stream) { using (PooledBitReader reader = PooledBitReader.Get(stream)) { @@ -363,7 +363,7 @@ internal static void HandleDestroyObject(uint clientId, Stream stream, int chann } } - internal static void HandleSwitchScene(uint clientId, Stream stream, int channelId) + internal static void HandleSwitchScene(ulong clientId, Stream stream) { using (PooledBitReader reader = PooledBitReader.Get(stream)) { @@ -378,7 +378,7 @@ internal static void HandleSwitchScene(uint clientId, Stream stream, int channel } } - internal static void HandleClientSwitchSceneCompleted(uint clientId, Stream stream, int channelId) + internal static void HandleClientSwitchSceneCompleted(ulong clientId, Stream stream) { using (PooledBitReader reader = PooledBitReader.Get(stream)) { @@ -386,12 +386,12 @@ internal static void HandleClientSwitchSceneCompleted(uint clientId, Stream stre } } - internal static void HandleChangeOwner(uint clientId, Stream stream, int channelId) + internal static void HandleChangeOwner(ulong clientId, Stream stream) { using (PooledBitReader reader = PooledBitReader.Get(stream)) { ulong networkId = reader.ReadUInt64Packed(); - uint ownerClientId = reader.ReadUInt32Packed(); + ulong ownerClientId = reader.ReadUInt64Packed(); if (SpawnManager.SpawnedObjects[networkId].OwnerClientId == NetworkingManager.Singleton.LocalClientId) { @@ -407,7 +407,7 @@ internal static void HandleChangeOwner(uint clientId, Stream stream, int channel } } - internal static void HandleAddObjects(uint clientId, Stream stream, int channelId) + internal static void HandleAddObjects(ulong clientId, Stream stream) { using (PooledBitReader reader = PooledBitReader.Get(stream)) { @@ -416,7 +416,7 @@ internal static void HandleAddObjects(uint clientId, Stream stream, int channelI { bool isPlayerObject = reader.ReadBool(); ulong networkId = reader.ReadUInt64Packed(); - uint ownerId = reader.ReadUInt32Packed(); + ulong ownerId = reader.ReadUInt64Packed(); ulong prefabHash; ulong instanceId; @@ -460,20 +460,25 @@ internal static void HandleAddObjects(uint clientId, Stream stream, int channelI } } - internal static void HandleTimeSync(uint clientId, Stream stream, int channelId) + internal static void HandleTimeSync(ulong clientId, Stream stream) { using (PooledBitReader reader = PooledBitReader.Get(stream)) { float netTime = reader.ReadSinglePacked(); - int timestamp = reader.ReadInt32Packed(); - - int msDelay = NetworkingManager.Singleton.NetworkConfig.NetworkTransport.GetRemoteDelayTimeMS(clientId, timestamp, out byte error); + ulong msDelay = NetworkingManager.Singleton.NetworkConfig.NetworkTransport.GetCurrentRtt(clientId); + NetworkingManager.Singleton.NetworkTime = netTime + (msDelay / 1000f); } } - internal static void HandleNetworkedVarDelta(uint clientId, Stream stream, int channelId) + internal static void HandleNetworkedVarDelta(ulong clientId, Stream stream) { + if (!NetworkingManager.Singleton.NetworkConfig.EnableNetworkedVar) + { + if (LogHelper.CurrentLogLevel <= LogLevel.Normal) LogHelper.LogWarning("NetworkedVar delta received but EnableNetworkedVar is false"); + return; + } + using (PooledBitReader reader = PooledBitReader.Get(stream)) { ulong networkId = reader.ReadUInt64Packed(); @@ -497,8 +502,14 @@ internal static void HandleNetworkedVarDelta(uint clientId, Stream stream, int c } } - internal static void HandleNetworkedVarUpdate(uint clientId, Stream stream, int channelId) + internal static void HandleNetworkedVarUpdate(ulong clientId, Stream stream) { + if (!NetworkingManager.Singleton.NetworkConfig.EnableNetworkedVar) + { + if (LogHelper.CurrentLogLevel <= LogLevel.Normal) LogHelper.LogWarning("NetworkedVar update received but EnableNetworkedVar is false"); + return; + } + using (PooledBitReader reader = PooledBitReader.Get(stream)) { ulong networkId = reader.ReadUInt64Packed(); @@ -522,7 +533,7 @@ internal static void HandleNetworkedVarUpdate(uint clientId, Stream stream, int } } - internal static void HandleServerRPC(uint clientId, Stream stream, int channelId) + internal static void HandleServerRPC(ulong clientId, Stream stream) { using (PooledBitReader reader = PooledBitReader.Get(stream)) { @@ -541,7 +552,7 @@ internal static void HandleServerRPC(uint clientId, Stream stream, int channelId } } - internal static void HandleServerRPCRequest(uint clientId, Stream stream, int channelId, SecuritySendFlags security) + internal static void HandleServerRPCRequest(ulong clientId, Stream stream, string channelName, SecuritySendFlags security) { using (PooledBitReader reader = PooledBitReader.Get(stream)) { @@ -565,14 +576,14 @@ internal static void HandleServerRPCRequest(uint clientId, Stream stream, int ch responseWriter.WriteObjectPacked(result); } - InternalMessageHandler.Send(clientId, MLAPIConstants.MLAPI_SERVER_RPC_RESPONSE, MessageManager.reverseChannels[channelId], responseStream, security, SpawnManager.SpawnedObjects[networkId]); + InternalMessageHandler.Send(clientId, MLAPIConstants.MLAPI_SERVER_RPC_RESPONSE, channelName, responseStream, security, SpawnManager.SpawnedObjects[networkId]); } } } } } - internal static void HandleServerRPCResponse(uint clientId, Stream stream, int channelId) + internal static void HandleServerRPCResponse(ulong clientId, Stream stream) { using (PooledBitReader reader = PooledBitReader.Get(stream)) { @@ -593,7 +604,7 @@ internal static void HandleServerRPCResponse(uint clientId, Stream stream, int c } } - internal static void HandleClientRPC(uint clientId, Stream stream, int channelId) + internal static void HandleClientRPC(ulong clientId, Stream stream) { using (PooledBitReader reader = PooledBitReader.Get(stream)) { @@ -612,7 +623,7 @@ internal static void HandleClientRPC(uint clientId, Stream stream, int channelId } } - internal static void HandleClientRPCRequest(uint clientId, Stream stream, int channelId, SecuritySendFlags security) + internal static void HandleClientRPCRequest(ulong clientId, Stream stream, string channelName, SecuritySendFlags security) { using (PooledBitReader reader = PooledBitReader.Get(stream)) { @@ -636,14 +647,14 @@ internal static void HandleClientRPCRequest(uint clientId, Stream stream, int ch responseWriter.WriteObjectPacked(result); } - InternalMessageHandler.Send(clientId, MLAPIConstants.MLAPI_CLIENT_RPC_RESPONSE, MessageManager.reverseChannels[channelId], responseStream, security, null); + InternalMessageHandler.Send(clientId, MLAPIConstants.MLAPI_CLIENT_RPC_RESPONSE, channelName, responseStream, security, null); } } } } } - internal static void HandleClientRPCResponse(uint clientId, Stream stream, int channelId) + internal static void HandleClientRPCResponse(ulong clientId, Stream stream) { using (PooledBitReader reader = PooledBitReader.Get(stream)) { @@ -664,7 +675,7 @@ internal static void HandleClientRPCResponse(uint clientId, Stream stream, int c } } - internal static void HandleCustomMessage(uint clientId, Stream stream, int channelId) + internal static void HandleCustomMessage(ulong clientId, Stream stream) { NetworkingManager.Singleton.InvokeOnIncomingCustomMessage(clientId, stream); } diff --git a/MLAPI/NetworkingManagerComponents/Core/InternalMessageHandler.Send.cs b/MLAPI/NetworkingManagerComponents/Core/InternalMessageHandler.Send.cs index 0e59a7e808..dd1689f583 100644 --- a/MLAPI/NetworkingManagerComponents/Core/InternalMessageHandler.Send.cs +++ b/MLAPI/NetworkingManagerComponents/Core/InternalMessageHandler.Send.cs @@ -1,13 +1,15 @@ -using MLAPI.Data; +using System; +using MLAPI.Data; using MLAPI.Logging; using MLAPI.Profiling; -using MLAPI.Serialization; +using UnityEngine; +using BitStream = MLAPI.Serialization.BitStream; namespace MLAPI.Internal { internal static partial class InternalMessageHandler { - internal static void Send(uint clientId, byte messageType, string channelName, BitStream messageStream, SecuritySendFlags flags, NetworkedObject targetObject, bool skipQueue = false) + internal static void Send(ulong clientId, byte messageType, string channelName, BitStream messageStream, SecuritySendFlags flags, NetworkedObject targetObject, bool skipQueue = false) { messageStream.PadStream(); @@ -23,11 +25,9 @@ internal static void Send(uint clientId, byte messageType, string channelName, B using (BitStream stream = MessageManager.WrapMessage(messageType, clientId, messageStream, flags)) { NetworkProfiler.StartEvent(TickType.Send, (uint)stream.Length, channelName, MLAPIConstants.MESSAGE_NAMES[messageType]); - byte error; - if (skipQueue) - NetworkingManager.Singleton.NetworkConfig.NetworkTransport.QueueMessageForSending(clientId, stream.GetBuffer(), (int)stream.Length, MessageManager.channels[channelName], true, out error); - else - NetworkingManager.Singleton.NetworkConfig.NetworkTransport.QueueMessageForSending(clientId, stream.GetBuffer(), (int)stream.Length, MessageManager.channels[channelName], false, out error); + + NetworkingManager.Singleton.NetworkConfig.NetworkTransport.Send(clientId, new ArraySegment(stream.GetBuffer(), 0, (int)stream.Length), channelName, skipQueue); + NetworkProfiler.EndEvent(); } } @@ -62,15 +62,14 @@ internal static void Send(byte messageType, string channelName, BitStream messag continue; } - byte error; - NetworkingManager.Singleton.NetworkConfig.NetworkTransport.QueueMessageForSending(NetworkingManager.Singleton.ConnectedClientsList[i].ClientId, stream.GetBuffer(), (int)stream.Length, MessageManager.channels[channelName], false, out error); + NetworkingManager.Singleton.NetworkConfig.NetworkTransport.Send(NetworkingManager.Singleton.ConnectedClientsList[i].ClientId, new ArraySegment(stream.GetBuffer(), 0, (int)stream.Length), channelName, false); } NetworkProfiler.EndEvent(); } } } - internal static void Send(byte messageType, string channelName, uint clientIdToIgnore, BitStream messageStream, SecuritySendFlags flags, NetworkedObject targetObject) + internal static void Send(byte messageType, string channelName, ulong clientIdToIgnore, BitStream messageStream, SecuritySendFlags flags, NetworkedObject targetObject) { bool encrypted = ((flags & SecuritySendFlags.Encrypted) == SecuritySendFlags.Encrypted) && NetworkingManager.Singleton.NetworkConfig.EnableEncryption; bool authenticated = ((flags & SecuritySendFlags.Authenticated) == SecuritySendFlags.Authenticated) && NetworkingManager.Singleton.NetworkConfig.EnableEncryption; @@ -104,8 +103,7 @@ internal static void Send(byte messageType, string channelName, uint clientIdToI continue; } - byte error; - NetworkingManager.Singleton.NetworkConfig.NetworkTransport.QueueMessageForSending(NetworkingManager.Singleton.ConnectedClientsList[i].ClientId, stream.GetBuffer(), (int)stream.Length, MessageManager.channels[channelName], false, out error); + NetworkingManager.Singleton.NetworkConfig.NetworkTransport.Send(NetworkingManager.Singleton.ConnectedClientsList[i].ClientId, new ArraySegment(stream.GetBuffer(), 0, (int)stream.Length), channelName, false); } NetworkProfiler.EndEvent(); } diff --git a/MLAPI/NetworkingManagerComponents/Core/LagCompensationManager.cs b/MLAPI/NetworkingManagerComponents/Core/LagCompensationManager.cs index 780ff4788b..ea216d1013 100644 --- a/MLAPI/NetworkingManagerComponents/Core/LagCompensationManager.cs +++ b/MLAPI/NetworkingManagerComponents/Core/LagCompensationManager.cs @@ -39,21 +39,20 @@ public static void Simulate(float secondsAgo, Action action) } } - private static byte error = 0; /// /// Turns time back a given amount of seconds, invokes an action and turns it back. The time is based on the estimated RTT of a clientId /// /// The clientId's RTT to use /// The action to invoke when time is turned back - public static void Simulate(uint clientId, Action action) + public static void Simulate(ulong clientId, Action action) { if (!NetworkingManager.Singleton.IsServer) { if (LogHelper.CurrentLogLevel <= LogLevel.Normal) LogHelper.LogWarning("Lag compensation simulations are only to be ran on the server"); return; } - float milisecondsDelay = NetworkingManager.Singleton.NetworkConfig.NetworkTransport.GetCurrentRTT(clientId, out error) / 2f; - Simulate(milisecondsDelay * 1000f, action); + float millisecondsDelay = NetworkingManager.Singleton.NetworkConfig.NetworkTransport.GetCurrentRtt(clientId) / 2f; + Simulate(millisecondsDelay * 1000f, action); } internal static void AddFrames() diff --git a/MLAPI/NetworkingManagerComponents/Core/MessageManager.cs b/MLAPI/NetworkingManagerComponents/Core/MessageManager.cs index 53e6528fda..14a7162608 100644 --- a/MLAPI/NetworkingManagerComponents/Core/MessageManager.cs +++ b/MLAPI/NetworkingManagerComponents/Core/MessageManager.cs @@ -14,24 +14,21 @@ namespace MLAPI.Internal { internal static class MessageManager { - internal static readonly Dictionary channels = new Dictionary(); - internal static readonly Dictionary reverseChannels = new Dictionary(); - private static readonly byte[] IV_BUFFER = new byte[16]; private static readonly byte[] HMAC_BUFFER = new byte[32]; private static readonly byte[] HMAC_PLACEHOLDER = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // This method is responsible for unwrapping a message, that is extracting the messagebody. // Could include decrypting and/or authentication. - internal static BitStream UnwrapMessage(BitStream inputStream, uint clientId, out byte messageType, out SecuritySendFlags security) - { + internal static BitStream UnwrapMessage(BitStream inputStream, ulong clientId, out byte messageType, out SecuritySendFlags security) + { using (PooledBitReader inputHeaderReader = PooledBitReader.Get(inputStream)) { try { if (inputStream.Length < 1) { - if (LogHelper.CurrentLogLevel <= LogLevel.Normal) LogHelper.LogError("The incomming message was too small"); + if (LogHelper.CurrentLogLevel <= LogLevel.Normal) LogHelper.LogError("The incoming message was too small"); messageType = MLAPIConstants.INVALID; security = SecuritySendFlags.None; return null; @@ -137,7 +134,7 @@ internal static BitStream UnwrapMessage(BitStream inputStream, uint clientId, ou if (outputStream.Length == 0) { - if (LogHelper.CurrentLogLevel <= LogLevel.Normal) LogHelper.LogError("The incomming message was too small"); + if (LogHelper.CurrentLogLevel <= LogLevel.Normal) LogHelper.LogError("The incoming message was too small"); messageType = MLAPIConstants.INVALID; return null; } @@ -152,7 +149,7 @@ internal static BitStream UnwrapMessage(BitStream inputStream, uint clientId, ou { if (inputStream.Length - inputStream.Position <= 0) { - if (LogHelper.CurrentLogLevel <= LogLevel.Normal) LogHelper.LogError("The incomming message was too small"); + if (LogHelper.CurrentLogLevel <= LogLevel.Normal) LogHelper.LogError("The incoming message was too small"); messageType = MLAPIConstants.INVALID; return null; } @@ -184,7 +181,7 @@ internal static BitStream UnwrapMessage(BitStream inputStream, uint clientId, ou } } - internal static BitStream WrapMessage(byte messageType, uint clientId, BitStream messageBody, SecuritySendFlags flags) + internal static BitStream WrapMessage(byte messageType, ulong clientId, BitStream messageBody, SecuritySendFlags flags) { try { diff --git a/MLAPI/NetworkingManagerComponents/Core/NetworkSceneManager.cs b/MLAPI/NetworkingManagerComponents/Core/NetworkSceneManager.cs index a44d8b8b96..990486c8e4 100644 --- a/MLAPI/NetworkingManagerComponents/Core/NetworkSceneManager.cs +++ b/MLAPI/NetworkingManagerComponents/Core/NetworkSceneManager.cs @@ -214,7 +214,7 @@ private static void OnSceneUnloadServer(AsyncOperation operation, Guid switchSce { writer.WriteBool(newSceneObjects[i].IsPlayerObject); writer.WriteUInt64Packed(newSceneObjects[i].NetworkId); - writer.WriteUInt32Packed(newSceneObjects[i].OwnerClientId); + writer.WriteUInt64Packed(newSceneObjects[i].OwnerClientId); writer.WriteUInt64Packed(newSceneObjects[i].PrefabHash); @@ -228,19 +228,25 @@ private static void OnSceneUnloadServer(AsyncOperation operation, Guid switchSce writer.WriteSinglePacked(newSceneObjects[i].transform.rotation.eulerAngles.y); writer.WriteSinglePacked(newSceneObjects[i].transform.rotation.eulerAngles.z); - newSceneObjects[i].WriteNetworkedVarData(stream, NetworkingManager.Singleton.ConnectedClientsList[j].ClientId); + if (NetworkingManager.Singleton.NetworkConfig.EnableNetworkedVar) + { + newSceneObjects[i].WriteNetworkedVarData(stream, NetworkingManager.Singleton.ConnectedClientsList[j].ClientId); + } } else { writer.WriteBool(newSceneObjects[i].IsPlayerObject); writer.WriteUInt64Packed(newSceneObjects[i].NetworkId); - writer.WriteUInt32Packed(newSceneObjects[i].OwnerClientId); + writer.WriteUInt64Packed(newSceneObjects[i].OwnerClientId); writer.WriteUInt64Packed(newSceneObjects[i].NetworkedInstanceId); writer.WriteBool(newSceneObjects[i].DestroyWithScene); - newSceneObjects[i].WriteNetworkedVarData(stream, NetworkingManager.Singleton.ConnectedClientsList[j].ClientId); + if (NetworkingManager.Singleton.NetworkConfig.EnableNetworkedVar) + { + newSceneObjects[i].WriteNetworkedVarData(stream, NetworkingManager.Singleton.ConnectedClientsList[j].ClientId); + } } } } @@ -279,7 +285,7 @@ private static void OnSceneUnloadClient(AsyncOperation operation, Guid switchSce { bool isPlayerObject = reader.ReadBool(); ulong networkId = reader.ReadUInt64Packed(); - uint owner = reader.ReadUInt32Packed(); + ulong owner = reader.ReadUInt64Packed(); ulong prefabHash = reader.ReadUInt64Packed(); @@ -307,7 +313,7 @@ private static void OnSceneUnloadClient(AsyncOperation operation, Guid switchSce { bool isPlayerObject = reader.ReadBool(); ulong networkId = reader.ReadUInt64Packed(); - uint owner = reader.ReadUInt32Packed(); + ulong owner = reader.ReadUInt64Packed(); ulong instanceId = reader.ReadUInt64Packed(); @@ -328,6 +334,8 @@ private static void OnSceneUnloadClient(AsyncOperation operation, Guid switchSce } } + // EVENT GOES HERE + isSwitching = false; if (OnSceneSwitched != null) @@ -342,7 +350,7 @@ internal static bool HasSceneMismatch(uint sceneIndex) } // Called on server - internal static void OnClientSwitchSceneCompleted(uint clientId, Guid switchSceneGuid) + internal static void OnClientSwitchSceneCompleted(ulong clientId, Guid switchSceneGuid) { if (switchSceneGuid == Guid.Empty) { @@ -358,7 +366,7 @@ internal static void OnClientSwitchSceneCompleted(uint clientId, Guid switchScen } - internal static void RemoveClientFromSceneSwitchProgresses(uint clientId) + internal static void RemoveClientFromSceneSwitchProgresses(ulong clientId) { foreach (SceneSwitchProgress switchSceneProgress in sceneSwitchProgresses.Values) switchSceneProgress.RemoveClientAsDone(clientId); diff --git a/MLAPI/NetworkingManagerComponents/Core/SpawnManager.cs b/MLAPI/NetworkingManagerComponents/Core/SpawnManager.cs index d63e53f600..70166fbd7d 100644 --- a/MLAPI/NetworkingManagerComponents/Core/SpawnManager.cs +++ b/MLAPI/NetworkingManagerComponents/Core/SpawnManager.cs @@ -159,7 +159,7 @@ public static NetworkedObject GetLocalPlayerObject() /// Returns the player object with a given clientId or null if one does not exist /// /// The player object with a given clientId or null if one does not exist - public static NetworkedObject GetPlayerObject(uint clientId) + public static NetworkedObject GetPlayerObject(ulong clientId) { if (!NetworkingManager.Singleton.ConnectedClients.ContainsKey(clientId)) return null; return NetworkingManager.Singleton.ConnectedClients[clientId].PlayerObject; @@ -186,14 +186,14 @@ internal static void RemoveOwnership(ulong networkId) using (PooledBitWriter writer = PooledBitWriter.Get(stream)) { writer.WriteUInt64Packed(networkId); - writer.WriteUInt32Packed(netObject.OwnerClientId); + writer.WriteUInt64Packed(netObject.OwnerClientId); InternalMessageHandler.Send(MLAPIConstants.MLAPI_CHANGE_OWNER, "MLAPI_INTERNAL", stream, SecuritySendFlags.None, netObject); } } } - internal static void ChangeOwnership(ulong networkId, uint clientId) + internal static void ChangeOwnership(ulong networkId, ulong clientId) { if (!NetworkingManager.Singleton.IsServer) { @@ -214,7 +214,7 @@ internal static void ChangeOwnership(ulong networkId, uint clientId) using (PooledBitWriter writer = PooledBitWriter.Get(stream)) { writer.WriteUInt64Packed(networkId); - writer.WriteUInt32Packed(clientId); + writer.WriteUInt64Packed(clientId); InternalMessageHandler.Send(MLAPIConstants.MLAPI_CHANGE_OWNER, "MLAPI_INTERNAL", stream, SecuritySendFlags.None, netObject); } @@ -255,7 +255,7 @@ internal static NetworkedObject CreateLocalNetworkedObject(bool softCreate, ulon } // Ran on both server and client - internal static void SpawnNetworkedObjectLocally(NetworkedObject netObject, ulong networkId, bool sceneObject, bool playerObject, uint ownerClientId, Stream dataStream, bool readPayload, int payloadLength, bool readNetworkedVar, bool destroyWithScene) + internal static void SpawnNetworkedObjectLocally(NetworkedObject netObject, ulong networkId, bool sceneObject, bool playerObject, ulong ownerClientId, Stream dataStream, bool readPayload, int payloadLength, bool readNetworkedVar, bool destroyWithScene) { if (netObject == null) { @@ -270,7 +270,7 @@ internal static void SpawnNetworkedObjectLocally(NetworkedObject netObject, ulon } - if (readNetworkedVar) netObject.SetNetworkedVarData(dataStream); + if (readNetworkedVar && NetworkingManager.Singleton.NetworkConfig.EnableNetworkedVar) netObject.SetNetworkedVarData(dataStream); netObject.IsSpawned = true; @@ -321,7 +321,7 @@ internal static void SpawnNetworkedObjectLocally(NetworkedObject netObject, ulon } } - internal static void SendSpawnCallForObject(uint clientId, NetworkedObject netObject, Stream payload) + internal static void SendSpawnCallForObject(ulong clientId, NetworkedObject netObject, Stream payload) { using (PooledBitStream stream = PooledBitStream.Get()) { @@ -329,7 +329,7 @@ internal static void SendSpawnCallForObject(uint clientId, NetworkedObject netOb { writer.WriteBool(netObject.IsPlayerObject); writer.WriteUInt64Packed(netObject.NetworkId); - writer.WriteUInt32Packed(netObject.OwnerClientId); + writer.WriteUInt64Packed(netObject.OwnerClientId); if (NetworkingManager.Singleton.NetworkConfig.UsePrefabSync) { @@ -366,7 +366,10 @@ internal static void SendSpawnCallForObject(uint clientId, NetworkedObject netOb writer.WriteInt32Packed((int)payload.Length); } - netObject.WriteNetworkedVarData(stream, clientId); + if (NetworkingManager.Singleton.NetworkConfig.EnableNetworkedVar) + { + netObject.WriteNetworkedVarData(stream, clientId); + } if (payload != null) stream.CopyFrom(payload); } diff --git a/MLAPI/NetworkingManagerComponents/Cryptography/CryptographyHelper.cs b/MLAPI/NetworkingManagerComponents/Cryptography/CryptographyHelper.cs index 47a38da264..c49c408767 100644 --- a/MLAPI/NetworkingManagerComponents/Cryptography/CryptographyHelper.cs +++ b/MLAPI/NetworkingManagerComponents/Cryptography/CryptographyHelper.cs @@ -40,7 +40,7 @@ public static bool VerifyCertificate(X509Certificate2 certificate, string hostna /// /// The clientId of the client whose aes key we want /// The aes key in binary - public static byte[] GetClientKey(uint clientId) + public static byte[] GetClientKey(ulong clientId) { if (NetworkingManager.Singleton.IsServer) { diff --git a/SampleTransports/LiteNetLibTransport.cs b/SampleTransports/LiteNetLibTransport.cs deleted file mode 100644 index 2f0b43031e..0000000000 --- a/SampleTransports/LiteNetLibTransport.cs +++ /dev/null @@ -1,234 +0,0 @@ -#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member -using LiteNetLib; -using LiteNetLib.Utils; -using MLAPI.MonoBehaviours.Core; -using System.Collections.Generic; - -namespace MLAPI.Data.Transports.LiteNetLib -{ - public class LiteNetLibTransport : IUDPTransport, INetEventListener - { - public ChannelType InternalChannel => ChannelType.ReliableFragmentedSequenced; - - public uint ServerNetId => (uint)serverPeer.ConnectId; - - public uint HostDummyId => uint.MaxValue - 1; - - public uint InvalidDummyId => uint.MaxValue - 2; - - private NetManager man = null; - private class LiteNetLibEvent - { - public NetEventType eventType; - public NetPeer peer; - public byte[] data; - } - private Queue pendingEvents = new Queue(); - private Dictionary connectedPeers = new Dictionary(); - private Dictionary channels = new Dictionary(); - private int channelCounter = 0; - private NetPeer serverPeer; - - public int AddChannel(ChannelType type, object settings) - { - SendOptions options = SendOptions.ReliableUnordered; - switch (type) - { - case ChannelType.Unreliable: - options = SendOptions.Unreliable; - break; - case ChannelType.UnreliableFragmented: - options = SendOptions.Unreliable; - break; - case ChannelType.UnreliableSequenced: - options = SendOptions.Sequenced; - break; - case ChannelType.Reliable: - options = SendOptions.ReliableUnordered; - break; - case ChannelType.ReliableFragmented: - options = SendOptions.ReliableUnordered; - break; - case ChannelType.ReliableSequenced: - options = SendOptions.ReliableOrdered; - break; - case ChannelType.StateUpdate: - options = SendOptions.Unreliable; - break; - case ChannelType.ReliableStateUpdate: - options = SendOptions.ReliableUnordered; - break; - case ChannelType.AllCostDelivery: - options = SendOptions.ReliableOrdered; - break; - case ChannelType.UnreliableFragmentedSequenced: - options = SendOptions.Unreliable; - break; - case ChannelType.ReliableFragmentedSequenced: - options = SendOptions.ReliableOrdered; - break; - default: - options = SendOptions.ReliableUnordered; - break; - } - channels.Add(channelCounter, options); - channelCounter++; - return channelCounter - 1; - } - - public void Connect(string address, int port, object settings, out byte error) - { - man = new NetManager(this, string.Empty); - man.Start(); - serverPeer = man.Connect(NetworkingManager.singleton.NetworkConfig.ConnectAddress, NetworkingManager.singleton.NetworkConfig.ConnectPort); - error = 0; - } - - public void DisconnectClient(uint clientId) - { - man.DisconnectPeer(connectedPeers[clientId]); - } - - public void DisconnectFromServer() - { - man.DisconnectPeer(serverPeer); - } - - public int GetCurrentRTT(uint clientId, out byte error) - { - error = 0; - return connectedPeers[clientId].Ping; - } - - public int GetNetworkTimestamp() - { - return 0; - } - - public int GetRemoteDelayTimeMS(uint clientId, int remoteTimestamp, out byte error) - { - error = 0; - return connectedPeers[clientId].Ping; - } - - public object GetSettings() - { - return null; - } - - public NetEventType PollReceive(out uint clientId, out int channelId, ref byte[] data, int bufferSize, out int receivedSize, out byte error) - { - error = 0; - man.PollEvents(); - if (pendingEvents.Count == 0) - { - receivedSize = 0; - channelId = 0; - clientId = 0; - return NetEventType.Nothing; - } - LiteNetLibEvent evnt = pendingEvents.Dequeue(); - switch (evnt.eventType) - { - case NetEventType.Data: - clientId = (uint)evnt.peer.ConnectId; - receivedSize = evnt.data.Length; - data = evnt.data; - channelId = 0; - return NetEventType.Data; - case NetEventType.Connect: - clientId = (uint)evnt.peer.ConnectId; - connectedPeers.Add(clientId, evnt.peer); - channelId = 0; - receivedSize = 0; - return NetEventType.Connect; - case NetEventType.Disconnect: - clientId = (uint)evnt.peer.ConnectId; - connectedPeers.Remove(clientId); - channelId = 0; - receivedSize = 0; - return NetEventType.Disconnect; - case NetEventType.Nothing: - receivedSize = 0; - channelId = 0; - clientId = 0; - return NetEventType.Nothing; - default: - receivedSize = 0; - channelId = 0; - clientId = 0; - return NetEventType.Nothing; - } - } - - public void QueueMessageForSending(uint clientId, ref byte[] dataBuffer, int dataSize, int channelId, bool skipQueue, out byte error) - { - error = 0; - connectedPeers[clientId].Send(dataBuffer, 0, dataSize, channels[channelId]); - } - - public void RegisterServerListenSocket(object settings) - { - man = new NetManager(this, NetworkingManager.singleton.NetworkConfig.MaxConnections, string.Empty); - man.Start(NetworkingManager.singleton.NetworkConfig.ConnectPort); - } - - public void SendQueue(uint clientId, out byte error) - { - error = 0; - return; - } - - public void Shutdown() - { - man.Stop(); - man = null; - } - - //*LITE NET LIB EVENTS BELOW*// - - public void OnPeerConnected(NetPeer peer) - { - pendingEvents.Enqueue(new LiteNetLibEvent() - { - eventType = NetEventType.Connect, - peer = peer - }); - } - - public void OnPeerDisconnected(NetPeer peer, DisconnectInfo disconnectInfo) - { - pendingEvents.Enqueue(new LiteNetLibEvent() - { - eventType = NetEventType.Disconnect, - peer = peer - }); - } - - public void OnNetworkError(NetEndPoint endPoint, int socketErrorCode) - { - return; - } - - public void OnNetworkReceive(NetPeer peer, NetDataReader reader) - { - pendingEvents.Enqueue(new LiteNetLibEvent() - { - eventType = NetEventType.Data, - peer = peer, - data = reader.Data - }); - } - - public void OnNetworkReceiveUnconnected(NetEndPoint remoteEndPoint, NetDataReader reader, UnconnectedMessageType messageType) - { - return; - } - - public void OnNetworkLatencyUpdate(NetPeer peer, int latency) - { - return; - } - } -} -#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member diff --git a/docs/_docs/advanced-topics/custom-transports.md b/docs/_docs/advanced-topics/custom-transports.md index a27b16b2eb..dcd3a08ad9 100644 --- a/docs/_docs/advanced-topics/custom-transports.md +++ b/docs/_docs/advanced-topics/custom-transports.md @@ -3,14 +3,8 @@ title: Custom Transports permalink: /wiki/custom-transports/ --- -The MLAPI supports custom transports. It uses UNET by default. You can also write custom transports. The MLAPI has a LiteNetLib transport example you can use (See the SampleTransports folder), or write your own one. - -To do so, you need a class implementing the IUDPTransport interface. The flow works like this - -GetSettings gets invoked, you can give it any object. - -if Server, RegisterServerListenSocket get's invoked and gives the settings object. +The MLAPI supports custom transports. It uses UNET by default. You can also write custom transports. A transport is the library that is responsible for sending the raw bytes and handle connections. Usually, transports doesn't support support all channel types and event types. Sometimes they have more, in that case you manually have to do translation between them. See the LiteNetLib transport for examples. -In order to use your own transport, you have to set the Transport to "Custom" and set the NetworkConfig NetworkTransport to your own transport. To get started writing transport interfaces, the current implementations for Unet and LiteNetLib are great starting points for learning their flow. If you do write a transport for a well known transport, feel free to open a PR to add it to the default supported. \ No newline at end of file +To get started writing transport interfaces, the current implementations for Unet and LiteNetLib are great starting points for learning their flow. If you do write a transport for a well known transport, feel free to open a PR to add it to the default supported. \ No newline at end of file diff --git a/docs/_docs/getting-started/connection-approval.md b/docs/_docs/getting-started/connection-approval.md index d77a687833..f7ea851752 100644 --- a/docs/_docs/getting-started/connection-approval.md +++ b/docs/_docs/getting-started/connection-approval.md @@ -13,7 +13,7 @@ private void Setup() NetworkingManager.Singleton.StartHost(); } -private void ApprovalCheck(byte[] connectionData, uint clientId, MLAPI.NetworkingManager.ConnectionApprovedDelegate callback) +private void ApprovalCheck(byte[] connectionData, ulong clientId, MLAPI.NetworkingManager.ConnectionApprovedDelegate callback) { //Your logic here bool approve = true; @@ -24,6 +24,8 @@ private void ApprovalCheck(byte[] connectionData, uint clientId, MLAPI.Networkin callback(clientId, prefabHash, approve, positionToSpawnAt, rotationToSpawnWith); } ``` + + ### Connection data The connectionData parameter is any custom data of your choice that the client should send to the server. Usually, this should be some sort of ticket, room password or similar that will decide if a connection should be approved or not. The connectionData is specified on the Client side in the NetworkingConfig supplied when connecting. Example: ```csharp @@ -32,5 +34,13 @@ NetworkingManager.Singleton.StartClient(); ``` The ConnectionData will then be passed to the server and it will decide if the client will be approved or not. -#### Security of connection data -If Encryption is enabled, the connection handshake with the buffer will be encrypted AND authenticated. (AES-256 encryption and HMAC-SHA-256 authentication). Please note that if the key exchange is not signed, a man in the middle attack can be done. \ No newline at end of file + +### Timeout +The MLAPI uses a callback system in order to allow for external validation. Forexample, you might have a steam authentication ticket sent as the ConnectionData (encrypted and authenticated by the MLAPI) that you want to validate against steams servers. This can take some time. If you don't call the callback method within the time specified in the ``ClientConnectionBufferTimeout`` configuration. The connection will be dropped. This time starts counting when the transport has told the MLAPI about the connection. This means that you cannot attack the MLAPI by never sending the buffer, it will still time you out. + + +### Security +If connection approval is enabled. Any messages sent before a connection is setup are silently ignored. + +#### Connection Data +If Encryption is enabled, the connection handshake with the buffer will be encrypted AND authenticated. (AES-256 encryption and HMAC-SHA-256 authentication). Please note that if the key exchange is not signed, a man in the middle attack can be done. If you plan on sending authentication tokens such as steam tickets. It's strongly suggested that you sign the handshake. \ No newline at end of file diff --git a/docs/_docs/getting-started/installation.md b/docs/_docs/getting-started/installation.md index 4bab1df7e7..c88418a340 100644 --- a/docs/_docs/getting-started/installation.md +++ b/docs/_docs/getting-started/installation.md @@ -18,7 +18,7 @@ The MLAPI comes with 3 main components ##### MLAPI.dll This DLL's is the runtime portion. The actual library. This file is thus **required**. It comes in two variants. A "Lite" and a normal version. Most people will do fine with the full version. The Lite version has less features. At the time of writing the only difference is that it does not include encryption which adds better support on certain platforms. Note that the lite version might not be as stable as the full version and could contain additional bugs. ##### MLAPI-Editor.unitypackage -This unitypackage includes the source files for all the Editor scripts. The UnityPackage will automatically place these source files in the Editor folder to avoid it being included in a build. **While the MLAPI will function without this, it is not designed to work without the editor part and is thus recommended for all users**. +This unitypackage includes the source files for all the Editor scripts. The UnityPackage will automatically place these source files in the Editor folder to avoid it being included in a build. **This is required**. ##### MLAPI-Installer.unitypackage This unitypackage includes the source file for the installer. This component is totally optional. The Installer can help you manage versions. If you don't want to use the installer, you can simply place the MLAPI.dll and the Editor source files in your project and it will work just as well. diff --git a/docs/_docs/getting-started/library-initialization.md b/docs/_docs/getting-started/library-initialization.md index 4a38d89c14..d4a3a16046 100644 --- a/docs/_docs/getting-started/library-initialization.md +++ b/docs/_docs/getting-started/library-initialization.md @@ -3,12 +3,14 @@ title: Library Initialization permalink: /wiki/library-initialization/ --- -Initializing the MLAPI is fairly simple. You need a GameObject with the NetworkingManager component added to it. The NetworkingManager class has a static singleton reference to itself making it easy to access from anywhere. +Initializing the MLAPI is fairly simple. You need a GameObject with the NetworkingManager component added to it. The NetworkingManager class has a static singleton reference to itself making it easy to access from anywhere. The first configuration you have to do is to set the Transport. You can read more about Transports on the "Custom Transports" page. + + To initialize the library. You have three options. ### Host mode -This mode runs a Server and a virtual Client connected to its own server. +This mode runs a Server and a virtual Client connected to its own server. The virtual client has no real network connection to the server, but instead just talk via message queues. This makes the host both a Server and a Client in the same process. Usage: ```csharp @@ -27,7 +29,7 @@ NetworkingManager.Singleton.StartClient(); ### Server mode -This mode runs a Server which other Clients can connect to. +This mode runs a Server which other Clients can connect to. It has no own client attached, and thus lack it's own player object and such. This is the "dedicated server" mode. Usage: ```csharp diff --git a/docs/_docs/the-basics/messaging-system.md b/docs/_docs/the-basics/messaging-system.md index ea2146d647..0bf47623df 100644 --- a/docs/_docs/the-basics/messaging-system.md +++ b/docs/_docs/the-basics/messaging-system.md @@ -80,7 +80,7 @@ public float MyRpcWithReturnValue(float x, float y) ``` #### Performance Example -To use the performance mode, the RPC method require the following signature ``void (uint clientId, Stream readStream)`` and the sender is required to use the non generic Stream overload. +To use the performance mode, the RPC method require the following signature ``void (ulong clientId, Stream readStream)`` and the sender is required to use the non generic Stream overload. ```csharp private void Update() @@ -115,7 +115,7 @@ private void Update() } [ServerRPC] -private void MyServerRPC(uint clientId, Stream stream) //This signature is REQUIRED for the performance mode +private void MyServerRPC(ulong clientId, Stream stream) //This signature is REQUIRED for the performance mode { using (PooledBitReader reader = PooledBitReader.Get(stream)) { @@ -126,7 +126,7 @@ private void MyServerRPC(uint clientId, Stream stream) //This signature is REQUI } [ClientRPC] -private void MyClientRPC(uint clientId, Stream stream) //This signature is REQUIRED for the performance mode +private void MyClientRPC(ulong clientId, Stream stream) //This signature is REQUIRED for the performance mode { using (PooledBitReader reader = PooledBitReader.Get(stream)) { diff --git a/docs/_docs/the-basics/networkedvar.md b/docs/_docs/the-basics/networkedvar.md index 1852e51ce5..24ba4c6a42 100644 --- a/docs/_docs/the-basics/networkedvar.md +++ b/docs/_docs/the-basics/networkedvar.md @@ -38,4 +38,4 @@ If you want values to be synced only once (at spawn), the built-in containers se ### Serialization Since the NetworkedVar class is a generic, editor serialization is NOT supported, it's only avalible through editor scripts for viewing the values. To get proper serialization. A clone of the NetworkedVar implementation has to be done for each type you wish to use. Ex: NetworkedVarInt where you replace all the usages of T with int. -The MLAPI provides a few default serializable implementations of the NetworkedVar, they are called NetworkedVar where "" is the type. \ No newline at end of file +The MLAPI provides a few default serializable implementations of the NetworkedVar, they are called NetworkedVar where "" is the type. \ No newline at end of file