4 Commits
1.3 ... 1.4

Author SHA1 Message Date
be191df87e Update from Git Manager GUI 2026-02-05 10:33:58 +01:00
a884822115 Upload pom.xml via GUI 2026-02-05 09:33:57 +00:00
95052e9da4 Update from Git Manager GUI 2026-01-31 08:57:53 +01:00
fe7b0fed4b Upload pom.xml via GUI 2026-01-31 07:57:52 +00:00
5 changed files with 63 additions and 52 deletions

View File

@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>de.mviper</groupId> <groupId>de.mviper</groupId>
<artifactId>Elevator</artifactId> <artifactId>Elevator</artifactId>
<version>1.2</version> <version>1.4</version>
<properties> <properties>
<maven.compiler.source>17</maven.compiler.source> <maven.compiler.source>17</maven.compiler.source>

View File

@@ -26,7 +26,9 @@ public class Elevator extends JavaPlugin implements Listener {
private DatabaseManager databaseManager; private DatabaseManager databaseManager;
private HologramManager hologramManager; private HologramManager hologramManager;
private String latestVersionFound; 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 @Override
public void onEnable() { public void onEnable() {
@@ -45,20 +47,22 @@ public class Elevator extends JavaPlugin implements Listener {
// Rezept laden // Rezept laden
registerElevatorRecipe(); registerElevatorRecipe();
// Update Check starten // Update Check starten (Offizielle Spigot API)
checkForUpdates(); checkForUpdates();
} }
private void checkForUpdates() { private void checkForUpdates() {
new UpdateChecker(this).getLatestVersion(version -> { new UpdateChecker(this, RESOURCE_ID).getLatestVersion(version -> {
this.latestVersionFound = version; this.latestVersionFound = version;
String currentVersion = this.getDescription().getVersion(); String currentVersion = this.getDescription().getVersion();
if (!currentVersion.equalsIgnoreCase(version)) { if (!currentVersion.equalsIgnoreCase(version)) {
getLogger().info("===================================================="); getLogger().info("====================================================");
getLogger().info("NEUES UPDATE VERFÜGBAR: " + version); getLogger().info("NEUES UPDATE VERFÜGBAR: v" + version);
getLogger().info("Download: " + releaseUrl); getLogger().info("Download: " + releaseUrl);
getLogger().info("===================================================="); 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 message = new TextComponent("§eDownload: ");
TextComponent link = new TextComponent("§6§l[KLICK HIER FÜR UPDATE]"); TextComponent link = new TextComponent("§6§l[KLICK HIER FÜR UPDATE]");
link.setClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, releaseUrl)); 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); message.addExtra(link);
player.spigot().sendMessage(message); player.spigot().sendMessage(message);
@@ -85,25 +89,11 @@ public class Elevator extends JavaPlugin implements Listener {
} }
private void registerElevatorRecipe() { private void registerElevatorRecipe() {
// Das Resultat-Item (Aufzug-Modul) ItemStack item = createElevatorModuleItem();
ItemStack item = new ItemStack(Material.DAYLIGHT_DETECTOR);
ItemMeta meta = item.getItemMeta();
if (meta != null) {
meta.setDisplayName("§b§lAufzug-Modul");
meta.setLore(Arrays.asList(
"§7Platziere dies als Etage.",
"§eRechtsklick: §fMenü öffnen",
"§eSpringen/Sneaken: §fReisen"
));
meta.addEnchant(Enchantment.LUCK, 1, true);
meta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
item.setItemMeta(meta);
}
NamespacedKey key = new NamespacedKey(this, "elevator_module"); NamespacedKey key = new NamespacedKey(this, "elevator_module");
ShapedRecipe recipe = new ShapedRecipe(key, item); ShapedRecipe recipe = new ShapedRecipe(key, item);
// Shape laden und bereinigen (verhindert den "Length 5" Fehler)
List<String> shapeLines = getConfig().getStringList("recipe.shape"); List<String> shapeLines = getConfig().getStringList("recipe.shape");
if (shapeLines.size() != 3) { if (shapeLines.size() != 3) {
getLogger().severe("Rezept konnte nicht geladen werden: 'shape' benötigt genau 3 Zeilen!"); getLogger().severe("Rezept konnte nicht geladen werden: 'shape' benötigt genau 3 Zeilen!");
@@ -112,14 +102,10 @@ public class Elevator extends JavaPlugin implements Listener {
String[] cleanedRows = new String[3]; String[] cleanedRows = new String[3];
for (int i = 0; i < 3; i++) { for (int i = 0; i < 3; i++) {
// Entferne alle Leerzeichen für die interne Verarbeitung
String line = shapeLines.get(i).replace(" ", ""); String line = shapeLines.get(i).replace(" ", "");
// Mit Leerzeichen auffüllen, falls die Zeile kürzer als 3 ist
while (line.length() < 3) { while (line.length() < 3) {
line += " "; line += " ";
} }
// Kürzen, falls sie länger als 3 ist
if (line.length() > 3) { if (line.length() > 3) {
line = line.substring(0, 3); line = line.substring(0, 3);
} }
@@ -128,7 +114,6 @@ public class Elevator extends JavaPlugin implements Listener {
recipe.shape(cleanedRows[0], cleanedRows[1], cleanedRows[2]); recipe.shape(cleanedRows[0], cleanedRows[1], cleanedRows[2]);
// Zutaten zuweisen
ConfigurationSection section = getConfig().getConfigurationSection("recipe.ingredients"); ConfigurationSection section = getConfig().getConfigurationSection("recipe.ingredients");
if (section == null) { if (section == null) {
getLogger().severe("Keine 'recipe.ingredients' in der Config gefunden!"); getLogger().severe("Keine 'recipe.ingredients' in der Config gefunden!");
@@ -167,4 +152,21 @@ public class Elevator extends JavaPlugin implements Listener {
public static Elevator getInstance() { return instance; } public static Elevator getInstance() { return instance; }
public DatabaseManager getDatabaseManager() { return databaseManager; } public DatabaseManager getDatabaseManager() { return databaseManager; }
public HologramManager getHologramManager() { return hologramManager; } public HologramManager getHologramManager() { return hologramManager; }
public ItemStack createElevatorModuleItem() {
ItemStack item = new ItemStack(Material.DAYLIGHT_DETECTOR);
ItemMeta meta = item.getItemMeta();
if (meta != null) {
meta.setDisplayName("§b§lAufzug-Modul");
meta.setLore(Arrays.asList(
"§7Platziere dies als Etage.",
"§eRechtsklick: §fMenü öffnen",
"§eSpringen/Sneaken: §fReisen"
));
meta.addEnchant(Enchantment.LUCK, 1, true);
meta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
item.setItemMeta(meta);
}
return item;
}
} }

View File

@@ -331,7 +331,27 @@ public class ElevatorListener implements Listener {
return; return;
} }
db.removeElevator(e.getBlock().getLocation()); e.setDropItems(false);
e.setExpToDrop(0);
Location breakLoc = e.getBlock().getLocation();
db.removeElevator(breakLoc);
e.getBlock().setType(Material.AIR);
if (e.getPlayer().getGameMode() == GameMode.SURVIVAL) {
ItemStack moduleItem = Elevator.getInstance().createElevatorModuleItem();
HashMap<Integer, ItemStack> leftover = e.getPlayer().getInventory().addItem(moduleItem);
for (ItemStack rest : leftover.values()) {
breakLoc.getWorld().dropItemNaturally(breakLoc, rest);
}
}
if (breakLoc.getWorld() != null) {
breakLoc.getWorld().spawnParticle(Particle.CLOUD, breakLoc.add(0.5, 0.5, 0.5), 12, 0.2, 0.2, 0.2, 0.01);
breakLoc.getWorld().playSound(breakLoc, Sound.BLOCK_IRON_DOOR_CLOSE, 0.7f, 1.6f);
}
e.getPlayer().sendMessage("§eAufzug-Modul entfernt."); e.getPlayer().sendMessage("§eAufzug-Modul entfernt.");
} }
} }

View File

@@ -1,42 +1,31 @@
package de.mviper.elevator; package de.mviper.elevator;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
import java.util.Scanner;
import java.util.function.Consumer; import java.util.function.Consumer;
public class UpdateChecker { public class UpdateChecker {
private final Elevator plugin; 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.plugin = plugin;
this.resourceId = resourceId;
} }
public void getLatestVersion(Consumer<String> consumer) { public void getLatestVersion(final Consumer<String> consumer) {
Bukkit.getScheduler().runTaskAsynchronously(this.plugin, () -> { Bukkit.getScheduler().runTaskAsynchronously(this.plugin, () -> {
try { try (InputStream inputStream = new URL("https://api.spigotmc.org/legacy/update.php?resource=" + this.resourceId).openStream();
HttpURLConnection connection = (HttpURLConnection) new URL(versionUrl).openConnection(); Scanner scanner = new Scanner(inputStream)) {
connection.setRequestMethod("GET"); if (scanner.hasNext()) {
connection.setConnectTimeout(5000); consumer.accept(scanner.next());
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);
}
} }
} catch (Exception e) { } catch (IOException exception) {
plugin.getLogger().warning("Update-Check fehlgeschlagen: " + e.getMessage()); plugin.getLogger().info("Update-Check fehlgeschlagen: " + exception.getMessage());
} }
}); });
} }

View File

@@ -1,5 +1,5 @@
name: Elevator name: Elevator
version: 1.2 version: 1.4
main: de.mviper.elevator.Elevator main: de.mviper.elevator.Elevator
api-version: 1.20 api-version: 1.20
author: mviper author: mviper