src/main/java/com/viper/autosortchest/Main.java aktualisiert

This commit is contained in:
2025-12-31 10:28:33 +00:00
parent e4b7e18290
commit 943ed76c11

View File

@@ -38,7 +38,7 @@ public class Main extends JavaPlugin implements Listener, CommandExecutor {
private FileConfiguration config;
private final Map<UUID, Map<Material, Long>> fullChestMessageTracker = new HashMap<>();
private static final long MESSAGE_COOLDOWN = 5 * 60 * 1000; // 5 Minuten in Millisekunden
private static final String CONFIG_VERSION = "1.3";
private static final String CONFIG_VERSION = "1.4";
@Override
public void onEnable() {
@@ -79,6 +79,16 @@ public class Main extends JavaPlugin implements Listener, CommandExecutor {
updateConfig();
updateExistingSigns();
// ASCII ART LOGO
getLogger().info("");
getLogger().info(" ___ _ _____ _ _____ _ _ ");
getLogger().info(" / _ \\ | | / ___| | | / __ \\ | | | ");
getLogger().info("/ /_\\ \\_ _| |_ ___ \\ `--. ___ _ __| |_| / \\/ |__ ___ ___| |_ ");
getLogger().info("| _ | | | | __/ _ \\ `--. \\/ _ \\| '__| __| | | '_ \\ / _ \\/ __| __|");
getLogger().info("| | | | |_| | || (_) /\\__/ / (_) | | | |_| \\__/\\ | | | __/\\__ \\ |_ ");
getLogger().info("\\_| |_/\\__,_|\\__\\___/\\____/ \\___/|_| \\__|\\____/_| |_|\\___||___/\\__|");
getLogger().info("");
getLogger().info("AutoSortChest Plugin aktiviert! Version: " + getDescription().getVersion());
}
@@ -720,17 +730,11 @@ public class Main extends JavaPlugin implements Listener, CommandExecutor {
return;
}
}
// 2. FALL: ITEM ZUWEISEN (Klick + Item in Hand)
String line2Clean = ChatColor.stripColor((String) (lines[2] != null ? lines[2] : ""));
if (line2Clean.isEmpty()) {
if (itemInHand == null || itemInHand.getType() == Material.AIR) {
player.sendMessage(getMessage("no-item-in-hand"));
event.setCancelled(true);
return;
}
// Wenn das Schild noch KEINEN Owner hat, darf jeder es "übernehmen"
// 2. FALL: ITEM ZUWEISEN / AKTUALISIEREN (Klick + Item in Hand)
// ERWEITERUNG: Wir prüfen nicht mehr, ob Zeile 2 leer ist. Wenn ein Item in der Hand ist, wird es aktualisiert.
if (itemInHand != null && itemInHand.getType() != Material.AIR) {
// Prüfe, ob der Spieler das Recht hat (Owner oder unbeansprucht)
if (!pureOwnerName.isEmpty() && !pureOwnerName.equalsIgnoreCase("Unknown") && !isOwner) {
player.sendMessage(getMessage("not-your-chest"));
event.setCancelled(true);
@@ -743,7 +747,7 @@ public class Main extends JavaPlugin implements Listener, CommandExecutor {
sign.setLine(0, getSignColor(colorType, "line1") + "[asc]");
sign.setLine(1, getSignColor(colorType, "line2") + "ziel");
sign.setLine(2, getSignColor(colorType, "line3") + itemInHand.getType().name());
sign.setLine(2, getSignColor(colorType, "line3") + itemInHand.getType().name()); // Item wird überschrieben
// Wenn noch kein Name da war, setze ihn
String finalLine4 = line3Raw;
@@ -760,7 +764,7 @@ public class Main extends JavaPlugin implements Listener, CommandExecutor {
return;
}
// Zugriffsschutz für konfigurierte Truhen
// Zugriffsschutz für konfigurierte Truhen (wenn kein Item in Hand zum Updaten)
// Wenn nicht Owner und NICHT öffentlich -> Zugriff verweigern
if (!isOwner && !isChestPublic(sign)) {
player.sendMessage(getMessage("not-your-chest"));
@@ -879,7 +883,9 @@ public class Main extends JavaPlugin implements Listener, CommandExecutor {
}
}
// 2. FALL: ITEM ZUWEISEN
// 2. FALL: ITEM ZUWEISEN (Nur wenn Zeile 2 leer ist - Logik beibehalten für Klick auf Truhe)
// Hinweis: Um das Item zu aktualisieren, sollte das Schild angeklickt werden, nicht die Truhe direkt.
// Dies verhindert, dass man versehentlich die Sortierung ändert, wenn man Items in die Truhe legen will.
String line2Clean = ChatColor.stripColor((String) (lines[2] != null ? lines[2] : ""));
if (line2Clean.isEmpty()) {
if (itemInHand == null || itemInHand.getType() == Material.AIR) {