public static async Task WriteBytesLargeAsync(this SwitchConnectionAsync connection, byte[] data, uint offset, int chunkSize, CancellationToken token)
        {
            int byteCount = data.Length;

            for (int i = 0; i < byteCount; i += chunkSize)
            {
                await connection.WriteBytesAsync(SubArray(data, i, chunkSize), offset + (uint)i, token).ConfigureAwait(false);
            }
        }
        public static async Task <byte[]> ReadBytesLargeAsync(this SwitchConnectionAsync connection, uint offset, int length, int chunkSize, CancellationToken token)
        {
            List <byte> read = new List <byte>();

            for (int i = 0; i < length; i += chunkSize)
            {
                read.AddRange(await connection.ReadBytesAsync(offset + (uint)i, Math.Min(chunkSize, length - i), token).ConfigureAwait(false));
            }
            return(read.ToArray());
        }
 public DodoPositionHelper(CrossBot bot)
 {
     BotRunner  = bot;
     Connection = BotRunner.Connection;
     Config     = BotRunner.Config;
 }