public void HandlePacket(EOPacketChannel channel, IPacket packet)
        {
            var handler = this.PacketHandlers.Find(p => {
                var ph = p.GetType().GetCustomAttribute <EOPacketHandler>();
                return(packet.GetHeader() == (ph.Family, ph.Action) && channel == ph.Channel);
            });

            Console.WriteLine($"[{channel}] [{packet.Family}:{packet.Action}]");

            handler?.Handle(this, packet);
        }
 public EOPacketHandler(PacketFamily family, PacketAction action, EOPacketChannel channel)
 {
     this.Family  = family;
     this.Action  = action;
     this.Channel = channel;
 }
 public void HandlePacket(EOPacketChannel channel, IEnumerable <byte> packet)
 {
     this.HandlePacket(channel, _packetProcessActions.DecodeData(packet));
 }