Spigot & Bungeecord updater API which uses spiget.org to check for new versions
SpigetUpdate updater = new SpigetUpdate(this, 12345);
// This compares versions just by checking if they are equal
// This means that older versions will also be treated as updates
updater.setVersionComparator(VersionComparator.EQUAL);
// This converts a semantic version to an integer and checks if the updated version is greater
updater.setVersionComparator(VersionComparator.SEM_VER);
updater.checkForUpdate(new UpdateCallback() {
@Override
public void updateAvailable(String newVersion, String downloadUrl, boolean hasDirectDownload) {
//// A new version is available
// newVersion - the latest version
// downloadUrl - URL to the download
// hasDirectDownload - whether the update is available for a direct download on spiget.org
}
@Override
public void upToDate() {
//// Plugin is up-to-date
}
});
final SpigetUpdate updater = new SpigetUpdate(this, 12345);
updater.checkForUpdate(new UpdateCallback() {
@Override
public void updateAvailable(String newVersion, String downloadUrl, boolean hasDirectDownload) {
// First check if there is a direct download available
// (Either the resources is hosted on spigotmc.org, or Spiget has a cached version to download)
// external downloads won't work if they are disabled (by default) in spiget.properties
if (hasDirectDownload) {
if (updater.downloadUpdate()) {
// Update downloaded, will be loaded when the server restarts
} else {
// Update failed
getLogger().warning("Update download failed, reason is " + updater.getFailReason());
}
}
}
@Override
public void upToDate() {
}
});
<repositories>
<repository>
<id>inventive-repo</id>
<url>https://repo.inventivetalent.org/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.inventivetalent.spiget-update</groupId>
<artifactId>bukkit|bungee</artifactId>
<version>VERSION</version>
</dependency>
</dependencies>