namespace AcDream.Core.Net.Packets; /// /// A fully-parsed AC UDP packet: 20-byte , /// variable-length section, zero or more /// , and the raw body bytes following the header /// (for callers that want to re-read parts of the login/connect payload /// without re-invoking the parser). /// /// /// Produced by on the receive path; /// passed to on the transmit path after /// callers fill in the fields they want. /// /// public sealed class Packet { public PacketHeader Header; public PacketHeaderOptional Optional { get; } = new(); public List Fragments { get; } = new(); /// /// Copy of the body bytes (everything after the 20-byte header). Useful /// for LoginRequest packets where the login payload is the body tail and /// the caller wants to extract username/password bytes directly. /// public byte[] BodyBytes { get; set; } = Array.Empty(); }