Improved: UpdateChecker
This commit is contained in:
parent
b58c4c7909
commit
7ff17301fd
3 changed files with 24 additions and 34 deletions
|
@ -1,17 +1,8 @@
|
|||
package me.tofaa.entitylib;
|
||||
|
||||
import com.github.retrooper.packetevents.PacketEventsAPI;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonParser;
|
||||
import me.tofaa.entitylib.utils.GithubUpdater;
|
||||
import org.jetbrains.annotations.Blocking;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.URL;
|
||||
|
||||
public final class APIConfig {
|
||||
|
||||
private final PacketEventsAPI<?> packetEvents;
|
||||
|
@ -27,13 +18,6 @@ public final class APIConfig {
|
|||
this.packetEvents = packetEvents;
|
||||
}
|
||||
|
||||
@Blocking
|
||||
public boolean requiresUpdate() throws IOException {
|
||||
if (!checkForUpdates) return false;
|
||||
GithubUpdater updater = new GithubUpdater("Tofaa2", "EntityLib");
|
||||
return !updater.isLatestVersion();
|
||||
}
|
||||
|
||||
public @NotNull APIConfig useBstats() {
|
||||
this.bstats = true;
|
||||
return this;
|
||||
|
|
|
@ -2,8 +2,8 @@ package me.tofaa.entitylib;
|
|||
|
||||
import me.tofaa.entitylib.utils.ELVersion;
|
||||
import me.tofaa.entitylib.utils.ELVersions;
|
||||
import me.tofaa.entitylib.utils.GithubUpdater;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Optional;
|
||||
import java.util.logging.Level;
|
||||
|
||||
|
@ -20,20 +20,11 @@ public final class EntityLib {
|
|||
api = platform.getAPI();
|
||||
|
||||
if (api.getSettings().shouldCheckForUpdate()) {
|
||||
try {
|
||||
if (api.getSettings().isDebugMode()) {
|
||||
platform.getLogger().log(Level.INFO, "Checking for updates...");
|
||||
}
|
||||
if (api.getSettings().requiresUpdate()) {
|
||||
platform.getLogger().log(Level.WARNING, "You are using an outdated version of EntityLib. Please take a look at the Github releases page.");
|
||||
}
|
||||
else {
|
||||
platform.getLogger().log(Level.INFO, "No EntityLib updates found.");
|
||||
}
|
||||
|
||||
} catch (IOException e) {
|
||||
platform.getLogger().log(Level.WARNING, e, () -> "EntityLib failed to check for updates.");
|
||||
if (api.getSettings().isDebugMode()) {
|
||||
platform.getLogger().log(Level.INFO, "Checking for updates...");
|
||||
}
|
||||
|
||||
new GithubUpdater("Tofaa2", "EntityLib").checkForUpdates();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package me.tofaa.entitylib.utils;
|
|||
|
||||
import com.github.retrooper.packetevents.util.adventure.AdventureSerializer;
|
||||
import com.google.gson.JsonObject;
|
||||
import me.tofaa.entitylib.EntityLib;
|
||||
import org.jetbrains.annotations.Blocking;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
|
@ -9,23 +10,37 @@ import java.io.IOException;
|
|||
import java.io.InputStreamReader;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public final class GithubUpdater {
|
||||
|
||||
private final String org;
|
||||
private final String repo;
|
||||
private final ELVersion currentVersion;
|
||||
private final Logger logger;
|
||||
|
||||
public GithubUpdater(String org, String repo) {
|
||||
this.org = org;
|
||||
this.repo = repo;
|
||||
this.currentVersion = ELVersions.CURRENT;
|
||||
this.logger = EntityLib.getPlatform().getLogger();
|
||||
}
|
||||
|
||||
@Blocking
|
||||
public boolean isLatestVersion() throws IOException {
|
||||
ELVersion latest = getLatestVersion();
|
||||
return currentVersion.isNewerThan(latest);
|
||||
public void checkForUpdates() {
|
||||
CompletableFuture.runAsync(() -> {
|
||||
try {
|
||||
ELVersion latestVersion = getLatestVersion();
|
||||
if (currentVersion.isOlderThan(latestVersion)) {
|
||||
logger.log(Level.WARNING, "You are using an outdated version of EntityLib. Please take a look at the Github releases page.");
|
||||
} else if (currentVersion.isNewerThan(latestVersion)) {
|
||||
logger.log(Level.INFO, "No EntityLib updates found.");
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
logger.warning("Failed to check for updates: " + ex.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Blocking
|
||||
|
|
Loading…
Reference in a new issue