diff --git a/src/main/java/de/nexuslobby/NexusLobby.java b/src/main/java/de/nexuslobby/NexusLobby.java index e2c6f3c..a243c96 100644 --- a/src/main/java/de/nexuslobby/NexusLobby.java +++ b/src/main/java/de/nexuslobby/NexusLobby.java @@ -527,7 +527,13 @@ public class NexusLobby extends JavaPlugin implements Listener { if (params.equalsIgnoreCase("build_mode")) return BuildCommand.isInBuildMode(player) ? "§aAktiv" : "§cInaktiv"; if (params.equalsIgnoreCase("silent_join")) return silentPlayers.contains(player.getUniqueId()) ? "§aEin" : "§cAus"; if (params.equalsIgnoreCase("parkour_top")) { - return parkourManager != null ? parkourManager.getTopTen() : "N/A"; + return parkourManager != null ? parkourManager.getTopTen(1) : "N/A"; + } + if (params.equalsIgnoreCase("parkour_top1")) { + return parkourManager != null ? parkourManager.getTopTen(1) : "N/A"; + } + if (params.equalsIgnoreCase("parkour_top2")) { + return parkourManager != null ? parkourManager.getTopTen(2) : "N/A"; } return null; } diff --git a/src/main/java/de/nexuslobby/modules/parkour/ParkourManager.java b/src/main/java/de/nexuslobby/modules/parkour/ParkourManager.java index 40a0968..cccaf7e 100644 --- a/src/main/java/de/nexuslobby/modules/parkour/ParkourManager.java +++ b/src/main/java/de/nexuslobby/modules/parkour/ParkourManager.java @@ -324,14 +324,16 @@ public class ParkourManager { // Bestzeiten // ───────────────────────────────────────────────────────────────────────── + private void saveBestTime(Player player, double time) { - String path = "besttimes." + player.getUniqueId(); + int track = activeTrack.getOrDefault(player.getUniqueId(), 1); + String path = "besttimes." + track + "." + player.getUniqueId(); double currentTime = config.getDouble(path, 99999.9); if (time < currentTime) { config.set(path, time); - config.set("names." + player.getUniqueId(), player.getName()); + config.set("names." + track + "." + player.getUniqueId(), player.getName()); save(); - player.sendMessage("§8[§6Parkour§8] §6§lNeuer Rekord! §7Du hast dich verbessert."); + player.sendMessage("§8[§6Parkour§8] §6§lNeuer Rekord auf Strecke " + track + "! §7Du hast dich verbessert."); } } @@ -340,19 +342,22 @@ public class ParkourManager { * Die Strecken-Konfiguration (tracks) bleibt vollständig erhalten. * Wird durch "/nexus parkour clear" aufgerufen. */ + public void clearStats() { config.set("besttimes", null); config.set("names", null); save(); } - public String getTopTen() { - if (!config.contains("besttimes") || config.getConfigurationSection("besttimes") == null) - return "§6§l🏆 TOP 10 PARKOUR 🏆\n§7Noch keine Rekorde."; + + public String getTopTen(int track) { + String base = "besttimes." + track; + if (!config.contains(base) || config.getConfigurationSection(base) == null) + return "§6§l🏆 TOP 10 PARKOUR Strecke " + track + " 🏆\n§7Noch keine Rekorde."; Map allTimes = new HashMap<>(); - for (String uuidStr : config.getConfigurationSection("besttimes").getKeys(false)) { - allTimes.put(uuidStr, config.getDouble("besttimes." + uuidStr)); + for (String uuidStr : config.getConfigurationSection(base).getKeys(false)) { + allTimes.put(uuidStr, config.getDouble(base + "." + uuidStr)); } List> sortedList = allTimes.entrySet().stream() @@ -360,10 +365,10 @@ public class ParkourManager { .limit(10) .toList(); - StringBuilder builder = new StringBuilder("§6§l🏆 TOP 10 PARKOUR 🏆"); + StringBuilder builder = new StringBuilder("§6§l🏆 TOP 10 PARKOUR Strecke " + track + " 🏆"); int rank = 1; for (Map.Entry entry : sortedList) { - String name = config.getString("names." + entry.getKey(), "Unbekannt"); + String name = config.getString("names." + track + "." + entry.getKey(), "Unbekannt"); builder.append("\n§e#").append(rank).append(" §f").append(name) .append(" §8» §a").append(String.format("%.2f", entry.getValue())).append("s"); rank++; diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 3274c35..ea96e46 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -278,31 +278,6 @@ player_inspect: gui_title: "&8Statistiken von &6{PLAYER}" # ══════════════════════════════════════════════════════════════════════════════ -# SUPPRESSOR / GLOBAL CHAT EINSTELLUNGEN -# ══════════════════════════════════════════════════════════════════════════════ -# Join/Quit-Nachrichten Unterdrückung und BungeeCord-Messaging -suppressor: - # Aktiviert das Suppressor-System (true = an, false = aus) - enabled: false - - # Unterdrückt Join- und Quit-Nachrichten für neue Spieler temporär - # true = Nachrichten werden unterdrückt, false = normale Anzeige - # Nützlich um Spam zu vermeiden wenn viele Spieler gleichzeitig joinen/leaven - suppress-join-quit: true - - # Dauer der Unterdrückung in Ticks (20 Ticks = 1 Sekunde) - # Nach dieser Zeit werden Join/Quit-Nachrichten wieder normal angezeigt - suppress-duration-ticks: 40 - - # BungeeCord Plugin-Messaging Channels - # Diese Channels werden für die Kommunikation zwischen Servern verwendet - channels: - # Channel für Join/Quit-Suppression-Control - control: "global:control" - - # Channel für globales Chat-Relay über alle Server - chat: "global:chat" - # ══════════════════════════════════════════════════════════════════════════════ # LOGGING EINSTELLUNGEN # ══════════════════════════════════════════════════════════════════════════════ diff --git a/src/main/resources/visuals.yml b/src/main/resources/visuals.yml index 46fa389..f2d433b 100644 --- a/src/main/resources/visuals.yml +++ b/src/main/resources/visuals.yml @@ -77,7 +77,7 @@ scoreboard: - "&6&lNETZWERK" - " &8» &fOnline: &e%bungee_total%" - "&4 " - - "&8&o m-viper.de" + - "&8&o Viper-Network.de" owner: title: "&4&l&nNEXUS &c&lADMIN" lines: