public void SendPacket(IPacket packet, PacketDeliveryMethod method) { #if DEBUG Packets.CheckRegistered(packet); #endif Server.OnLocalPacket(packet); }
public void SendPacket(IPacket packet, PacketDeliveryMethod method) { #if DEBUG LibreLancer.Packets.CheckRegistered(packet); #endif Packets.Enqueue(packet); }
public void SendPacket(IPacket packet, PacketDeliveryMethod method) { var om = new NetDataWriter(); Packets.Write(om, packet); method.ToLiteNetLib(out DeliveryMethod mt, out byte ch); client.FirstPeer?.Send(om, ch, mt); }
public void SendPacketWithEvent(IPacket packet, Action onAck, PacketDeliveryMethod method) { #if DEBUG LibreLancer.Packets.CheckRegistered(packet); #endif Packets.Enqueue(packet); onAck(); }
public void SendPacketWithEvent(IPacket packet, Action onAck, PacketDeliveryMethod method) { var m = new NetDataWriter(); m.Put((byte)1); Packets.Write(m, packet); method.ToLiteNetLib(out var mtd, out var channel); Client.SendWithDeliveryEvent(m, channel, mtd, onAck); }
public void SendMessage(PacketDeliveryMethod method, INetworkPacket packet, string accountName) { if (!_usernameToConnection.ContainsKey(accountName)) { return; } NetConnection recipient = _usernameToConnection[accountName]; NetOutgoingMessage message = _server.CreateMessage(); MemoryStream stream = new MemoryStream(); Serializer.Serialize(stream, packet); message.Write(stream.ToArray()); // This may seem redundant but I am protecting against the possibility that // Lidgren is vaporware. Should we need to swap out the network code in the future, // only this class will need to be touched. NetDeliveryMethod deliveryMethod = NetDeliveryMethod.Unreliable; switch (method) { case PacketDeliveryMethod.Unreliable: deliveryMethod = NetDeliveryMethod.Unreliable; break; case PacketDeliveryMethod.UnreliableSequenced: deliveryMethod = NetDeliveryMethod.UnreliableSequenced; break; case PacketDeliveryMethod.ReliableUnordered: deliveryMethod = NetDeliveryMethod.ReliableUnordered; break; case PacketDeliveryMethod.ReliableSequenced: deliveryMethod = NetDeliveryMethod.ReliableSequenced; break; case PacketDeliveryMethod.ReliableOrdered: deliveryMethod = NetDeliveryMethod.ReliableOrdered; break; } _server.SendMessage(message, recipient, deliveryMethod); }
public void SendPacket(IPacket packet, PacketDeliveryMethod method) { method.ToLiteNetLib(out DeliveryMethod mt, out byte ch); if (mt == DeliveryMethod.ReliableOrdered) { lock (reliableLock) { reliableSend.Enqueue(packet); } } else { var m = new NetDataWriter(); m.Put((byte)1); Packets.Write(m, packet); Client.Send(m, ch, mt); } }
public void SendMessage(PacketDeliveryMethod method, INetworkPacket packet) { if (_serverConnection == null || _serverConnection.Status != NetConnectionStatus.Connected) { throw new Exception("Client is not currently connected to a server."); } NetOutgoingMessage message = _client.CreateMessage(); MemoryStream stream = new MemoryStream(); Serializer.Serialize(stream, packet); message.Write(stream.ToArray()); // This may seem redundant but I am protecting against the possibility that // Lidgren is vaporware. Should we need to swap out the network code in the future, // only this class will need to be touched. NetDeliveryMethod deliveryMethod = NetDeliveryMethod.Unreliable; switch (method) { case PacketDeliveryMethod.Unreliable: deliveryMethod = NetDeliveryMethod.Unreliable; break; case PacketDeliveryMethod.UnreliableSequenced: deliveryMethod = NetDeliveryMethod.UnreliableSequenced; break; case PacketDeliveryMethod.ReliableUnordered: deliveryMethod = NetDeliveryMethod.ReliableUnordered; break; case PacketDeliveryMethod.ReliableSequenced: deliveryMethod = NetDeliveryMethod.ReliableSequenced; break; case PacketDeliveryMethod.ReliableOrdered: deliveryMethod = NetDeliveryMethod.ReliableOrdered; break; } _client.SendMessage(message, deliveryMethod); }
public static void ToLiteNetLib(this PacketDeliveryMethod self, out DeliveryMethod method, out byte channel) { channel = 0; method = DeliveryMethod.ReliableOrdered; if (self == PacketDeliveryMethod.SequenceA) { method = DeliveryMethod.Sequenced; channel = 0; } if (self == PacketDeliveryMethod.SequenceB) { method = DeliveryMethod.Sequenced; channel = 1; } if (self == PacketDeliveryMethod.SequenceC) { method = DeliveryMethod.Sequenced; channel = 2; } }