Hello guys, I made a simple download utility that you can use in your plugin, but I shall only use it for private plugins because I don't think that your plugin will get accepted if you can download a file with it. You can use my utility like this: Code:java DownloadUtil util = new DownloadUtil(this, getDataFolder(), "[url]http://dev.bukkit.org/media/files/739/931/worldedit-5.5.8.jar[/url]"); try { util.downloadFile(new File("test.jar")); } catch (IOException e) { e.printStackTrace(); } This is the utility class: Code:java import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.net.URL;import java.nio.channels.Channels;import java.nio.channels.ReadableByteChannel; import com.github.sebasju1234.resources.ResourcePlugin; public class DownloadUtil { private ResourcePlugin plugin; private File directory; private String url; /** * @param instance * @param directory * @param url */ public DownloadUtil(ResourcePlugin instance, File directory, String url) { setPlugin(instance); setDirectory(directory); setUrl(url); checkFiles(); } /** * @return */ private ResourcePlugin getPlugin() { return plugin; } /** * @param plugin */ private void setPlugin(ResourcePlugin plugin) { this.plugin = plugin; } /** * @return */ private File getDirectory() { return directory; } /** * @param directory */ private void setDirectory(File directory) { this.directory = directory; } /** * @return */ private String getUrl() { return url; } /** * @param url */ private void setUrl(String url) { this.url = url; } private void checkFiles() { if (getDirectory().exists()) { getDirectory().mkdirs(); } } /** * @param path * @throws IOException */ public void downloadFile(File path) throws IOException { if(!(path.exists())) { URL downloadUrl = new URL(getUrl()); ReadableByteChannel readableByteChannel = Channels.newChannel(downloadUrl.openStream()); FileOutputStream fileOutputStream = new FileOutputStream(path); fileOutputStream.getChannel().transferFrom(readableByteChannel, 0, Long.MAX_VALUE); plugin.getLogger().info("[DOWNLOAD] File has been download. (" + path.toString() + ")"); } } } You have to change ResourcePlugin to your plugin instance. Tips and suggestions are welcome. - Sebastiaan