All source projects
MrUltimateLibrary Source
Standalone source project / 68 files
MrUltimateLibrary is the backbone of all my plugins; it offers features that facilitate plugin creation, maintenance, and updates.
java
MrUltimateLibrary/src/main/java/eu/mrneznamy/mrultimatelibrary/utils/MrLibUpdateChecker.java
JAVA · Read-only source
package eu.mrneznamy.mrultimatelibrary.utils;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.function.Consumer;
import eu.mrneznamy.mrultimatelibrary.scheduler.MrLibScheduler;
import eu.mrneznamy.mrultimatelibrary.utils.MrLibConsoleSayer;
public class MrLibUpdateChecker {
private final JavaPlugin plugin;
private final String modrinthSlug;
public MrLibUpdateChecker(JavaPlugin plugin, String modrinthSlug) {
this.plugin = plugin;
this.modrinthSlug = modrinthSlug;
}
public void fetchLatestVersion(Consumer<String> callback) {
fetchLatestVersion(plugin, modrinthSlug, callback);
}
/**
* Static method to check version of any plugin
*/
public static void fetchLatestVersion(JavaPlugin plugin, String modrinthSlug, Consumer<String> callback) {
MrLibScheduler.runTaskAsynchronously(plugin, () -> {
try {
HttpURLConnection conn = (HttpURLConnection) new URL(
"https://api.modrinth.com/v2/project/" + modrinthSlug + "/version"
).openConnection();
conn.setRequestProperty("User-Agent", plugin.getName());
conn.setConnectTimeout(3000);
conn.setReadTimeout(3000);
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line = reader.readLine();
reader.close();
if (line != null && line.contains("version_number")) {
String version = line.split("\"version_number\":\"")[1].split("\"")[0];
if (plugin.isEnabled()) {
MrLibScheduler.runTask(plugin, () -> callback.accept(version));
}
}
} catch (Exception e) {
}
});
}
public static void fetchDevVersion(JavaPlugin plugin, String modrinthSlug, Consumer<String> callback) {
callback.accept(null);
return;
/*
MrLibScheduler.runTaskAsynchronously(plugin, () -> {
try {
HttpURLConnection conn = (HttpURLConnection) new URL(
"" + modrinthSlug + "/latest-dev"
).openConnection();
conn.setRequestProperty("User-Agent", plugin.getName());
conn.setConnectTimeout(3000);
conn.setReadTimeout(3000);
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line = reader.readLine();
reader.close();
if (line != null) {
final String result;
if (line.contains("DONT-EXIST")) {
result = "DONT-EXIST";
} else {
result = line;
}
if (plugin.isEnabled()) {
MrLibScheduler.runTask(plugin, () -> callback.accept(result));
}
}
} catch (Exception e) {
if (plugin.isEnabled()) {
MrLibScheduler.runTask(plugin, () -> callback.accept("DONT-EXIST"));
}
}
});
*/
}
/**
* Check version and print to console with plugin name
*/
public static void checkAndPrintVersion(JavaPlugin plugin, String modrinthSlug) {
fetchLatestVersion(plugin, modrinthSlug, latestVersion -> {
String currentVersion = plugin.getDescription().getVersion();
eu.mrneznamy.mrultimatelibrary.MrLibRegisterPlugin.RegisteredPlugin registered =
eu.mrneznamy.mrultimatelibrary.MrLibRegisterPlugin.getPlugin(plugin.getName());
if (registered != null) {
registered.setLatestStableVersion(latestVersion);
}
java.util.Map<String, String> data = eu.mrneznamy.mrultimatelibrary.MrLibRegisterPlugin.getSharedPluginsData().get(plugin.getName());
if (data != null) {
data.put("latestStableVersion", latestVersion);
}
if (!currentVersion.equals(latestVersion)) {
} else {
}
});
fetchDevVersion(plugin, modrinthSlug, devVersion -> {
eu.mrneznamy.mrultimatelibrary.MrLibRegisterPlugin.RegisteredPlugin registered =
eu.mrneznamy.mrultimatelibrary.MrLibRegisterPlugin.getPlugin(plugin.getName());
if (registered != null) {
registered.setLatestDevVersion(devVersion);
}
java.util.Map<String, String> data = eu.mrneznamy.mrultimatelibrary.MrLibRegisterPlugin.getSharedPluginsData().get(plugin.getName());
if (data != null) {
data.put("latestDevVersion", devVersion);
}
});
}
}
149 linesGNU GENERAL PUBLIC LICENSE · Version 3, 29 June 2007 · UTF-8 · Read only