diff --git a/Parkour.md b/Parkour.md index b3ed18e..d6520dc 100644 --- a/Parkour.md +++ b/Parkour.md @@ -5,90 +5,129 @@ Das Parkour-System von NexusLobby ist ein modulares, partikelbasiertes System, d ## 🛠 Features - **NPC-Interaktion**: Startet ausschließlich durch Rechtsklick auf einen markierten ArmorStand. +- **Zwei Strecken**: Es können zwei vollständige Parcours (Strecke 1 & 2) hinterlegt werden. Beim Start wird **zufällig** eine der beiden gewählt – beide müssen die gleiche Anzahl an Checkpoints haben. - **Dynamische Checkpoints**: Werden per Befehl gesetzt und durch blaue Partikel (`SOUL_FIRE_FLAME`) markiert. - **Ziel-Erkennung**: Grüne Partikel (`HAPPY_VILLAGER`) erscheinen erst, wenn alle Checkpoints passiert wurden. - **Automatischer Reset**: Fällt ein Spieler unter Höhe Y=50, wird er zum letzten Checkpoint teleportiert. - **Live-Timer**: Die aktuelle Laufzeit wird in Echtzeit in der Actionbar angezeigt. -- **Leaderboard**: Speichert die Top 10 Bestzeiten in der Datenbank. +- **Leaderboard**: Speichert die Top 10 Bestzeiten in der `parkour.yml`. +- **Gadget-Schutz**: Spieler im aktiven Parkour sind immun gegen Freeze-Ray, Meteorit und Enterhaken anderer Spieler. + +--- ## 📋 Einrichtung & Workflow +> Alle Setup-Befehle erfordern am Ende eine Strecken-Nummer: **`1`** oder **`2`**. + ### 1. Den Start-NPC markieren -Platziere einen ArmorStand als Start-Figur. Schau ihn an und nutze: +Platziere einen ArmorStand als Start-Figur. Schau ihn direkt an und nutze: ``` -/nexus parkour setstart +/nexus parkour setstart <1|2> ``` - -- Markiert den NPC intern mit dem Tag `parkour_npc`. -- Speichert deine aktuelle Position als Startpunkt für den Timer. +- Markiert den ArmorStand intern mit dem Tag `parkour_npc` (wird von beiden Strecken geteilt). +- Speichert deine aktuelle Position als Startpunkt der gewählten Strecke. ### 2. Die Strecke definieren -Laufe den Parkour-Weg ab. An jedem Punkt, der als Zwischenspeicher dienen soll, nutze: +Laufe den Parcours-Weg ab. An jedem Zwischenpunkt nutze: ``` -/nexus parkour setcheckpoint +/nexus parkour setcheckpoint <1|2> ``` - -- Das System nummeriert die Punkte automatisch (Checkpoint #1, #2, etc.). -- Spieler müssen diese Punkte in der exakten Reihenfolge passieren. +- Checkpoints werden automatisch nummeriert (#1, #2, …). +- Spieler müssen die Punkte in exakter Reihenfolge passieren. +- **Wichtig:** Beide Strecken sollten die gleiche Anzahl an Checkpoints haben. ### 3. Das Ziel festlegen -Gehe zum Endpunkt deines Parkours und nutze: +Gehe zum Endpunkt und nutze: ``` -/nexus parkour setfinish +/nexus parkour setfinish <1|2> ``` - - Setzt den Punkt, an dem der Timer stoppt und die Zeit gewertet wird. +### 4. Status prüfen + +``` +/nexus parkour info +``` +Zeigt an, welche Strecken vollständig konfiguriert sind (✔/✘) und wie viele Checkpoints sie haben. + +--- + ## 🏆 Leaderboard & Placeholder -Um die Top 10 Bestzeiten in Hologrammen oder im Scoreboard anzuzeigen, nutzt das Plugin die PlaceholderAPI. - | Placeholder | Beschreibung | |-------------|--------------| -| `%nexuslobby_parkour_top%` | Gibt die vollständige Liste der Top 10 Spieler inklusive Zeiten aus. | +| `%nexuslobby_parkour_top%` | Gibt die vollständige Top-10-Liste mit Spielernamen und Zeiten aus. | **Beispiel für ein Hologramm:** ``` /holo create parkour none %nexuslobby_parkour_top% ``` +--- + ## 💻 Befehlsreferenz ### Für Administratoren | Befehl | Beschreibung | |--------|--------------| -| `/nexus parkour setstart` | Markiert den NPC und setzt die Start-Position. | -| `/nexus parkour setcheckpoint` | Fügt einen neuen Checkpoint an der aktuellen Position hinzu. | -| `/nexus parkour setfinish` | Setzt das Ziel des Parkours. | -| `/nexus parkour nexus parkour removeall` | Löscht die gesamte Strecke (Checkpoints & Ziel), um einen Neubau zu ermöglichen. | -| `/nexus parkour nexus parkour clear` | Löscht alle gespeicherten Bestzeiten (Top 10). | +| `/nexus parkour setstart <1\|2>` | Markiert den NPC und setzt die Start-Position der gewählten Strecke. | +| `/nexus parkour setcheckpoint <1\|2>` | Fügt einen Checkpoint an der aktuellen Position zur gewählten Strecke hinzu. | +| `/nexus parkour setfinish <1\|2>` | Setzt das Ziel der gewählten Strecke. | +| `/nexus parkour info` | Zeigt den Konfigurations-Status beider Strecken. | +| `/nexus parkour removeall` | Löscht **beide** Strecken vollständig (Checkpoints & Ziel). | +| `/nexus parkour clear` | Löscht alle gespeicherten Bestzeiten (Top 10). | ### Für Spieler | Befehl | Beschreibung | |--------|--------------| -| `/nexus parkour reset` | Bricht den aktuellen Lauf ab und blendet Timer/Partikel aus. | +| `/nexus parkour reset` | Bricht den aktuellen Lauf ab. | | `/spawn` | Teleportiert zum Lobby-Spawn und bricht den Parkour ab. | -## 🔒 Berechtigungen (Permissions) +--- -- `nexuslobby.admin`: Voller Zugriff auf alle Setup-Befehle (`/set...`) sowie das Löschen der Strecke und der Statistiken. -- `nexuslobby.silentjoin`: Erlaubt das Betreten des Servers ohne Join-Nachricht. +## 🔒 Berechtigungen -## ⚠️ Wichtige Hinweise zur Verwaltung +| Permission | Beschreibung | +|------------|--------------| +| `nexuslobby.admin` | Vollzugriff auf alle Setup-Befehle und Verwaltungsfunktionen. | -- **Sicherheit**: Die Konfiguration erfolgt ausschließlich über In-Game-Befehle. Manuelle Änderungen an den Konfigurationsdateien sind nicht vorgesehen, um die Datenintegrität zu schützen. -- **Streckenänderung**: Wenn du eine Strecke ändern möchtest, nutze `/nexus parkour removeall`. Dies bereinigt die Konfiguration vollständig, sodass du sofort mit `/nexus parkour setcheckpoint` eine neue Route von Grund auf bauen kannst. -- **Absturzsicherung**: Der automatische Teleport zurück zum Checkpoint greift standardmäßig bei Y=50. Achte darauf, dass dein Parkour über dieser Höhe gebaut wird. +--- + +## ⚠️ Wichtige Hinweise + +- **Zwei Strecken, gleiche Länge:** Das System wählt beim Start zufällig eine Strecke. Haben beide eine unterschiedliche Checkpoint-Anzahl, erscheint eine Warnung im Server-Log, der Parcours startet trotzdem. +- **Nur eine Strecke konfiguriert:** Ist nur Strecke 1 oder nur Strecke 2 vollständig eingerichtet, wird automatisch die verfügbare gewählt – kein Fehler. +- **Streckenänderung:** Nutze `/nexus parkour removeall`, um beide Strecken zu löschen und komplett neu zu beginnen. Laufende Runs werden dabei automatisch beendet. +- **Absturzsicherung:** Der Teleport zum Checkpoint greift bei Y < 50. Baue deinen Parcours oberhalb dieser Höhe. +- **Gadget-Schutz:** Spieler, die aktiv einen Parcours absolvieren, können nicht durch Freeze-Ray oder Meteorit gestört werden. + +--- ## 📊 Datenstruktur (parkour.yml) -Das System verwaltet die Daten automatisch. Hier ein Einblick in die Struktur: +```yaml +tracks: + 1: + start: # Startposition Strecke 1 + finish: # Ziel Strecke 1 + checkpoints: + 1: ... + 2: ... + 2: + start: # Startposition Strecke 2 + finish: # Ziel Strecke 2 + checkpoints: + 1: ... + 2: ... -- **locations**: Speichert Start, Ziel und alle durchnummerierten Checkpoints. -- **besttimes**: Speichert die schnellsten Zeiten verknüpft mit der UUID des Spielers. -- **names**: Speichert die Spielernamen für die Anzeige im Top-10-Leaderboard. \ No newline at end of file +besttimes: + : # Schnellste Zeit des Spielers (streckenübergreifend) + +names: + : +``` \ No newline at end of file