@@ -0,0 +1,1063 @@
+package com.github.to2mbn.jmccc.mcdownloader;%0A%0Aimport java.util.concurrent.Future;%0Aimport java.util.concurrent.RejectedExecutionException;%0Aimport com.github.to2mbn.jmccc.mcdownloader.download.concurrent.Shutdownable;%0Aimport com.github.to2mbn.jmccc.mcdownloader.download.group.MultipleDownloadCallback;%0Aimport com.github.to2mbn.jmccc.option.MinecraftDirectory;%0A%0Apublic interface MinecraftDownloader extends Shutdownable %7B%0A%0A%09/**%0A%09 * Downloads a minecraft version incrementally and asynchronously.%0A%09 * %3Cp%3E%0A%09 * This methods checks assets, libraries, game jars. And downloads the missing or broken files.%0A%09 * %0A%09 * @param dir the minecraft dir%0A%09 * @param version the version to download%0A%09 * @param callback the callback%0A%09 * @return future representing pending completion of the operation%0A%09 * @throws NullPointerException if %3Ccode%3Edir==null %7C%7C version==null%3C/code%3E%0A%09 * @throws RejectedExecutionException if the downloader has been shutdown%0A%09 */%0A%09Future%3CObject%3E downloadIncrementally(MinecraftDirectory dir, String version, MultipleDownloadCallback%3CObject%3E callback);%0A%0A%7D%0A

add MinecraftDownloader