fix: update checker timeout
This commit is contained in:
		
							parent
							
								
									13a47fa743
								
							
						
					
					
						commit
						cf8ce5097f
					
				
					 3 changed files with 30 additions and 12 deletions
				
			
		|  | @ -43,7 +43,6 @@ Open an issue in the GitHub [issue tracker](https://github.com/Pyrbu/ZNPCsPlus/i | ||||||
| - [wiki.vg](https://wiki.vg/Main_Page) - Minecraft protocol documentation | - [wiki.vg](https://wiki.vg/Main_Page) - Minecraft protocol documentation | ||||||
| - [gson](https://github.com/google/gson) - JSON parsing library made by Google | - [gson](https://github.com/google/gson) - JSON parsing library made by Google | ||||||
| - [Mineskin.org](https://mineskin.org/) - Website for raw skin file uploads | - [Mineskin.org](https://mineskin.org/) - Website for raw skin file uploads | ||||||
| - [SpigotResourcesAPI](https://github.com/robertlit/SpigotResourcesAPI/) - Spigot API wrapper used for updater |  | ||||||
| - [adventure](https://docs.advntr.dev/) - Minecraft text api | - [adventure](https://docs.advntr.dev/) - Minecraft text api | ||||||
| - [DazzleConf](https://github.com/A248/DazzleConf) - Configuration library | - [DazzleConf](https://github.com/A248/DazzleConf) - Configuration library | ||||||
| - [Director](https://github.com/Pyrbu/Director) - Command library | - [Director](https://github.com/Pyrbu/Director) - Command library | ||||||
|  |  | ||||||
|  | @ -19,7 +19,6 @@ dependencies { | ||||||
|     compileOnly "me.clip:placeholderapi:2.11.6" // Placeholder support |     compileOnly "me.clip:placeholderapi:2.11.6" // Placeholder support | ||||||
|     implementation "com.google.code.gson:gson:2.10.1" // JSON parsing |     implementation "com.google.code.gson:gson:2.10.1" // JSON parsing | ||||||
|     implementation "org.bstats:bstats-bukkit:3.0.2" // Plugin stats |     implementation "org.bstats:bstats-bukkit:3.0.2" // Plugin stats | ||||||
|     implementation "me.robertlit:SpigotResourcesAPI:2.0" // Spigot API wrapper for update checker |  | ||||||
|     implementation "com.github.retrooper:packetevents-spigot:2.4.0" // Packets |     implementation "com.github.retrooper:packetevents-spigot:2.4.0" // Packets | ||||||
|     implementation "space.arim.dazzleconf:dazzleconf-ext-snakeyaml:1.2.1" // Configs |     implementation "space.arim.dazzleconf:dazzleconf-ext-snakeyaml:1.2.1" // Configs | ||||||
|     implementation "lol.pyr:director-adventure:2.1.2" // Commands |     implementation "lol.pyr:director-adventure:2.1.2" // Commands | ||||||
|  | @ -40,7 +39,6 @@ shadowJar { | ||||||
| 
 | 
 | ||||||
|     // When changing anything here remember to also update the bootstrap |     // When changing anything here remember to also update the bootstrap | ||||||
|     relocate "org.bstats", "lol.pyr.znpcsplus.libraries.bstats" |     relocate "org.bstats", "lol.pyr.znpcsplus.libraries.bstats" | ||||||
|     relocate "me.robertlit.spigotresources", "lol.pyr.znpcsplus.libraries.spigotresources" |  | ||||||
|     relocate "net.kyori", "lol.pyr.znpcsplus.libraries.kyori" |     relocate "net.kyori", "lol.pyr.znpcsplus.libraries.kyori" | ||||||
|     relocate "org.checkerframework", "lol.pyr.znpcsplus.libraries.checkerframework" |     relocate "org.checkerframework", "lol.pyr.znpcsplus.libraries.checkerframework" | ||||||
|     relocate "com.google", "lol.pyr.znpcsplus.libraries.google" |     relocate "com.google", "lol.pyr.znpcsplus.libraries.google" | ||||||
|  |  | ||||||
|  | @ -1,20 +1,21 @@ | ||||||
| package lol.pyr.znpcsplus.updater; | package lol.pyr.znpcsplus.updater; | ||||||
| 
 | 
 | ||||||
| import me.robertlit.spigotresources.api.Resource; | import com.google.gson.JsonObject; | ||||||
| import me.robertlit.spigotresources.api.SpigotResourcesAPI; | import com.google.gson.JsonParser; | ||||||
| import org.bukkit.plugin.PluginDescriptionFile; | import org.bukkit.plugin.PluginDescriptionFile; | ||||||
| import org.bukkit.scheduler.BukkitRunnable; | import org.bukkit.scheduler.BukkitRunnable; | ||||||
| 
 | 
 | ||||||
| import java.util.concurrent.TimeUnit; | import java.io.IOException; | ||||||
|  | import java.io.InputStreamReader; | ||||||
|  | import java.net.HttpURLConnection; | ||||||
|  | import java.net.URL; | ||||||
| import java.util.logging.Logger; | import java.util.logging.Logger; | ||||||
| 
 | 
 | ||||||
| public class UpdateChecker extends BukkitRunnable { | public class UpdateChecker extends BukkitRunnable { | ||||||
|     private final static Logger logger = Logger.getLogger("ZNPCsPlus Update Checker"); |     private final static Logger logger = Logger.getLogger("ZNPCsPlus Update Checker"); | ||||||
|     private final static int RESOURCE_ID = 109380; |     private static final String GET_RESOURCE = "https://api.spigotmc.org/simple/0.2/index.php?action=getResource&id=109380"; | ||||||
|     public final static String DOWNLOAD_LINK = "https://www.spigotmc.org/resources/znpcsplus.109380/"; |     public final static String DOWNLOAD_LINK = "https://www.spigotmc.org/resources/znpcsplus.109380/"; | ||||||
| 
 | 
 | ||||||
|     private final SpigotResourcesAPI api = new SpigotResourcesAPI(1, TimeUnit.MINUTES); |  | ||||||
| 
 |  | ||||||
|     private final PluginDescriptionFile info; |     private final PluginDescriptionFile info; | ||||||
|     private Status status = Status.UNKNOWN; |     private Status status = Status.UNKNOWN; | ||||||
|     private String newestVersion = "N/A"; |     private String newestVersion = "N/A"; | ||||||
|  | @ -24,9 +25,29 @@ public class UpdateChecker extends BukkitRunnable { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public void run() { |     public void run() { | ||||||
|         Resource resource = api.getResource(RESOURCE_ID).join(); |         String foundVersion = null; | ||||||
|         if (resource == null) return; |         try { | ||||||
|         newestVersion = resource.getVersion(); |             URL getResource = new URL(GET_RESOURCE); | ||||||
|  |             HttpURLConnection httpRequest = ((HttpURLConnection) getResource.openConnection()); | ||||||
|  |             httpRequest.setRequestMethod("GET"); | ||||||
|  |             httpRequest.setConnectTimeout(5_000); | ||||||
|  |             httpRequest.setReadTimeout(5_000); | ||||||
|  | 
 | ||||||
|  |             if (httpRequest.getResponseCode() == HttpURLConnection.HTTP_OK) { | ||||||
|  |                 try (InputStreamReader reader = new InputStreamReader(httpRequest.getInputStream())) { | ||||||
|  |                     JsonObject jsonObject = JsonParser.parseReader(reader).getAsJsonObject(); | ||||||
|  |                     foundVersion = jsonObject.get("current_version").getAsString(); | ||||||
|  |                 } | ||||||
|  |             } else { | ||||||
|  |                 logger.warning("Failed to check for updates: HTTP response code " + httpRequest.getResponseCode()); | ||||||
|  |             } | ||||||
|  |         } catch (IOException e) { | ||||||
|  |             logger.warning("Failed to check for updates: " + e.getMessage()); | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if (foundVersion == null) return; | ||||||
|  |         newestVersion = foundVersion; | ||||||
| 
 | 
 | ||||||
|         status = compareVersions(info.getVersion(), newestVersion); |         status = compareVersions(info.getVersion(), newestVersion); | ||||||
|         if (status == Status.UPDATE_NEEDED) notifyConsole(); |         if (status == Status.UPDATE_NEEDED) notifyConsole(); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue