diff --git a/src/main/java/de/mviper/elevator/Elevator.java b/src/main/java/de/mviper/elevator/Elevator.java index 1749849..f875cf2 100644 --- a/src/main/java/de/mviper/elevator/Elevator.java +++ b/src/main/java/de/mviper/elevator/Elevator.java @@ -26,7 +26,9 @@ public class Elevator extends JavaPlugin implements Listener { private DatabaseManager databaseManager; private HologramManager hologramManager; private String latestVersionFound; - private final String releaseUrl = "https://git.viper.ipv64.net/M_Viper/Elevator/releases"; + + private final int RESOURCE_ID = 132220; + private final String releaseUrl = "https://www.spigotmc.org/resources/" + RESOURCE_ID; @Override public void onEnable() { @@ -45,20 +47,22 @@ public class Elevator extends JavaPlugin implements Listener { // Rezept laden registerElevatorRecipe(); - // Update Check starten + // Update Check starten (Offizielle Spigot API) checkForUpdates(); } private void checkForUpdates() { - new UpdateChecker(this).getLatestVersion(version -> { + new UpdateChecker(this, RESOURCE_ID).getLatestVersion(version -> { this.latestVersionFound = version; String currentVersion = this.getDescription().getVersion(); if (!currentVersion.equalsIgnoreCase(version)) { getLogger().info("===================================================="); - getLogger().info("NEUES UPDATE VERFÜGBAR: " + version); + getLogger().info("NEUES UPDATE VERFÜGBAR: v" + version); getLogger().info("Download: " + releaseUrl); getLogger().info("===================================================="); + } else { + getLogger().info("Plugin ist auf dem neuesten Stand (v" + currentVersion + ")."); } }); } @@ -75,7 +79,7 @@ public class Elevator extends JavaPlugin implements Listener { TextComponent message = new TextComponent("§eDownload: "); TextComponent link = new TextComponent("§6§l[KLICK HIER FÜR UPDATE]"); link.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, releaseUrl)); - link.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new Text("§7Öffnet die Release-Seite"))); + link.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new Text("§7Öffnet die SpigotMC-Seite"))); message.addExtra(link); player.spigot().sendMessage(message); @@ -85,7 +89,6 @@ public class Elevator extends JavaPlugin implements Listener { } private void registerElevatorRecipe() { - // Das Resultat-Item (Aufzug-Modul) ItemStack item = new ItemStack(Material.DAYLIGHT_DETECTOR); ItemMeta meta = item.getItemMeta(); if (meta != null) { @@ -103,7 +106,6 @@ public class Elevator extends JavaPlugin implements Listener { NamespacedKey key = new NamespacedKey(this, "elevator_module"); ShapedRecipe recipe = new ShapedRecipe(key, item); - // Shape laden und bereinigen (verhindert den "Length 5" Fehler) List shapeLines = getConfig().getStringList("recipe.shape"); if (shapeLines.size() != 3) { getLogger().severe("Rezept konnte nicht geladen werden: 'shape' benötigt genau 3 Zeilen!"); @@ -112,14 +114,10 @@ public class Elevator extends JavaPlugin implements Listener { String[] cleanedRows = new String[3]; for (int i = 0; i < 3; i++) { - // Entferne alle Leerzeichen für die interne Verarbeitung String line = shapeLines.get(i).replace(" ", ""); - - // Mit Leerzeichen auffüllen, falls die Zeile kürzer als 3 ist while (line.length() < 3) { line += " "; } - // Kürzen, falls sie länger als 3 ist if (line.length() > 3) { line = line.substring(0, 3); } @@ -128,7 +126,6 @@ public class Elevator extends JavaPlugin implements Listener { recipe.shape(cleanedRows[0], cleanedRows[1], cleanedRows[2]); - // Zutaten zuweisen ConfigurationSection section = getConfig().getConfigurationSection("recipe.ingredients"); if (section == null) { getLogger().severe("Keine 'recipe.ingredients' in der Config gefunden!"); diff --git a/src/main/java/de/mviper/elevator/UpdateChecker.java b/src/main/java/de/mviper/elevator/UpdateChecker.java index 9d1bf6c..41b6aa0 100644 --- a/src/main/java/de/mviper/elevator/UpdateChecker.java +++ b/src/main/java/de/mviper/elevator/UpdateChecker.java @@ -1,42 +1,31 @@ package de.mviper.elevator; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; import org.bukkit.Bukkit; - -import java.io.InputStreamReader; -import java.net.HttpURLConnection; +import java.io.IOException; +import java.io.InputStream; import java.net.URL; +import java.util.Scanner; import java.util.function.Consumer; public class UpdateChecker { private final Elevator plugin; - private final String versionUrl = "https://git.viper.ipv64.net/api/v1/repos/M_Viper/Elevator/releases/latest"; + private final int resourceId; - public UpdateChecker(Elevator plugin) { + public UpdateChecker(Elevator plugin, int resourceId) { this.plugin = plugin; + this.resourceId = resourceId; } - public void getLatestVersion(Consumer consumer) { + public void getLatestVersion(final Consumer consumer) { Bukkit.getScheduler().runTaskAsynchronously(this.plugin, () -> { - try { - HttpURLConnection connection = (HttpURLConnection) new URL(versionUrl).openConnection(); - connection.setRequestMethod("GET"); - connection.setConnectTimeout(5000); - connection.setReadTimeout(5000); - - if (connection.getResponseCode() == 200) { - InputStreamReader reader = new InputStreamReader(connection.getInputStream()); - JsonObject jsonResponse = JsonParser.parseReader(reader).getAsJsonObject(); - // Holt den Tag-Namen (z.B. v1.1) aus der Gitea API - if (jsonResponse.has("tag_name")) { - String latestVersion = jsonResponse.get("tag_name").getAsString(); - consumer.accept(latestVersion); - } + try (InputStream inputStream = new URL("https://api.spigotmc.org/legacy/update.php?resource=" + this.resourceId).openStream(); + Scanner scanner = new Scanner(inputStream)) { + if (scanner.hasNext()) { + consumer.accept(scanner.next()); } - } catch (Exception e) { - plugin.getLogger().warning("Update-Check fehlgeschlagen: " + e.getMessage()); + } catch (IOException exception) { + plugin.getLogger().info("Update-Check fehlgeschlagen: " + exception.getMessage()); } }); } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index e22b661..4bbf6a5 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ name: Elevator -version: 1.2 +version: 1.3 main: de.mviper.elevator.Elevator api-version: 1.20 author: mviper