diff --git a/QA_SMOKE_TEST.md b/QA_SMOKE_TEST.md new file mode 100644 index 0000000..10c326c --- /dev/null +++ b/QA_SMOKE_TEST.md @@ -0,0 +1,98 @@ +# NexusLobby Smoke-Test Checkliste + +Datum: 2026-02-05 + +## Build +- [ ] `mvn -q -DskipTests package` ausfuehren und Build-Erfolg bestaetigen. + +## Start +- [ ] Server starten und pruefen, dass das Plugin ohne Errors enabled. +- [ ] Pruefen, dass die Standard-Configs vorhanden sind (config.yml, settings.yml, visuals.yml). + +## Join-Flow +- [ ] Als normaler Spieler joinen; Join-Message ist sichtbar. +- [ ] `/nexus silentjoin` ausfuehren (Toggle an). +- [ ] Reconnect; Join-Message ist fuer diesen Spieler unterdrueckt. +- [ ] `/nexus silentjoin` erneut ausfuehren (Toggle aus). +- [ ] Reconnect; Join-Message ist wieder sichtbar. + +## Gamemode Default +- [ ] In config.yml `lobby.default-gamemode` auf einen validen Wert setzen (z. B. Adventure). +- [ ] Reconnect; Spieler ist im konfigurierten Gamemode. +- [ ] Auf einen invaliden Wert setzen; Reconnect -> Spieler landet in Adventure. + +## Parkour Commands +- [ ] `/setstart` an einer Position ausfuehren und Rueckmeldung pruefen. +- [ ] `/setcheckpoint` ausfuehren und Rueckmeldung pruefen. +- [ ] `/setfinish` ausfuehren und Rueckmeldung pruefen. + +## Server Switcher +- [ ] `/serverswitcher` mit Permission ausfuehren; GUI oeffnet sich. +- [ ] Permission `nexuslobby.serverswitcher` entfernen; Kommando zeigt No-Perm Message. + +## Maintenance Mode +- [ ] `/maintenance on`; Non-OP ohne `nexuslobby.join.maintenance` wird beim Login gekickt. +- [ ] `nexuslobby.join.maintenance` geben; Login waehrend Wartung erlaubt. +- [ ] `/maintenance off`; normaler Login wieder erlaubt. + +## Portal Command (Basis) +- [ ] `/portal list` ausfuehren und pruefen, dass das Kommando funktioniert. +- [ ] `/portal create test server` ausfuehren und pruefen, dass es registriert wird. + +## Player Hider +- [ ] In config.yml `hider.enabled: true` setzen. +- [ ] Joinen und pruefen, dass das Item im Slot `hider.slot` liegt. +- [ ] Rechtsklick auf das Item -> alle Spieler werden versteckt. +- [ ] Erneuter Rechtsklick -> alle Spieler werden wieder angezeigt. + +## Worldborder (Square) +- [ ] Mit Portalwand zwei Punkte markieren. +- [ ] `/border square` ausfuehren und dann den Bereich verlassen -> Teleport zur Lobby. +- [ ] Permission `nexuslobby.border.bypass` geben -> Bereich verlassen ohne Teleport. + +## PlaceholderAPI (optional) +- [ ] Ohne PlaceholderAPI starten -> keine Errors in Konsole. +- [ ] Mit PlaceholderAPI starten -> Scoreboard/PlayerInspect zeigen Prefixe korrekt an. + +## Wrap Up +- [ ] Konsole auf Warnings/Errors pruefen. + +## Testdaten (Beispiele) + +### Beispiel-Config Snippets + +```yaml +# config.yml +lobby: + default-gamemode: Adventure + clear-inventory-on-join: true + +maintenance: + enabled: false + kick_message: "&cServer im Wartungsmodus! Du darfst nicht joinen." + +compass: + title: "&eServer Switcher" + size: 27 + servers: + pvp: + name: "&cPvP Arena" + material: "DIAMOND_SWORD" + command: "server pvp" + slot: 11 + survival: + name: "&aSurvival" + material: "GRASS_BLOCK" + command: "server survival" + slot: 13 +``` + +### Permissions (Beispiele) +- `nexuslobby.admin` +- `nexuslobby.serverswitcher` +- `nexuslobby.join.maintenance` +- `nexuslobby.scoreboard.admin` + +### Test-Accounts +- Admin-Account mit `nexuslobby.admin` +- Normaler Spieler ohne Sonderrechte diff --git a/pom.xml b/pom.xml index 0278905..3f9e361 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ de.nexuslobby NexusLobby - 2.0 + 2.1 jar NexusLobby diff --git a/readme.md b/readme.md index 04fa1f5..a612495 100644 --- a/readme.md +++ b/readme.md @@ -1,400 +1,599 @@ -## 🌐 Mehrsprachigkeit & Texte - -Alle Nachrichten, Hilfetexte und Fehler werden zentral über die Datei `lang.yml` im Ordner `src/main/resources` verwaltet. Dort kannst du für jede Sprache (z.B. Deutsch und Englisch) die Texte pflegen und beliebig erweitern. - -**Beispiel für lang.yml:** - -```yaml -welcome: - de: "Willkommen auf dem Server!" - en: "Welcome to the server!" -no_permission: - de: "§cKeine Berechtigung." - en: "§cNo permission." -``` - -**Sprache umstellen:** -Im Code kann die Sprache mit `LangManager.setLanguage("en")` gewechselt werden. Standard ist Deutsch (`de`). - -**Texte ingame nutzen:** -Alle Texte werden im Plugin mit `LangManager.get("key")` abgerufen und sind direkt ingame sichtbar. Änderungen in der lang.yml wirken nach einem Reload sofort. - -**Chat-Prefix anpassen:** -Der Prefix vor Plugin-Nachrichten wird in der Server-`config.yml` über `prefix` festgelegt. Farben können mit `&`-Codes angegeben werden: - -```yaml -prefix: "&8[&6Nexus&8] " -``` - -Ändere den Text und die Farben nach Wunsch und lade das Plugin anschließend neu. - ---- -# NexusLobby - -

- NexusLobby -

- -Ein umfassendes, modulares Lobby-Plugin für Minecraft Server (Paper/Spigot 1.21+) mit High-End NPC-System, umfangreichen Sicherheitsfunktionen, Soccer-Modul, Parkour-System und voller Konfigurierbarkeit. - -![Minecraft](https://img.shields.io/badge/Minecraft-1.21+-green) -![Java](https://img.shields.io/badge/Java-21+-orange) -![License](https://img.shields.io/badge/License-Proprietary-red) -![Version](https://img.shields.io/badge/Version-1.1.0-blue) - ---- - -## 🎯 Lizenz und Nutzungsbedingungen - -**ALLE RECHTE VORBEHALTEN** - -Dieses Plugin ist urheberrechtlich geschützt. Es gelten folgende Bedingungen: - -# Scoreboard ausblenden (Opt-out) - -Spieler können das Scoreboard per Befehl ein-/ausblenden. Standardmäßig wird das Scoreboard beim Join angezeigt. Über die Option - -```yaml -scoreboard-default-visible: true -``` - -in der `config.yml` kann festgelegt werden, ob das Scoreboard für neue Spieler standardmäßig sichtbar ist. Bei `false` ist es für alle Spieler nach dem Join ausgeblendet, bis sie es selbst aktivieren. - -- Die Weitergabe, Verbreitung oder Veröffentlichung des Plugins ist **strengstens untersagt**. -- Jegliche Änderung, Modifikation oder Dekompilierung des Codes ist **verboten**. -- Das Plugin darf nicht verkauft, vermietet oder anderweitig kommerziell genutzt werden. -- Eine Weitergabe an Dritte ist ohne ausdrückliche schriftliche Genehmigung nicht gestattet. - -Bei Verstoß gegen diese Bedingungen behalten wir uns rechtliche Schritte vor. - ---- - -## ✨ Features - -### 🤖 High-End NPC & ArmorStand System -- **Conversation Manager** - Komplexe Dialoge zwischen NPCs mit Sprechblasen und Sound-Effekten -- **Dynamic KI** - NPCs reagieren auf Tageszeit (Fackel nachts) und ziehen bei Annäherung von Spielern das Schwert -- **LookAt-Logik** - NPCs verfolgen flüssig die Kopfbewegungen von Spielern in der Nähe -- **Command Binding** - Binde Spieler-, Konsolen- oder Bungee-Befehle an NPC-Slots (0-9) -- **Status-Backup** - Automatisches Speichern von NPC-Namen via PersistentDataContainer & Tags - -### ⚽ Soccer/Fußball-System -- **Interaktiver Soccer-Ball** - Physics-basierter Ball mit realistischer Physik -- **Dribbling** - Ball folgt Spielern automatisch in der Nähe -- **Kick-Mechanik** - Schieße den Ball durch Schlagen oder Angriff -- **Wall-Bounce** - Realistische Wand-Abpraller mit Sound-Effekten -- **Partikel-System** - Geschwindigkeits-abhängige Partikel (SONIC_BOOM, CRIT, SMOKE) -- **Auto-Respawn** - Automatischer Respawn bei Inaktivität oder Void-Fall -- **Anti-Duplikat-System** - Verhindert mehrfache Ball-Instanzen - -### 🏃 Parkour-System -- **Unsichtbare Checkpoints** - Partikel-basierte Checkpoint-Markierungen -- **Timer-System** - Präzise Zeitmessung mit ActionBar-Anzeige -- **Bestenliste** - Persistente Top-10 Bestzeiten-Speicherung -- **NPC-Trainer** - Interaktive NPCs zum Starten des Parkours -- **Fail-Safe** - Teleport zum letzten Checkpoint bei Fehler - -### 🌍 Lobby-Management -- **Spawn-System** - Automatischer Teleport zum Spawn bei Join/Respawn -- **Portal-System** - BungeeCord-Portale für nahtlose Server-Wechsel mit Partikel-Effekten -- **Build-Modus** - Schnelles Umschalten zwischen Bau- und Spielmodus -- **Double-Jump** - Konfigurierbarer Doppelsprung mit Cooldown und Partikeln -- **Worldborder** - Unsichtbare Lobby-Begrenzung (Circle/Square) -- **Intro-Tour** - Cinematic Kamera-Tour für neue Spieler - -### 🛡️ Sicherheit & Protection -- **VPN-Blocker** - Blockiert VPN/Proxy-Verbindungen via proxycheck.io API -- **Country-Blocker** - Geo-IP Filter (Whitelist/Blacklist für Länder) -- **Maintenance-Modus** - Vollständiger Wartungsmodus mit Whitelist-Funktion -- **World-Protection** - Schutz vor Griefing, Hunger, Fallschaden und PvP -- **Anti-Grief** - Verhindert Block-Break, Item-Drop und Explosionen -- **Security-Module** - Umfassende Sicherheitsprüfungen beim Join - -### 📊 Visuelle Elemente -- **Scoreboard** - Vollständig animiert mit PlaceholderAPI-Support -- **Tablist** - Dynamische Header/Footer mit Permissions-Anzeige -- **BossBar** - Rotierende Nachrichten mit Farb-Effekten -- **ActionBar** - Typewriter-Effekt für permanente Status-Anzeigen -- **Hologramme** - Text-Displays mit flexibler Positionierung -- **MapArt** - Bild-Generator für Item-Frames aus URLs - -### 🎮 Item-System -- **Compass** - Server-Switcher GUI -- **Player-Hider** - Sichtbarkeits-Toggle für andere Spieler -- **Gadgets** - Konfigurierbares Item-System mit Custom-Slots -- **Player-Inspector** - Detaillierte Spieler-Informationen per Click - ---- - -## 📋 Befehle - -### Haupt-Commands - -| Befehl | Beschreibung | Berechtigung | -|--------|--------------|--------------| -| `/nexuslobby reload` | Lädt das Plugin neu | `nexuslobby.admin` | -| `/nexuslobby setspawn` | Setzt den Lobby-Spawn | `nexuslobby.admin` | -| `/nexuslobby silentjoin ` | Versteckter Join/Quit | `nexuslobby.admin` | -| `/nexuslobby sb ` | Scoreboard-Kontrolle | `nexuslobby.admin` | -| `/spawn` | Teleport zum Spawn | `nexuslobby.spawn` | - -### NPC & ArmorStand - -| Befehl | Beschreibung | Berechtigung | -|--------|--------------|--------------| -| `/nexustools` | NPC Editor GUI (Rotation, KI) | `nexuslobby.armorstand.use` | -| `/nexuscmd add [cmd]` | Bindet Command an NPC | `nexuslobby.armorstand.cmd` | -| `/nexuscmd remove ` | Entfernt Commands | `nexuslobby.armorstand.cmd` | -| `/nexuscmd conv select1-4` | Wählt NPCs für Dialog | `nexuslobby.armorstand.cmd` | -| `/nexuscmd conv link ` | Verknüpft Dialog | `nexuslobby.armorstand.cmd` | -| `/nexuscmd say ` | NPC-Sprechblase | `nexuslobby.armorstand.cmd` | - -### Parkour - -| Befehl | Beschreibung | Berechtigung | -|--------|--------------|--------------| -| `/nexuslobby parkour setstart` | Markiert Start-NPC | `nexuslobby.admin` | -| `/nexuslobby parkour setcheckpoint ` | Setzt Checkpoint | `nexuslobby.admin` | -| `/nexuslobby parkour setfinish` | Setzt Ziel | `nexuslobby.admin` | -| `/nexuslobby parkour reset` | Löscht eigene Zeit | `nexuslobby.admin` | -| `/nexuslobby parkour clear` | Löscht alle Zeiten | `nexuslobby.admin` | -| `/setstart` | Alias für setstart | `nexuslobby.admin` | -| `/setcheckpoint` | Alias für setcheckpoint | `nexuslobby.admin` | -| `/setfinish` | Alias für setfinish | `nexuslobby.admin` | - -### Soccer/Fußball - -| Befehl | Beschreibung | Berechtigung | -|--------|--------------|--------------| -| `/nexuslobby ball setspawn` | Setzt Ball-Spawn | `nexuslobby.admin` | -| `/nexuslobby ball respawn` | Spawnt Ball neu | `nexuslobby.admin` | -| `/nexuslobby ball remove` | Entfernt Ball | `nexuslobby.admin` | - -### Portal & Server - -| Befehl | Beschreibung | Berechtigung | -|--------|--------------|--------------| -| `/portal create ` | Erstellt Portal | `nexuslobby.portal` | -| `/portal delete ` | Löscht Portal | `nexuslobby.portal` | -| `/portal list` | Zeigt alle Portale | `nexuslobby.portal` | -| `/giveportalwand` | Portal-Werkzeug | `nexuslobby.portal.give` | -| `/serverswitcher` | Öffnet Server-GUI | `nexuslobby.serverswitcher` | - -### Sonstiges - -| Befehl | Beschreibung | Berechtigung | -|--------|--------------|--------------| -| `/build` | Build-Modus toggle | `nexuslobby.build` | -| `/maintenance ` | Wartungsmodus | `nexuslobby.maintenance` | -| `/settings` | Lobby-Einstellungen (Gamerules) | `nexuslobby.admin` | -| `/holo create [text]` | Erstellt Hologramm | `nexuslobby.hologram` | -| `/holo delete ` | Löscht Hologramm | `nexuslobby.hologram` | -| `/mapart ` | Erstellt MapArt | `nexuslobby.mapart` | -| `/intro ` | Intro-Tour-Verwaltung | `nexuslobby.admin` | -| `/border ` | Worldborder-Setup | `nexuslobby.admin` | - ---- - -## ⚙️ Konfiguration - -### config.yml (Auszug) - -```yaml -# Spawn-Einstellungen -spawn: - world: "world" - x: 0.5 - y: 64.0 - z: 0.5 - yaw: 0.0 - pitch: 0.0 - -# Lobby-Einstellungen -lobby: - allow-fly: false - pvp-enabled: false - build-enabled: false - default-gamemode: Adventure - clear-inventory-on-join: true - -# Server-Mapping (für Status-Check) -servers: - survival: - ip: "127.0.0.1" - port: 25566 - skyblock: - ip: "127.0.0.1" - port: 25567 - -# Ball/Soccer-Einstellungen -ball: - respawn_delay: 60 # Sekunden bis Auto-Respawn - -# Worldborder -worldborder: - enabled: true - type: "SQUARE" # SQUARE oder CIRCLE - radius: 50.0 -``` - -### conversations.yml - -```yaml -conversations: - willkommen: - dialogue: - - "&eWächter: &7Willkommen auf dem Server!" - - "&aBürger: &7Schön, dass du da bist!" - - "&eWächter: &7Viel Spaß beim Erkunden!" - - quest_dialog: - dialogue: - - "&6Quest-Geber: &7Hast du meine Quest erledigt?" - - "&aHeld: &7Ja, ich habe alle Monster besiegt!" - -links: - # UUID des ersten NPCs - "550e8400-e29b-41d4-a716-446655440000": - partner: "550e8400-e29b-41d4-a716-446655440001" # UUID des zweiten NPCs - dialog: willkommen - automated: true # Startet automatisch -``` - -### visuals.yml (Auszug) - -```yaml -# ActionBar-Nachrichten -actionbar: - enabled: true - speed: 3 - messages: - - "&6&lWillkommen &8» &eauf unserem Server!" - - "&b&lViel Spaß &8» &7in der Lobby!" - -# BossBar -bossbar: - enabled: true - interval: 40 - messages: - - text: "&6&lNexusLobby &8» &eVersion 1.1.0" - color: "YELLOW" -``` - ---- - -## 🔐 Berechtigungen - -### Admin-Berechtigungen - -| Berechtigung | Beschreibung | -|--------------|--------------| -| `nexuslobby.admin` | Voller Zugriff auf alle System-Einstellungen | -| `nexuslobby.armorstand.cmd` | NPCs konfigurieren und Dialoge verknüpfen | -| `nexuslobby.armorstand.use` | Zugriff auf die ArmorStand-Editor GUI | -| `nexuslobby.build` | Berechtigung für den Baumodus | -| `nexuslobby.portal` | Portale erstellen und löschen | -| `nexuslobby.portal.give` | Portal-Werkzeug erhalten | -| `nexuslobby.hologram` | Hologramme verwalten | -| `nexuslobby.mapart` | MapArt erstellen | -| `nexuslobby.maintenance` | Wartungsmodus togglen | - -### Spieler-Berechtigungen - -| Berechtigung | Beschreibung | -|--------------|--------------| -| `nexuslobby.spawn` | Spawn-Command nutzen | -| `nexuslobby.serverswitcher` | Server-Switcher GUI öffnen | -| `nexuslobby.scoreboard.admin` | Admin-Scoreboard sehen | - -### Bypass-Berechtigungen - -| Berechtigung | Beschreibung | -|--------------|--------------| -| `nexuslobby.bypass.maintenance` | Server trotz Wartungsmodus betreten | -| `nexuslobby.bypass.vpn` | VPN-Check überspringen | -| `nexuslobby.bypass.country` | Country-Check überspringen | - ---- - -## 🔧 Technische Details - -### Systemanforderungen -- **Minecraft**: Paper/Spigot 1.21+ (Spigot-kompatibel, Paper empfohlen) -- **Java**: Java 21 oder höher -- **Dependencies**: LuckPerms, PlaceholderAPI (optional) - -### Verwendete Technologien -- **Build-Tool**: Maven 3.9+ -- **JSON-Library**: Gson 2.10.1 (gegenüber json-simple 1.1.1 aktualisiert) -- **BungeeCord API**: Für Server-Wechsel und Messaging -- **PlaceholderAPI**: Für dynamische Platzhalter - -### Code-Qualität -- ✅ Moderne Java 21 Features (Switch-Expressions, Pattern Matching) -- ✅ Proper Error-Handling (Logger statt printStackTrace) -- ✅ Memory-Management (Tasks & Listeners werden sauber disposed) -- ✅ Config-Validierung mit Default-Werten -- ✅ Optimiertes JSON-Parsing mit Gson -- ✅ Spigot-kompatible BungeeCord Chat API - -### Performance-Optimierungen -- **Async-Processing** für API-Calls (Update-Check, VPN-Check) -- **Caching** für Spieler-Daten und Config-Werte -- **Optimierte Entity-Queries** (nur relevante Welten) -- **Effiziente Scheduler-Nutzung** (Tasks werden gecancelt) - ---- - -## 📦 Installation - -1. **Download** der neuesten `NexusLobby-1.1.0.jar` aus den [Releases](../../releases) -2. **Upload** der JAR-Datei in den `/plugins/` Ordner -3. **Server-Neustart** durchführen -4. **Konfiguration** anpassen (`config.yml`, `visuals.yml`, etc.) -5. **Permissions** mit LuckPerms oder einem anderen Permissions-Plugin setzen -6. **(Optional)** PlaceholderAPI installieren für erweiterte Platzhalter - ---- - -## 🐛 Bekannte Issues & Lösungen - -### Ball spawnt mehrfach -- **Lösung**: Nutze `/nexuslobby ball remove` gefolgt von `/nexuslobby ball setspawn` -- Das Anti-Duplikat-System sollte dies automatisch verhindern - -### NPCs schauen nicht zu Spielern -- **Lösung**: Stelle sicher, dass der NPC mit `/nexustools` das LookAt-Feature aktiviert hat -- Prüfe, ob `ArmorStandLookAtModule` in den Logs geladen wird - -### Server-Checker zeigt falsche Status -- **Lösung**: Überprüfe die IP/Port-Einstellungen in `config.yml` unter `servers:` -- Stelle sicher, dass die Server erreichbar sind (Firewall, Ports) - ---- - -## 📚 Support & Dokumentation - -- **Wiki**: Ausführliche Dokumentation im [Wiki](../../wiki) -- **Bug-Reports**: Erstelle ein [Issue](../../issues) bei technischen Problemen -- **Feature-Requests**: Vorschläge über [Issues](../../issues) mit Label "enhancement" - ---- - -## 📝 Changelog - -### Version 1.1.0 (Februar 2026) -- ✨ Soccer/Fußball-System mit realistischer Physik -- ✨ Parkour-System mit Bestenliste und Checkpoints -- ✨ Player-Inspector Modul -- ✨ Config-Validierung mit Auto-Defaults -- 🔧 JSON-Library auf Gson 2.10.1 aktualisiert -- 🔧 Alle printStackTrace() durch Logger ersetzt -- 🔧 Memory-Management verbessert (Tasks & Listeners) -- 🔧 UpdateChecker mit proper JSON-Parsing -- 🐛 Diverse Bug-Fixes und Performance-Optimierungen - ---- - -**Copyright © 2026 - M_Viper - Alle Rechte vorbehalten** - -Die unbefugte Vervielfältigung, Verbreitung oder Weitergabe dieses Plugins ist strafbar und wird rechtlich verfolgt. \ No newline at end of file +# 🌐 NexusLobby + +

+ NexusLobby +

+ +**NexusLobby** macht aus einer leeren Welt eine fertige Minecraft-Lobby. Du bekommst Spawn, Scoreboard, Portale zu anderen Servern, einen Parkour, Fußball, sprechende NPCs, Wartungsmodus, VPN-Sperre und vieles mehr. Alles in einem einzigen Plugin und ohne Programmierkenntnisse. + +![Minecraft](https://img.shields.io/badge/Minecraft-1.21+-green) +![Java](https://img.shields.io/badge/Java-21+-orange) +![Version](https://img.shields.io/badge/Version-2.1-blue) +![License](https://img.shields.io/badge/License-Proprietary-red) + +--- + +## 📖 Inhaltsverzeichnis + +1. [Was brauche ich?](#-was-brauche-ich) +2. [Installation in 6 Schritten](#-installation-in-6-schritten) +3. [Die ersten 5 Minuten](#-die-ersten-5-minuten) +4. [Wo steht was? Die wichtigen Dateien](#-wo-steht-was-die-wichtigen-dateien) +5. [Funktionen und wie du sie einrichtest](#-funktionen-und-wie-du-sie-einrichtest) +6. [Alle Befehle](#-alle-befehle) +7. [Rechte vergeben](#-rechte-vergeben) +8. [Probleme und Lösungen](#-probleme-und-lösungen) +9. [Änderungen in Version 2.1](#-änderungen-in-version-21) +10. [Hilfe und Lizenz](#-hilfe-und-lizenz) + +--- + +## ✅ Was brauche ich? + +| Was | Wofür | Pflicht? | +|-----|-------|----------| +| Ein **Paper-Server** ab Version **1.21** (Spigot geht auch, Paper ist besser) | Der Server, auf dem das Plugin läuft | **Ja** | +| **Java 21** oder neuer | Damit der Server startet | **Ja** | +| **LuckPerms** | Rechte vergeben und Prefixe im Scoreboard | Empfohlen | +| **PlaceholderAPI** | Damit Platzhalter wie `%luckperms_prefix%` im Scoreboard Text statt Code zeigen | Empfohlen | +| **BungeeCord** (oder ein kompatibler Proxy) | Nur, wenn du Spieler zwischen mehreren Servern schicken willst | Optional | + +--- + +## 📦 Installation in 6 Schritten + +1. **Server stoppen.** +2. Die Datei `NexusLobby-2.1.jar` in den Ordner `plugins` deines Servers legen. +3. **Eine alte NexusLobby-Datei löschen**, falls dort schon eine liegt. Sonst werden zwei Versionen geladen. +4. **Server starten.** Das Plugin legt jetzt seinen eigenen Ordner `plugins/NexusLobby/` mit allen Einstellungsdateien an. +5. **Server noch einmal neu starten**, damit alles sauber geladen ist. +6. Ingame (oder in der Konsole) `/nexus reload` eingeben, wenn du später etwas an den Dateien änderst. + +> 💡 **Wichtig:** Ein Plugin ersetzt du immer mit einem **Neustart**. `/nexus reload` lädt nur die Einstellungen neu, nicht die Jar-Datei. + +--- + +## 🚀 Die ersten 5 Minuten + +Mach das als Erstes, in dieser Reihenfolge: + +1. **Spawn setzen.** Stell dich dorthin, wo Spieler ankommen sollen, und gib ein: + ``` + /nexus setspawn + ``` +2. **Rechte vergeben.** Ohne Rechte darf niemand außer OPs etwas. Siehe [Rechte vergeben](#-rechte-vergeben). +3. **Scoreboard prüfen.** Zeigt es Text wie `%luckperms_prefix%` an? Dann fehlt PlaceholderAPI. Siehe [Probleme und Lösungen](#-probleme-und-lösungen). +4. **Lobby-Schutz prüfen.** Spieler können standardmäßig nicht bauen, nicht kämpfen und keine Items droppen. Das ist so gewollt. +5. **Deine Grenze setzen** (optional): `/border circle 50` macht einen runden Bereich mit 50 Blöcken Radius um dich. + +--- + +## 📁 Wo steht was? Die wichtigen Dateien + +Alle Dateien liegen auf dem Server in `plugins/NexusLobby/`. + +| Datei | Was steht dort? | Wann ändere ich sie? | +|-------|-----------------|----------------------| +| `config.yml` | Spawn, Sprache, Chat-Prefix, Tablist, Kompass-Menü, Doppelsprung, Void-Schutz, Fußball, Wartungsmodus | Für fast alle Grundeinstellungen | +| `settings.yml` | Lobby-Regeln (PvP, Bauen, Items droppen …) und **VPN- und Länder-Sperre** | Wenn du Regeln oder die Sperre ändern willst | +| `visuals.yml` | Scoreboard, BossBar, ActionBar | Wenn du Texte oben, unten oder rechts ändern willst | +| `lang.yml` | Alle Nachrichten des Plugins auf Deutsch und Englisch | Wenn du eine Nachricht umformulieren willst | +| `conversations.yml` | Die Gespräche der NPCs | Wenn du eigene Dialoge schreiben willst | +| `parkour.yml` | Strecken, Checkpoints und Bestzeiten | **Nicht von Hand ändern.** Das machst du per Befehl | +| `portals.yml` | Deine Portale | **Nicht von Hand ändern.** Das machst du per Befehl | +| `armorstands.yml` | Gespeicherte NPC-Daten | **Nicht ändern** | + +### So bearbeitest du eine Datei + +1. Server-Dateien öffnen (FTP oder das Panel deines Hosters). +2. Die Datei bearbeiten und **speichern**. +3. Ingame `/nexus reload` eingeben. + +### Farben im Text + +Überall, wo Text steht, gehen Farbcodes mit dem `&`-Zeichen: + +| Code | Farbe | Code | Farbe | +|------|-------|------|-------| +| `&a` | Grün | `&c` | Rot | +| `&e` | Gelb | `&6` | Gold | +| `&b` | Türkis | `&9` | Blau | +| `&7` | Grau | `&f` | Weiß | +| `&l` | **Fett** | `&r` | Zurücksetzen | + +Beispiel: `&6&lWillkommen &7auf der Lobby` ergibt einen fetten goldenen Text, dann einen grauen. + +> ⚠️ **Achtung bei YAML-Dateien:** Die Einrückung (Leerzeichen am Zeilenanfang) ist wichtig. Lösche oder füge sie nicht aus Versehen hinzu. Nimm **keine Tabs**, nur Leerzeichen. + +--- + +## 🧩 Funktionen und wie du sie einrichtest + +### 🏠 Spawn + +Spieler landen beim Joinen und nach dem Tod am Spawn. + +- Setzen: `/nexus setspawn` +- Hinkommen: `/spawn` (auch `/l` und `/hub`) + +### 📊 Scoreboard (die Anzeige rechts) + +Die Texte stehen in `visuals.yml` unter `scoreboard:`. Dort gibt es einen Titel und Zeilen für normale Spieler (`default`) und für Admins (`owner`). + +- Ein- und ausschalten für dich: `/nexus sb on` und `/nexus sb off` +- Admin-Version zeigen: `/nexus sb admin` +- Spieler-Version zeigen: `/nexus sb spieler` +- Soll es für neue Spieler **standardmäßig ausgeblendet** sein? In `config.yml`: `scoreboard-default-visible: false` +- Wie oft es sich aktualisiert, steht in `visuals.yml` bei `update_ticks` (20 = jede Sekunde). + +> 💡 Damit Platzhalter wie `%luckperms_prefix%` oder `%bungee_total%` funktionieren, brauchst du **PlaceholderAPI**. Siehe [Probleme und Lösungen](#-probleme-und-lösungen). + +### 📋 Tablist (die Liste mit der TAB-Taste) + +In `config.yml` unter `tablist:`. Dort stellst du Kopfzeile (`header`), Fußzeile (`footer`) und das Aktualisierungsintervall ein. + +### 🚧 Lobby-Grenze (Border) + +Eine **unsichtbare** Grenze, die Spieler nicht überschreiten dürfen. Wer sie überschreitet, wird zum Spawn zurückgeschickt. + +**Rund (Kreis):** +1. Stell dich in die **Mitte** der Lobby. +2. Gib ein: `/border circle 50` (50 ist der Radius in Blöcken). + +**Eckig (Rechteck):** +1. Hol dir das Werkzeug mit `/giveportalwand`. +2. **Linksklick** auf eine Ecke und **Rechtsklick** auf die gegenüberliegende Ecke. +3. Gib ein: `/border square` + +**Ausschalten:** `/border disable` + +> ⚠️ **Zum Testen:** Wer das Recht `nexuslobby.admin` oder `nexuslobby.border.bypass` hat, wird **nicht** zurückgeschickt. Teste mit einem normalen Account. + +### 🌀 Portale + +Portale schicken Spieler auf einen anderen Server oder an einen anderen Ort. + +**So erstellst du ein Portal (der Ablauf ist wichtig):** + +1. **Werkzeug holen:** `/giveportalwand` (du bekommst einen Blaze Rod). +2. **Zwei Ecken markieren:** **Linksklick** auf einen Block = Position 1, **Rechtsklick** auf einen Block = Position 2. Du musst einen Block anklicken, nicht in die Luft. +3. **Portal erstellen:** + ``` + /portal create + ``` + - `server` = auf einen anderen Server (über BungeeCord) + - `world` = an einen anderen Ort auf diesem Server +4. **Ziel setzen (nicht vergessen!):** + ``` + /portal setdest + ``` + +**Beispiele für das Ziel:** + +| Portal-Typ | Befehl | Bedeutung | +|------------|--------|-----------| +| Server | `/portal setdest Survival survival` | Schickt zum BungeeCord-Server `survival` | +| Welt, zum Spawn | `/portal setdest Hub SPAWN` | Schickt zum Lobby-Spawn | +| Welt, Koordinaten | `/portal setdest Mini world_mini 0 64 0` | Schickt zu diesen Koordinaten | + +> ⚠️ **Ohne `setdest` steht beim Betreten „Verbinde zum Server: null“.** Dann hat das Portal kein Ziel. Der Servername muss genau so heißen wie in deiner BungeeCord-Config. Er ist derselbe wie bei `/server survival`. + +**Weitere Portal-Befehle:** + +| Befehl | Was er macht | +|--------|--------------| +| `/portal setparticle ` | Ändert den Partikel, z. B. `END_ROD`, `FLAME`, `HEART`, `HAPPY_VILLAGER` | +| `/portal setspawn ` | Setzt, wo der Spieler vor dem Server-Wechsel steht. Stell dich davor, er wird 2 Blöcke hinter dich gesetzt | +| `/portal list` | Zeigt alle Portale | +| `/portal delete ` | Löscht ein Portal | + +> 💡 Schreibe den Portalnamen **genau so**, wie du ihn beim Erstellen geschrieben hast (Groß- und Kleinschreibung). + +### 🏃 Parkour + +Ein Parkour mit Zeitmessung, Checkpoints, Bestenliste und Trainer-NPC. Es gibt **zwei Strecken** (1 und 2). Beim Start wird zufällig eine gewählt. + +**Einrichten (Beispiel Strecke 1):** + +1. **Start:** Stell dich an den Start und gib `/nexus parkour setstart 1` ein. Schaust du dabei einen ArmorStand (den Trainer) an, wird er automatisch zum Start-NPC. +2. **Checkpoints:** Geh zu jedem Checkpoint **in der richtigen Reihenfolge** und gib dort `/nexus parkour setcheckpoint 1` ein. +3. **Ziel:** Stell dich ins Ziel und gib `/nexus parkour setfinish 1` ein. +4. **Prüfen:** `/nexus parkour info` + +Für Strecke 2 machst du dasselbe mit der `2` am Ende. + +> 💡 **Beide Strecken sollten gleich viele Checkpoints haben.** Sonst steht eine Warnung in der Konsole, und die Strecken sind unterschiedlich lang. + +**Bestenliste als Hologramm:** Stell dich dorthin, wo sie stehen soll, und gib `/nexus parkour holo 1` ein. Das braucht PlaceholderAPI. + +**Weitere Parkour-Befehle:** + +| Befehl | Was er macht | +|--------|--------------| +| `/nexus parkour reset` | Bricht deinen eigenen Lauf ab (das darf jeder) | +| `/nexus parkour clear` | Löscht alle Bestzeiten | +| `/nexus parkour removeall` | Löscht die komplette Strecke | + +**Sturz-Höhe einstellen (wichtig):** + +Wer unter eine bestimmte Höhe fällt, kommt zum letzten Checkpoint zurück. Standard ist **Höhe Y = 50**. Liegt dein Parkour oder der Trainer **unter 50**, wirst du bei jedem Schritt zurückgesetzt, und der Chat läuft mit „Abgestürzt!“ voll. + +Die Lösung: In `plugins/NexusLobby/config.yml` (nicht in `parkour.yml`) fügst du ein: + +```yaml +parkour: + fall_y: 40 +``` + +Der Wert muss **unter dem tiefsten Punkt** liegen, an dem Spieler stehen. Deine Höhe siehst du mit **F3** bei `XYZ` (die mittlere Zahl). + +### ⚽ Fußball + +Ein Ball, den Spieler schießen und dribbeln können. Mit Toren und Teams. + +| Befehl | Was er macht | +|--------|--------------| +| `/nexus ball setspawn` | Setzt, wo der Ball erscheint | +| `/nexus ball respawn` | Holt den Ball neu | +| `/nexus ball remove` | Entfernt den Ball | + +**Tor einrichten:** +1. Geh zur **inneren Ecke** des Tors und gib `/nexus ball goal pos1` ein. +2. Geh zur **gegenüberliegenden Ecke** (auch 1 bis 2 Blöcke hinter das Tor) und gib `/nexus ball goal pos2` ein. +3. Speichern: `/nexus ball goal save torBlau 1` (Team 1 = Blau, Team 2 = Rot). + +Die Box muss mindestens **3 Blöcke hoch** und **1,5 Blöcke tief** sein. Mit `/nexus ball goal show` machst du sie sichtbar. Mit `/nexus ball goal debug` siehst du die Ball-Position live. + +Wenn der Ball nichts tut, prüfe in `config.yml` unter `ball:`, ob `enabled: true` steht. + +### 🤖 NPCs und Gespräche + +Mit ArmorStands baust du NPCs. Die können Gespräche führen, dir mit dem Blick folgen und Befehle ausführen. + +**NPC bearbeiten:** Schau einen ArmorStand an und gib `/nexustools` ein (auch `/nt`). Es öffnet sich ein Menü. + +**Befehle:** + +| Befehl | Was er macht | +|--------|--------------| +| `/nexuscmd lookat` | Der NPC schaut Spielern nach (an und aus) | +| `/nexuscmd name ` | Gibt dem NPC einen Namen. `none` entfernt ihn | +| `/nexuscmd say ` | Der NPC sagt etwas in einer Sprechblase | + +Du musst dabei den NPC **anschauen**. + +**Gespräch zwischen NPCs einrichten:** + +1. Schau den ersten NPC an: `/nexuscmd conv select1` +2. Schau den zweiten NPC an: `/nexuscmd conv select2` +3. Optional: `select3` und `select4` für bis zu vier NPCs +4. Verknüpfen: `/nexuscmd conv link ` +5. Testen: `/nexuscmd conv start ` +6. Wieder lösen: Schau den NPC an und gib `/nexuscmd conv unlink` ein. + +Du brauchst **mindestens zwei NPCs**, auch wenn im Text nur einer spricht. + +**Eigene Gespräche schreiben:** In `conversations.yml`. Jedes Gespräch hat drei Tageszeiten (`morgens`, `mittags`, `abends`) mit je einer Liste von Zeilen: + +```yaml +conversations: + mein_gespraech: + morgens: + dialogue: + - '&eWächter: &7Guten Morgen!' + - '&aBürger: &7Dir auch!' + mittags: + dialogue: + - '&eWächter: &7Schöner Tag heute.' + abends: + dialogue: + - '&eWächter: &7Gute Nacht!' +``` + +Danach `/nexus reload`. Das Gespräch kannst du dann mit `mein_gespraech` verknüpfen. + +> 💡 Schon dabei sind unter anderem `parkour_begruessung`, `owner_besuch`, `fussball_match`, `baum_drama` und `familien_spaziergang`. + +### 🔤 Hologramme + +Schwebende Texte. + +- Erstellen: `/holo create ` +- Löschen: `/holo delete ` + +### 🖼️ MapArt + +Ein Bild aus dem Internet als Wandbild aus Item-Frames. + +``` +/mapart x +``` + +Beispiel: `/mapart https://example.com/bild.png 3x2` + +### 🎬 Intro-Tour + +Eine Kamerafahrt für neue Spieler. + +| Befehl | Was er macht | +|--------|--------------| +| `/intro add` | Fügt einen Kamerapunkt an deiner Position hinzu | +| `/intro clear` | Löscht alle Punkte | +| `/intro start` | Startet die Tour zum Testen | + +### 🔨 Baumodus + +Normale Spieler dürfen in der Lobby nichts bauen. Mit `/build` schaltest du den **Baumodus** für dich ein und aus. Du brauchst dafür das Recht `nexuslobby.build`. + +### 🔧 Wartungsmodus + +Sperrt den Server für normale Spieler, während du daran arbeitest. + +- Einschalten: `/maintenance on` +- Ausschalten: `/maintenance off` +- Wer trotzdem joinen darf, braucht das Recht `nexuslobby.join.maintenance`. +- Die Kick-Nachricht steht in `config.yml` unter `maintenance:`. + +### 🛡️ VPN- und Länder-Sperre + +Schließt Spieler mit VPN oder Proxy und Spieler aus bestimmten Ländern aus. + +**Die Einstellungen stehen in `settings.yml`:** + +```yaml +security: + vpn-blocker: + enabled: false # true = VPN und Proxy sperren + kick-message: "&cVPN und Proxies sind auf diesem Server nicht erlaubt!" + + country-blocker: + enabled: false # true = nur bestimmte Länder erlauben + allowed-countries: + - "DE" + - "AT" + - "CH" + kick-message: "&cZugriff aus deinem Land (%country%) ist leider nicht gestattet." +``` + +- `enabled: false` heißt: Die Sperre ist **aus**. Das ist der Standard, wenn nichts eingetragen ist. +- Wer das Recht `nexuslobby.security.bypass` hat, wird nie gesperrt. Dafür muss **LuckPerms** installiert sein. +- Die Prüfung nutzt den kostenlosen Dienst `ip-api.com`. Mobilfunk- und Hoster-IPs werden dort manchmal fälschlich als VPN erkannt. Wenn jemand zu Unrecht gekickt wird, gib ihm das Bypass-Recht. + +### 🦘 Doppelsprung, Void-Schutz und mehr + +Alle diese Funktionen schaltest du in `config.yml` mit `enabled: true` oder `false` ein und aus: + +| Funktion | Bereich in `config.yml` | Was sie macht | +|----------|-------------------------|---------------| +| **Doppelsprung** | `doublejump:` | In der Luft nochmal springen. Mit `velocity` stellst du die Höhe ein | +| **Void-Schutz** | `void_protection:` | Wer in die Leere fällt, kommt zum Spawn | +| **Spieler verstecken** | `hider:` | Ein Item, mit dem Spieler andere ausblenden | +| **Kompass-Menü** | `compass:` und `items:` | Menü zum Server-Wechsel | +| **Server-Status** | `servers:` | Zeigt an ArmorStands, ob ein Server online ist | +| **Spieler-Info** | `player_inspect:` | Rechtsklick auf einen Spieler zeigt dessen Statistiken | + +**Lobby-Regeln** (PvP, Bauen, Items droppen, Explosionen, Fallschaden …) stehen in `settings.yml`. Ingame öffnest du sie mit `/settings`, ein Klick-Menü. + +--- + +## 📋 Alle Befehle + +`<…>` bedeutet: Du musst etwas eintragen. `[…]` bedeutet: optional. + +### Allgemein + +| Befehl | Was er macht | Recht | +|--------|--------------|-------| +| `/spawn` (auch `/l`, `/hub`) | Zum Spawn | alle | +| `/serverswitcher` | Server-Menü öffnen | `nexuslobby.serverswitcher` | +| `/build` | Baumodus ein/aus | `nexuslobby.build` | +| `/settings` | Lobby-Regeln ändern | `nexuslobby.admin` | +| `/maintenance ` | Wartungsmodus | `nexuslobby.maintenance` | + +### Verwaltung (`/nexus`, auch `/nexuslobby` und `/lobby`) + +| Befehl | Was er macht | Recht | +|--------|--------------|-------| +| `/nexus reload` | Einstellungen neu laden | `nexuslobby.admin` | +| `/nexus setspawn` | Spawn setzen | `nexuslobby.admin` | +| `/nexus silentjoin ` | Join und Quit unsichtbar | `nexuslobby.admin` | +| `/nexus sb ` | Scoreboard steuern | `nexuslobby.admin` | + +### Parkour + +| Befehl | Was er macht | +|--------|--------------| +| `/nexus parkour setstart <1\|2>` | Start setzen | +| `/nexus parkour setcheckpoint <1\|2>` | Checkpoint setzen | +| `/nexus parkour setfinish <1\|2>` | Ziel setzen | +| `/nexus parkour holo <1\|2>` | Bestenlisten-Hologramm | +| `/nexus parkour info` | Zeigt die Strecken | +| `/nexus parkour reset` | Eigenen Lauf abbrechen | +| `/nexus parkour clear` | Bestzeiten löschen | +| `/nexus parkour removeall` | Strecke löschen | + +Recht: `nexuslobby.admin` (nur `reset` darf jeder). + +### Fußball + +| Befehl | Was er macht | +|--------|--------------| +| `/nexus ball setspawn` | Ball-Spawn setzen | +| `/nexus ball respawn` | Ball neu holen | +| `/nexus ball remove` | Ball entfernen | +| `/nexus ball goal pos1`, `pos2`, `save `, `show`, `debug` | Tore einrichten | + +### Portale und Grenze + +| Befehl | Was er macht | Recht | +|--------|--------------|-------| +| `/giveportalwand` | Portal-Werkzeug | `nexuslobby.portal.give` | +| `/portal create ` | Portal erstellen | `nexuslobby.portal` | +| `/portal setdest ` | Ziel setzen | `nexuslobby.portal` | +| `/portal setparticle ` | Partikel ändern | `nexuslobby.portal` | +| `/portal setspawn ` | Ankunftspunkt setzen | `nexuslobby.portal` | +| `/portal list` | Alle Portale | `nexuslobby.portal` | +| `/portal delete ` | Portal löschen | `nexuslobby.portal` | +| `/border circle ` | Runde Grenze | `nexuslobby.admin` | +| `/border square` | Eckige Grenze | `nexuslobby.admin` | +| `/border disable` | Grenze aus | `nexuslobby.admin` | + +### NPCs und Extras + +| Befehl | Was er macht | Recht | +|--------|--------------|-------| +| `/nexustools` (auch `/nt`) | NPC-Editor | `nexuslobby.armorstand.use` | +| `/nexuscmd …` (auch `/ncmd`, `/conv`) | NPC-Befehle und Gespräche | `nexuslobby.armorstand.cmd` | +| `/holo create ` | Hologramm erstellen | `nexuslobby.hologram` | +| `/holo delete ` | Hologramm löschen | `nexuslobby.hologram` | +| `/mapart ` | MapArt erstellen | `nexuslobby.mapart` | +| `/intro ` | Intro-Tour | `nexuslobby.admin` | + +--- + +## 🔐 Rechte vergeben + +Rechte steuerst du am einfachsten mit **LuckPerms**. Ein Recht gibst du so: + +``` +/lp user permission set true +``` + +Für eine ganze Gruppe (z. B. alle Admins): + +``` +/lp group admin permission set true +``` + +**Beispiel:** Dem Spieler `M_Viper` das Recht zum Bauen geben: + +``` +/lp user M_Viper permission set nexuslobby.build true +``` + +### Die wichtigsten Rechte + +| Recht | Was es erlaubt | +|-------|----------------| +| `nexuslobby.admin` | Fast alles: Reload, Spawn, Border, Parkour, Einstellungen | +| `nexuslobby.build` | Baumodus nutzen | +| `nexuslobby.portal` | Portale erstellen und löschen | +| `nexuslobby.portal.give` | Portal-Werkzeug bekommen | +| `nexuslobby.maintenance` | Wartungsmodus schalten | +| `nexuslobby.armorstand.use` | NPC-Editor öffnen | +| `nexuslobby.armorstand.cmd` | NPC-Befehle und Gespräche | +| `nexuslobby.hologram` | Hologramme verwalten | +| `nexuslobby.mapart` | MapArt erstellen | +| `nexuslobby.serverswitcher` | Server-Menü öffnen (**alle Spieler haben es standardmäßig**) | +| `nexuslobby.scoreboard.admin` | Admin-Scoreboard sehen | + +### Ausnahmen (Bypass) + +| Recht | Was es umgeht | +|-------|---------------| +| `nexuslobby.security.bypass` | VPN- und Länder-Sperre | +| `nexuslobby.join.maintenance` | Wartungsmodus (darf trotzdem joinen) | +| `nexuslobby.border.bypass` | Die Lobby-Grenze | + +> 💡 Alle diese Rechte haben **OPs** automatisch. Normale Spieler bekommen nur `nexuslobby.serverswitcher` von selbst. + +--- + +## 🛠️ Probleme und Lösungen + +### Im Scoreboard steht `%luckperms_prefix%` oder `%bungee_total%` + +**Ursache:** PlaceholderAPI fehlt oder ihm fehlen die Erweiterungen. + +**Lösung:** PlaceholderAPI installieren. Dann in der Server-Konsole: + +``` +/papi ecloud download LuckPerms +/papi ecloud download Bungee +/papi reload +``` + +### Ich werde mit „Abgestürzt! Zurück zum Checkpoint.“ im Dauerfeuer zugespammt + +**Ursache:** Dein Trainer-NPC oder Parkour liegt tiefer als die Sturz-Höhe (Standard Y = 50). + +**Lösung:** In `config.yml` einen niedrigeren Wert setzen. Siehe [Parkour](#-parkour), Abschnitt „Sturz-Höhe“. + +### Beim Portal steht „Verbinde zum Server: null“ + +**Ursache:** Dem Portal fehlt das Ziel. + +**Lösung:** `/portal setdest `. Siehe [Portale](#-portale). + +### „Bitte markiere erst zwei Punkte mit dem Portal-Werkzeug!“ + +**Ursache:** Du hast `/portal create` benutzt, ohne vorher zwei Ecken zu markieren. + +**Lösung:** Erst `/giveportalwand`, dann Links- und Rechtsklick auf zwei Blöcke, dann `/portal create`. + +### Ich werde beim Joinen gekickt, obwohl der VPN-Blocker aus ist + +**Ursache:** Bis Version 2.0 las das Plugin die Sperre aus der falschen Datei. + +**Lösung:** Auf **Version 2.1** aktualisieren und in `settings.yml` prüfen, dass `enabled: false` steht. Danach Server neu starten. Wenn es weiter passiert, steht der Grund in der Server-Konsole. Es könnte auch der Wartungsmodus sein. + +### Das Scoreboard flackert + +**Ursache:** In Version 2.0 und älter wurde es jede Sekunde komplett neu aufgebaut. + +**Lösung:** Auf **Version 2.1** aktualisieren. Wenn es danach noch flackert, läuft ein zweites Scoreboard- oder Tab-Plugin (z. B. TAB). Schalte eines davon aus. + +### Ich werde an der Grenze nicht zurückgeschickt + +**Ursache:** Du bist OP oder hast `nexuslobby.border.bypass`. + +**Lösung:** Teste mit einem normalen Account. + +### Der Ball erscheint mehrfach + +**Lösung:** `/nexus ball remove`, danach `/nexus ball setspawn`. + +### NPCs schauen den Spielern nicht nach + +**Lösung:** Schau den NPC an und gib `/nexuscmd lookat` ein. Es schaltet um. Wenn es an war, ist es jetzt aus, gib den Befehl dann noch einmal ein. + +### Der Server-Status am NPC stimmt nicht + +**Lösung:** Prüfe in `config.yml` unter `servers:` die IP und den Port. Der Name muss genau dem BungeeCord-Servernamen entsprechen. Der Server muss erreichbar sein (Firewall, Ports). + +### Nach einer Änderung passiert nichts + +**Lösung:** Hast du die Datei gespeichert? Dann `/nexus reload`. Bei einer neuen Jar-Datei brauchst du einen **Neustart**. + +--- + +## 🆕 Änderungen in Version 2.1 + +- 🐛 **Scoreboard flackert nicht mehr.** Es wird nur noch aktualisiert, was sich wirklich ändert. +- 🐛 **VPN- und Länder-Sperre** lesen jetzt die `settings.yml`. Vorher wurde dein Wert ignoriert, und Spieler wurden trotz `enabled: false` gekickt. +- 🐛 **Die Kick-Nachricht ist nie mehr leer.** Es gibt einen Standardtext. +- 🔧 Ist keine Sperre eingetragen, ist sie **aus** (vorher an). +- 🔧 Die Sperre stürzt nicht mehr ab, wenn der Prüfdienst unvollständig antwortet. + +--- + +## 💬 Hilfe und Lizenz + +- 🌐 Webseite: https://m-viper.de +- 📚 Dokumentation: https://viper-network.de/wiki/NexusLobby/ +- 💬 Discord: https://discord.com/invite/FdRs4BRd8D + +**Wenn du Hilfe brauchst:** Schreib im Discord, welche **Version** du hast, was du **gemacht** hast und was **passiert ist**. Ein Screenshot oder die Fehlerzeile aus der Server-Konsole hilft sehr. + +### Lizenz und Nutzungsbedingungen + +**ALLE RECHTE VORBEHALTEN.** Dieses Plugin ist urheberrechtlich geschützt. + +- Die Weitergabe, Verbreitung oder Veröffentlichung ist **untersagt**. +- Änderungen, Modifikation oder Dekompilierung des Codes sind **verboten**. +- Das Plugin darf nicht verkauft, vermietet oder kommerziell genutzt werden. +- Eine Weitergabe an Dritte ist ohne ausdrückliche schriftliche Genehmigung nicht gestattet. + +Bei Verstößen behalten wir uns rechtliche Schritte vor. + +**Copyright © 2026 – M_Viper – Alle Rechte vorbehalten**