public AccountSearchResults( ArrayList results ) : base( 0x05 )
{
EnsureCapacity( 1 + 2 + 2 );
m_Stream.Write( (byte)results.Count );
foreach ( Account a in results )
{
m_Stream.WriteAsciiNull( a.Username );
string pwToSend = a.PlainPassword;
if ( pwToSend == null )
pwToSend = "(hidden)";
m_Stream.WriteAsciiNull( pwToSend );
m_Stream.Write( (byte)a.AccessLevel );
m_Stream.Write( a.Banned );
unchecked { m_Stream.Write( (uint)a.LastLogin.Ticks ); } // TODO: This doesn't work, uint.MaxValue is only 7 minutes of ticks. Fix protocol.
m_Stream.Write( (ushort)a.LoginIPs.Length );
for (int i=0;i<a.LoginIPs.Length;i++)
m_Stream.WriteAsciiNull( a.LoginIPs[i].ToString() );
m_Stream.Write( (ushort)a.IPRestrictions.Length );
for (int i=0;i<a.IPRestrictions.Length;i++)
m_Stream.WriteAsciiNull( a.IPRestrictions[i] );
}
}
}