Upload folder via GUI - src
This commit is contained in:
@@ -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("build_mode")) return BuildCommand.isInBuildMode(player) ? "§aAktiv" : "§cInaktiv";
|
||||||
if (params.equalsIgnoreCase("silent_join")) return silentPlayers.contains(player.getUniqueId()) ? "§aEin" : "§cAus";
|
if (params.equalsIgnoreCase("silent_join")) return silentPlayers.contains(player.getUniqueId()) ? "§aEin" : "§cAus";
|
||||||
if (params.equalsIgnoreCase("parkour_top")) {
|
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;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -324,14 +324,16 @@ public class ParkourManager {
|
|||||||
// Bestzeiten
|
// Bestzeiten
|
||||||
// ─────────────────────────────────────────────────────────────────────────
|
// ─────────────────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
|
||||||
private void saveBestTime(Player player, double time) {
|
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);
|
double currentTime = config.getDouble(path, 99999.9);
|
||||||
if (time < currentTime) {
|
if (time < currentTime) {
|
||||||
config.set(path, time);
|
config.set(path, time);
|
||||||
config.set("names." + player.getUniqueId(), player.getName());
|
config.set("names." + track + "." + player.getUniqueId(), player.getName());
|
||||||
save();
|
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.
|
* Die Strecken-Konfiguration (tracks) bleibt vollständig erhalten.
|
||||||
* Wird durch "/nexus parkour clear" aufgerufen.
|
* Wird durch "/nexus parkour clear" aufgerufen.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public void clearStats() {
|
public void clearStats() {
|
||||||
config.set("besttimes", null);
|
config.set("besttimes", null);
|
||||||
config.set("names", null);
|
config.set("names", null);
|
||||||
save();
|
save();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getTopTen() {
|
|
||||||
if (!config.contains("besttimes") || config.getConfigurationSection("besttimes") == null)
|
public String getTopTen(int track) {
|
||||||
return "§6§l🏆 TOP 10 PARKOUR 🏆\n§7Noch keine Rekorde.";
|
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<String, Double> allTimes = new HashMap<>();
|
Map<String, Double> allTimes = new HashMap<>();
|
||||||
for (String uuidStr : config.getConfigurationSection("besttimes").getKeys(false)) {
|
for (String uuidStr : config.getConfigurationSection(base).getKeys(false)) {
|
||||||
allTimes.put(uuidStr, config.getDouble("besttimes." + uuidStr));
|
allTimes.put(uuidStr, config.getDouble(base + "." + uuidStr));
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Map.Entry<String, Double>> sortedList = allTimes.entrySet().stream()
|
List<Map.Entry<String, Double>> sortedList = allTimes.entrySet().stream()
|
||||||
@@ -360,10 +365,10 @@ public class ParkourManager {
|
|||||||
.limit(10)
|
.limit(10)
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
StringBuilder builder = new StringBuilder("§6§l🏆 TOP 10 PARKOUR 🏆");
|
StringBuilder builder = new StringBuilder("§6§l🏆 TOP 10 PARKOUR Strecke " + track + " 🏆");
|
||||||
int rank = 1;
|
int rank = 1;
|
||||||
for (Map.Entry<String, Double> entry : sortedList) {
|
for (Map.Entry<String, Double> 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)
|
builder.append("\n§e#").append(rank).append(" §f").append(name)
|
||||||
.append(" §8» §a").append(String.format("%.2f", entry.getValue())).append("s");
|
.append(" §8» §a").append(String.format("%.2f", entry.getValue())).append("s");
|
||||||
rank++;
|
rank++;
|
||||||
|
|||||||
@@ -278,31 +278,6 @@ player_inspect:
|
|||||||
gui_title: "&8Statistiken von &6{PLAYER}"
|
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
|
# LOGGING EINSTELLUNGEN
|
||||||
# ══════════════════════════════════════════════════════════════════════════════
|
# ══════════════════════════════════════════════════════════════════════════════
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ scoreboard:
|
|||||||
- "&6&lNETZWERK"
|
- "&6&lNETZWERK"
|
||||||
- " &8» &fOnline: &e%bungee_total%"
|
- " &8» &fOnline: &e%bungee_total%"
|
||||||
- "&4 "
|
- "&4 "
|
||||||
- "&8&o m-viper.de"
|
- "&8&o Viper-Network.de"
|
||||||
owner:
|
owner:
|
||||||
title: "&4&l&nNEXUS &c&lADMIN"
|
title: "&4&l&nNEXUS &c&lADMIN"
|
||||||
lines:
|
lines:
|
||||||
|
|||||||
Reference in New Issue
Block a user