public static void ReadMultiloginInfo(byte[] data, out MultiloginInfo[] infos) { using (PacketReader reader = new PacketReader(data)) { uint count = reader.ReadUInt32(); //connected clients, structs in packet infos = new MultiloginInfo[count]; for (uint i = 0; i < count; i++) { infos[i] = new MultiloginInfo(); uint ip = reader.ReadUInt32(); //ip infos[i].IP = new IPAddress(BitConverter.GetBytes(ip)); infos[i].Flags = reader.ReadUInt32(); //flags infos[i].Features = reader.ReadUInt32(); //features infos[i].LogonTime = new DateTime(1970, 1, 1) + TimeSpan.FromSeconds(reader.ReadUInt32()); //logon time infos[i].ConnectionId = reader.ReadUInt64(); //connection id reader.ReadUInt32(); // unknown uint clientNameSize = reader.ReadUInt32(); // client name size byte[] clientName = reader.ReadBytes((int)clientNameSize); //client name infos[i].ClientName = Encoding.UTF8.GetString(clientName); } reader.Close(); } }
/// <summary> /// Stwórz argumenty dla multilogowania. /// </summary> /// <param name="info">Informacje o multilogowaniu</param> public MultiloginEventArgs(MultiloginInfo info) { _info = info; }