public PacketHeader(PacketType type, byte seqNumber, EncryptionFlag flags, int bodyLength, int sessionId, Version version)
 {
     Type       = type;
     SeqNumber  = seqNumber;
     Flags      = flags;
     BodyLength = bodyLength;
     Version    = version;
     SessionId  = sessionId;
 }
 public AuthenticationReplyPacketBody(AuthenticationStatus authStatus, EncryptionFlag flags, string serverMsg, string data)
     : this(authStatus, flags, serverMsg)
 {
     Data = data;
 }
 public AuthenticationReplyPacketBody(AuthenticationStatus authStatus, EncryptionFlag flags, string serverMsg) : this(authStatus, flags)
 {
     ServerMsg = serverMsg;
 }
 public AuthenticationReplyPacketBody(AuthenticationStatus authStatus, EncryptionFlag flags)
 {
     AuthStatus = authStatus;
     Flags      = flags;
 }
 public PacketHeader(PacketType type, byte seqNumber, EncryptionFlag flags, int bodyLength, int sessionId, byte majorVersion = 0xc, byte minorVersion = 0x0)
     : this(type, seqNumber, flags, bodyLength, new Random().Next(), new Version(majorVersion, minorVersion))
 {
 }