public void update() { JSONObject appJson; try { appJson = URLHelper.getJsonFromUrl(reference.getUpdateAppUrl()); } catch (IOException | ParseException e) { log.error("Failed to get latest download link, Nincraft server down?", e); return; } val downloadUrl = (String) appJson.get("url"); val appName = URLHelper .decodeSpaces(downloadUrl.substring(downloadUrl.lastIndexOf('/') + 1, downloadUrl.length())); val updatedApp = FileSystemHelper.getDownloadedFile(appName, "."); if (updatedApp.exists()) { log.info("No new updates found"); return; } else { log.info("Update found, downloading {}", appName); } try { FileUtils.copyURLToFile(new URL(downloadUrl), updatedApp); log.info("Downloaded {}", appName); } catch (IOException e) { log.error("Failed to download update", e); } }