@Override public void run() { try { String version = getSpigotVersion(); remoteVersion = version; if (versionCheck(version)) { result = UpdateResult.SPIGOT_UPDATE_AVAILABLE; } else { result = UpdateResult.NO_UPDATE; } } catch (Throwable ex) { if (ProtocolLibrary.getConfig().isDebug()) { ProtocolLibrary.getErrorReporter().reportDetailed( SpigotUpdater.this, Report.newBuilder(REPORT_CANNOT_UPDATE_PLUGIN).error(ex).callerParam(this)); } else { // People don't care // plugin.getLogger().log(Level.WARNING, "Failed to check for updates: " + ex); } ProtocolLibrary.disableUpdates(); } finally { // Invoke the listeners on the main thread for (Runnable listener : listeners) { plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, listener); } } } }