using System.IO;

namespace Crysome.Common.Network.Packets.Client;

public class GetDrivesResponsePacket : IPacket
{
	public string[] Drives { get; set; }

	public long RequestId { get; set; }

	public GetDrivesResponsePacket()
	{
	}

	public GetDrivesResponsePacket(string[] drives, long requestId = 0L)
	{
		Drives = drives;
		RequestId = requestId;
	}

	public void Write(BinaryWriter w)
	{
		w.Write((Drives != null) ? Drives.Length : 0);
		if (Drives != null)
		{
			for (int i = 0; i < Drives.Length; i++)
			{
				w.Write(Drives[i] ?? "");
			}
		}
		w.Write(RequestId);
	}

	public void Read(BinaryReader r)
	{
		int num = r.ReadInt32();
		Drives = new string[num];
		for (int i = 0; i < num; i++)
		{
			Drives[i] = r.ReadString();
		}
		RequestId = ((r.BaseStream.Position < r.BaseStream.Length) ? r.ReadInt64() : 0);
	}
}
