private static void ProcessOutgoingQueue(Packet packet) { PacketSentEvent?.Invoke(packet.GetPacket(), packet.GetLength()); PacketHandler handler = OutgoingPacketHandlers.GetHandler(packet.GetPacketID()); int length = _getPacketLength(packet.GetPacketID()); handler?.OnReceive?.Invoke(new PacketReader(packet.GetPacket(), packet.GetLength(), length > 0)); PacketWaitEntries.CheckWait(packet.GetPacket(), PacketDirection.Outgoing); }
public static void SendPacketToServer(byte[] packet, int length) { lock ( _serverSendLock ) { while (DateTime.Now < _nextPacketSendTime) { Thread.Sleep(1); } InternalPacketSentEvent?.Invoke(packet, length); PacketWaitEntries?.CheckWait(packet, PacketDirection.Outgoing, true); _sendToServer?.Invoke(ref packet, ref length); _nextPacketSendTime = DateTime.Now + PACKET_SEND_DELAY; } }
private static void ProcessOutgoingQueue(Packet packet) { try { PacketSentEvent?.Invoke(packet.GetPacket(), packet.GetLength()); PacketHandler handler = OutgoingPacketHandlers.GetHandler(packet.GetPacketID()); int length = _getPacketLength(packet.GetPacketID()); handler?.OnReceive?.Invoke(new PacketReader(packet.GetPacket(), packet.GetLength(), length > 0)); PacketWaitEntries.CheckWait(packet.GetPacket(), PacketDirection.Outgoing); } catch (Exception e) { e.ToExceptionless().SetProperty("Packet", packet.GetPacket()) .SetProperty("Player", Player.ToString()).SetProperty("WorldItemCount", Items.Count()) .SetProperty("WorldMobileCount", Mobiles.Count()).Submit(); } }