package net.t2code.t2codelib.BUNGEE.api.update; import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.plugin.Plugin; import net.t2code.t2codelib.BUNGEE.system.config.T2CBlibConfig; import net.t2code.t2codelib.T2CupdateObject; import net.t2code.t2codelib.T2CupdateWebData; import org.json.JSONArray; import org.json.JSONObject; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; import java.text.SimpleDateFormat; import java.util.Date; import java.util.function.Consumer; public class T2CBupdateCheckerGit { private Plugin plugin; private int resourceId; public T2CBupdateCheckerGit(Plugin plugin, int resourceId) { this.plugin = plugin; this.resourceId = resourceId; } public void getVersion(Consumer consumer, String pluginVersion, Integer spigotID, String gitKey) { if (T2CBlibConfig.getUpdateCheckFullDisable()) return; String RepoURL = "https://git.t2code.net/api/v1/repos/" + gitKey + "/releases?limit=1"; if (!T2CBlibConfig.getSeePreReleaseUpdates()) { RepoURL = RepoURL + "&pre-release=false"; } String finalRepoURL = RepoURL; ProxyServer.getInstance().getScheduler().runAsync(this.plugin, () -> { try { URL url = new URL(finalRepoURL); URLConnection yc = url.openConnection(); BufferedReader in = new BufferedReader( new InputStreamReader( yc.getInputStream())); String inputLine; String data = ""; while ((inputLine = in.readLine()) != null) data = inputLine; in.close(); data = data.substring(1, data.length() - 1); if (data.isEmpty()) { consumer.accept(null); return; } JSONObject obj = new JSONObject(data); String UpdateName = obj.getString("name"); String tag_name = obj.getString("tag_name"); String body = obj.getString("body").replace("\n", "
").replace("\r", "").replace("'", "''"); String updateurl = obj.getString("html_url"); boolean prerelease = obj.getBoolean("prerelease"); String date = obj.getString("published_at"); SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a"); Date parsedDate = inputFormat.parse(date); String formattedDate = outputFormat.format(parsedDate); JSONArray downloadArray = obj.getJSONArray("assets"); String gitURL = updateurl; String downloadURL; if (downloadArray.isEmpty()) { downloadURL = "https://www.spigotmc.org/resources/" + spigotID; } else { downloadURL = downloadArray.getJSONObject(0).getString("browser_download_url"); } if (!prerelease) { downloadURL = "https://www.spigotmc.org/resources/" + spigotID; updateurl = "https://www.spigotmc.org/resources/" + spigotID; } T2CupdateWebData webData = new T2CupdateWebData(UpdateName, tag_name, body, updateurl, formattedDate, downloadURL, gitURL, prerelease); consumer.accept(webData); } catch (Exception var10) { Boolean load = false; if (T2CBupdateAPI.bungeePluginVersins.containsKey(plugin.getDescription().getName())) { load = T2CBupdateAPI.bungeePluginVersins.get(plugin.getDescription().getName()).load; } T2CupdateObject update = new T2CupdateObject( plugin.getDescription().getName(), pluginVersion, null, load, false, true ); T2CBupdateAPI.bungeePluginVersins.put(plugin.getDescription().getName(), update); this.plugin.getLogger().severe("ยง4 Cannot look for updates: " + var10.getMessage()); } }); } }