Exemple #1
0
        public void SendMessageToIds(IEnumerable <long> uniqueIds, INetworkMessageOut message, MessageDeliveryMethod deliveryMethod, int channel)
        {
            if (_netPeer == null)
            {
                throw new NullReferenceException("NetPeer was not initialized.");
            }

            message.Encrypt();

            var connections = new List <NetConnection>(4);

            foreach (var uniqueId in uniqueIds)
            {
                for (int i = 0; i < _netPeer.Connections.Count; i++)
                {
                    var connection = _netPeer.Connections[i];
                    if (connection.RemoteUniqueIdentifier == uniqueId)
                    {
                        connections.Add(connection);
                        break;
                    }
                }
            }

            var outMessage = ((NetworkMessageOutLidgren)message).GetInternalMessage();

            try
            {
                _netPeer.SendMessage(outMessage, connections, deliveryMethod.ToDeliveryMethod(), channel);
            }
            catch
            {
                // todo: throw?
            }
        }
Exemple #2
0
        public void SendMessageToAll(INetworkMessageOut message, MessageDeliveryMethod deliveryMethod, int channel)
        {
            if (_netPeer == null)
            {
                throw new NullReferenceException("NetPeer was not initialized.");
            }

            message.Encrypt();

            var outMessage = ((NetworkMessageOutLidgren)message).GetInternalMessage();

            _netPeer.SendMessage(outMessage, _netPeer.Connections, deliveryMethod.ToDeliveryMethod(), channel);
        }
Exemple #3
0
        public void SendMessageToId(long uniqueId, INetworkMessageOut message, MessageDeliveryMethod deliveryMethod, int channel)
        {
            if (_netPeer == null)
            {
                throw new NullReferenceException("NetPeer was not initialized.");
            }

            message.Encrypt();

            var outMessage = ((NetworkMessageOutLidgren)message).GetInternalMessage();

            for (int i = 0; i < _netPeer.Connections.Count; i++)
            {
                var connection = _netPeer.Connections[i];
                if (connection.RemoteUniqueIdentifier == uniqueId)
                {
                    _netPeer.SendMessage(outMessage, connection, deliveryMethod.ToDeliveryMethod(), channel);
                    break;
                }
            }
        }