Example #1
0
        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);
        }
Example #2
0
        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;
            }
        }
Example #3
0
        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();
            }
        }