Upload via GUI (85 Dateien)

This commit is contained in:
2026-11-11 00:38:31 +00:00
parent 3ec1d905dc
commit 7cc38d7c0f
3 changed files with 698 additions and 401 deletions
+98
View File
@@ -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
+1 -1
View File
@@ -6,7 +6,7 @@
<groupId>de.nexuslobby</groupId> <groupId>de.nexuslobby</groupId>
<artifactId>NexusLobby</artifactId> <artifactId>NexusLobby</artifactId>
<version>2.0</version> <version>2.1</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>NexusLobby</name> <name>NexusLobby</name>
+599 -400
View File
@@ -1,400 +1,599 @@
## 🌐 Mehrsprachigkeit & Texte # 🌐 NexusLobby
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. <p align="center">
<img src="https://m-viper.de/img/NexusLobby.png" width="500" alt="NexusLobby">
**Beispiel für lang.yml:** </p>
```yaml **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.
welcome:
de: "Willkommen auf dem Server!" ![Minecraft](https://img.shields.io/badge/Minecraft-1.21+-green)
en: "Welcome to the server!" ![Java](https://img.shields.io/badge/Java-21+-orange)
no_permission: ![Version](https://img.shields.io/badge/Version-2.1-blue)
de: "§cKeine Berechtigung." ![License](https://img.shields.io/badge/License-Proprietary-red)
en: "§cNo permission."
``` ---
**Sprache umstellen:** ## 📖 Inhaltsverzeichnis
Im Code kann die Sprache mit `LangManager.setLanguage("en")` gewechselt werden. Standard ist Deutsch (`de`).
1. [Was brauche ich?](#-was-brauche-ich)
**Texte ingame nutzen:** 2. [Installation in 6 Schritten](#-installation-in-6-schritten)
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. 3. [Die ersten 5 Minuten](#-die-ersten-5-minuten)
4. [Wo steht was? Die wichtigen Dateien](#-wo-steht-was-die-wichtigen-dateien)
**Chat-Prefix anpassen:** 5. [Funktionen und wie du sie einrichtest](#-funktionen-und-wie-du-sie-einrichtest)
Der Prefix vor Plugin-Nachrichten wird in der Server-`config.yml` über `prefix` festgelegt. Farben können mit `&`-Codes angegeben werden: 6. [Alle Befehle](#-alle-befehle)
7. [Rechte vergeben](#-rechte-vergeben)
```yaml 8. [Probleme und Lösungen](#-probleme-und-lösungen)
prefix: "&8[&6Nexus&8] " 9. [Änderungen in Version 2.1](#-änderungen-in-version-21)
``` 10. [Hilfe und Lizenz](#-hilfe-und-lizenz)
Ändere den Text und die Farben nach Wunsch und lade das Plugin anschließend neu. ---
--- ## ✅ Was brauche ich?
# NexusLobby
| Was | Wofür | Pflicht? |
<p align="center"> |-----|-------|----------|
<img src="https://m-viper.de/img/NexusLobby.png" width="500" alt="NexusLobby"> | Ein **Paper-Server** ab Version **1.21** (Spigot geht auch, Paper ist besser) | Der Server, auf dem das Plugin läuft | **Ja** |
</p> | **Java 21** oder neuer | Damit der Server startet | **Ja** |
| **LuckPerms** | Rechte vergeben und Prefixe im Scoreboard | Empfohlen |
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. | **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 |
![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) ## 📦 Installation in 6 Schritten
--- 1. **Server stoppen.**
2. Die Datei `NexusLobby-2.1.jar` in den Ordner `plugins` deines Servers legen.
## 🎯 Lizenz und Nutzungsbedingungen 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.
**ALLE RECHTE VORBEHALTEN** 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.
Dieses Plugin ist urheberrechtlich geschützt. Es gelten folgende Bedingungen:
> 💡 **Wichtig:** Ein Plugin ersetzt du immer mit einem **Neustart**. `/nexus reload` lädt nur die Einstellungen neu, nicht die Jar-Datei.
# Scoreboard ausblenden (Opt-out)
---
Spieler können das Scoreboard per Befehl ein-/ausblenden. Standardmäßig wird das Scoreboard beim Join angezeigt. Über die Option
## 🚀 Die ersten 5 Minuten
```yaml
scoreboard-default-visible: true Mach das als Erstes, in dieser Reihenfolge:
```
1. **Spawn setzen.** Stell dich dorthin, wo Spieler ankommen sollen, und gib ein:
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. ```
/nexus setspawn
- Die Weitergabe, Verbreitung oder Veröffentlichung des Plugins ist **strengstens untersagt**. ```
- Jegliche Änderung, Modifikation oder Dekompilierung des Codes ist **verboten**. 2. **Rechte vergeben.** Ohne Rechte darf niemand außer OPs etwas. Siehe [Rechte vergeben](#-rechte-vergeben).
- Das Plugin darf nicht verkauft, vermietet oder anderweitig kommerziell genutzt werden. 3. **Scoreboard prüfen.** Zeigt es Text wie `%luckperms_prefix%` an? Dann fehlt PlaceholderAPI. Siehe [Probleme und Lösungen](#-probleme-und-lösungen).
- Eine Weitergabe an Dritte ist ohne ausdrückliche schriftliche Genehmigung nicht gestattet. 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.
Bei Verstoß gegen diese Bedingungen behalten wir uns rechtliche Schritte vor.
---
---
## 📁 Wo steht was? Die wichtigen Dateien
## ✨ Features
Alle Dateien liegen auf dem Server in `plugins/NexusLobby/`.
### 🤖 High-End NPC & ArmorStand System
- **Conversation Manager** - Komplexe Dialoge zwischen NPCs mit Sprechblasen und Sound-Effekten | Datei | Was steht dort? | Wann ändere ich sie? |
- **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 | `config.yml` | Spawn, Sprache, Chat-Prefix, Tablist, Kompass-Menü, Doppelsprung, Void-Schutz, Fußball, Wartungsmodus | Für fast alle Grundeinstellungen |
- **Command Binding** - Binde Spieler-, Konsolen- oder Bungee-Befehle an NPC-Slots (0-9) | `settings.yml` | Lobby-Regeln (PvP, Bauen, Items droppen …) und **VPN- und Länder-Sperre** | Wenn du Regeln oder die Sperre ändern willst |
- **Status-Backup** - Automatisches Speichern von NPC-Namen via PersistentDataContainer & Tags | `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 |
### ⚽ Soccer/Fußball-System | `conversations.yml` | Die Gespräche der NPCs | Wenn du eigene Dialoge schreiben willst |
- **Interaktiver Soccer-Ball** - Physics-basierter Ball mit realistischer Physik | `parkour.yml` | Strecken, Checkpoints und Bestzeiten | **Nicht von Hand ändern.** Das machst du per Befehl |
- **Dribbling** - Ball folgt Spielern automatisch in der Nähe | `portals.yml` | Deine Portale | **Nicht von Hand ändern.** Das machst du per Befehl |
- **Kick-Mechanik** - Schieße den Ball durch Schlagen oder Angriff | `armorstands.yml` | Gespeicherte NPC-Daten | **Nicht ändern** |
- **Wall-Bounce** - Realistische Wand-Abpraller mit Sound-Effekten
- **Partikel-System** - Geschwindigkeits-abhängige Partikel (SONIC_BOOM, CRIT, SMOKE) ### So bearbeitest du eine Datei
- **Auto-Respawn** - Automatischer Respawn bei Inaktivität oder Void-Fall
- **Anti-Duplikat-System** - Verhindert mehrfache Ball-Instanzen 1. Server-Dateien öffnen (FTP oder das Panel deines Hosters).
2. Die Datei bearbeiten und **speichern**.
### 🏃 Parkour-System 3. Ingame `/nexus reload` eingeben.
- **Unsichtbare Checkpoints** - Partikel-basierte Checkpoint-Markierungen
- **Timer-System** - Präzise Zeitmessung mit ActionBar-Anzeige ### Farben im Text
- **Bestenliste** - Persistente Top-10 Bestzeiten-Speicherung
- **NPC-Trainer** - Interaktive NPCs zum Starten des Parkours Überall, wo Text steht, gehen Farbcodes mit dem `&`-Zeichen:
- **Fail-Safe** - Teleport zum letzten Checkpoint bei Fehler
| Code | Farbe | Code | Farbe |
### 🌍 Lobby-Management |------|-------|------|-------|
- **Spawn-System** - Automatischer Teleport zum Spawn bei Join/Respawn | `&a` | Grün | `&c` | Rot |
- **Portal-System** - BungeeCord-Portale für nahtlose Server-Wechsel mit Partikel-Effekten | `&e` | Gelb | `&6` | Gold |
- **Build-Modus** - Schnelles Umschalten zwischen Bau- und Spielmodus | `&b` | Türkis | `&9` | Blau |
- **Double-Jump** - Konfigurierbarer Doppelsprung mit Cooldown und Partikeln | `&7` | Grau | `&f` | Weiß |
- **Worldborder** - Unsichtbare Lobby-Begrenzung (Circle/Square) | `&l` | **Fett** | `&r` | Zurücksetzen |
- **Intro-Tour** - Cinematic Kamera-Tour für neue Spieler
Beispiel: `&6&lWillkommen &7auf der Lobby` ergibt einen fetten goldenen Text, dann einen grauen.
### 🛡️ Sicherheit & Protection
- **VPN-Blocker** - Blockiert VPN/Proxy-Verbindungen via proxycheck.io API > ⚠️ **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.
- **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 ## 🧩 Funktionen und wie du sie einrichtest
- **Security-Module** - Umfassende Sicherheitsprüfungen beim Join
### 🏠 Spawn
### 📊 Visuelle Elemente
- **Scoreboard** - Vollständig animiert mit PlaceholderAPI-Support Spieler landen beim Joinen und nach dem Tod am Spawn.
- **Tablist** - Dynamische Header/Footer mit Permissions-Anzeige
- **BossBar** - Rotierende Nachrichten mit Farb-Effekten - Setzen: `/nexus setspawn`
- **ActionBar** - Typewriter-Effekt für permanente Status-Anzeigen - Hinkommen: `/spawn` (auch `/l` und `/hub`)
- **Hologramme** - Text-Displays mit flexibler Positionierung
- **MapArt** - Bild-Generator für Item-Frames aus URLs ### 📊 Scoreboard (die Anzeige rechts)
### 🎮 Item-System 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`).
- **Compass** - Server-Switcher GUI
- **Player-Hider** - Sichtbarkeits-Toggle für andere Spieler - Ein- und ausschalten für dich: `/nexus sb on` und `/nexus sb off`
- **Gadgets** - Konfigurierbares Item-System mit Custom-Slots - Admin-Version zeigen: `/nexus sb admin`
- **Player-Inspector** - Detaillierte Spieler-Informationen per Click - 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).
## 📋 Befehle > 💡 Damit Platzhalter wie `%luckperms_prefix%` oder `%bungee_total%` funktionieren, brauchst du **PlaceholderAPI**. Siehe [Probleme und Lösungen](#-probleme-und-lösungen).
### Haupt-Commands ### 📋 Tablist (die Liste mit der TAB-Taste)
| Befehl | Beschreibung | Berechtigung | In `config.yml` unter `tablist:`. Dort stellst du Kopfzeile (`header`), Fußzeile (`footer`) und das Aktualisierungsintervall ein.
|--------|--------------|--------------|
| `/nexuslobby reload` | Lädt das Plugin neu | `nexuslobby.admin` | ### 🚧 Lobby-Grenze (Border)
| `/nexuslobby setspawn` | Setzt den Lobby-Spawn | `nexuslobby.admin` |
| `/nexuslobby silentjoin <on\|off>` | Versteckter Join/Quit | `nexuslobby.admin` | Eine **unsichtbare** Grenze, die Spieler nicht überschreiten dürfen. Wer sie überschreitet, wird zum Spawn zurückgeschickt.
| `/nexuslobby sb <on\|off\|admin\|spieler>` | Scoreboard-Kontrolle | `nexuslobby.admin` |
| `/spawn` | Teleport zum Spawn | `nexuslobby.spawn` | **Rund (Kreis):**
1. Stell dich in die **Mitte** der Lobby.
### NPC & ArmorStand 2. Gib ein: `/border circle 50` (50 ist der Radius in Blöcken).
| Befehl | Beschreibung | Berechtigung | **Eckig (Rechteck):**
|--------|--------------|--------------| 1. Hol dir das Werkzeug mit `/giveportalwand`.
| `/nexustools` | NPC Editor GUI (Rotation, KI) | `nexuslobby.armorstand.use` | 2. **Linksklick** auf eine Ecke und **Rechtsklick** auf die gegenüberliegende Ecke.
| `/nexuscmd add <slot> <prio> <type> [cmd]` | Bindet Command an NPC | `nexuslobby.armorstand.cmd` | 3. Gib ein: `/border square`
| `/nexuscmd remove <slot\|all>` | Entfernt Commands | `nexuslobby.armorstand.cmd` |
| `/nexuscmd conv select1-4` | Wählt NPCs für Dialog | `nexuslobby.armorstand.cmd` | **Ausschalten:** `/border disable`
| `/nexuscmd conv link <id>` | Verknüpft Dialog | `nexuslobby.armorstand.cmd` |
| `/nexuscmd say <text>` | NPC-Sprechblase | `nexuslobby.armorstand.cmd` | > ⚠️ **Zum Testen:** Wer das Recht `nexuslobby.admin` oder `nexuslobby.border.bypass` hat, wird **nicht** zurückgeschickt. Teste mit einem normalen Account.
### Parkour ### 🌀 Portale
| Befehl | Beschreibung | Berechtigung | Portale schicken Spieler auf einen anderen Server oder an einen anderen Ort.
|--------|--------------|--------------|
| `/nexuslobby parkour setstart` | Markiert Start-NPC | `nexuslobby.admin` | **So erstellst du ein Portal (der Ablauf ist wichtig):**
| `/nexuslobby parkour setcheckpoint <n>` | Setzt Checkpoint | `nexuslobby.admin` |
| `/nexuslobby parkour setfinish` | Setzt Ziel | `nexuslobby.admin` | 1. **Werkzeug holen:** `/giveportalwand` (du bekommst einen Blaze Rod).
| `/nexuslobby parkour reset` | Löscht eigene Zeit | `nexuslobby.admin` | 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.
| `/nexuslobby parkour clear` | Löscht alle Zeiten | `nexuslobby.admin` | 3. **Portal erstellen:**
| `/setstart` | Alias für setstart | `nexuslobby.admin` | ```
| `/setcheckpoint` | Alias für setcheckpoint | `nexuslobby.admin` | /portal create <Name> <server|world>
| `/setfinish` | Alias für setfinish | `nexuslobby.admin` | ```
- `server` = auf einen anderen Server (über BungeeCord)
### Soccer/Fußball - `world` = an einen anderen Ort auf diesem Server
4. **Ziel setzen (nicht vergessen!):**
| Befehl | Beschreibung | Berechtigung | ```
|--------|--------------|--------------| /portal setdest <Name> <Ziel>
| `/nexuslobby ball setspawn` | Setzt Ball-Spawn | `nexuslobby.admin` | ```
| `/nexuslobby ball respawn` | Spawnt Ball neu | `nexuslobby.admin` |
| `/nexuslobby ball remove` | Entfernt Ball | `nexuslobby.admin` | **Beispiele für das Ziel:**
### Portal & Server | Portal-Typ | Befehl | Bedeutung |
|------------|--------|-----------|
| Befehl | Beschreibung | Berechtigung | | Server | `/portal setdest Survival survival` | Schickt zum BungeeCord-Server `survival` |
|--------|--------------|--------------| | Welt, zum Spawn | `/portal setdest Hub SPAWN` | Schickt zum Lobby-Spawn |
| `/portal create <name> <type>` | Erstellt Portal | `nexuslobby.portal` | | Welt, Koordinaten | `/portal setdest Mini world_mini 0 64 0` | Schickt zu diesen Koordinaten |
| `/portal delete <name>` | Löscht Portal | `nexuslobby.portal` |
| `/portal list` | Zeigt alle Portale | `nexuslobby.portal` | > ⚠️ **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`.
| `/giveportalwand` | Portal-Werkzeug | `nexuslobby.portal.give` |
| `/serverswitcher` | Öffnet Server-GUI | `nexuslobby.serverswitcher` | **Weitere Portal-Befehle:**
### Sonstiges | Befehl | Was er macht |
|--------|--------------|
| Befehl | Beschreibung | Berechtigung | | `/portal setparticle <Name> <Partikel>` | Ändert den Partikel, z. B. `END_ROD`, `FLAME`, `HEART`, `HAPPY_VILLAGER` |
|--------|--------------|--------------| | `/portal setspawn <Name>` | Setzt, wo der Spieler vor dem Server-Wechsel steht. Stell dich davor, er wird 2 Blöcke hinter dich gesetzt |
| `/build` | Build-Modus toggle | `nexuslobby.build` | | `/portal list` | Zeigt alle Portale |
| `/maintenance <on\|off>` | Wartungsmodus | `nexuslobby.maintenance` | | `/portal delete <Name>` | Löscht ein Portal |
| `/settings` | Lobby-Einstellungen (Gamerules) | `nexuslobby.admin` |
| `/holo create <id> [text]` | Erstellt Hologramm | `nexuslobby.hologram` | > 💡 Schreibe den Portalnamen **genau so**, wie du ihn beim Erstellen geschrieben hast (Groß- und Kleinschreibung).
| `/holo delete <id>` | Löscht Hologramm | `nexuslobby.hologram` |
| `/mapart <URL> <BxH>` | Erstellt MapArt | `nexuslobby.mapart` | ### 🏃 Parkour
| `/intro <add\|clear\|start>` | Intro-Tour-Verwaltung | `nexuslobby.admin` |
| `/border <circle\|square\|disable>` | Worldborder-Setup | `nexuslobby.admin` | 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):**
## ⚙️ Konfiguration 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.
### config.yml (Auszug) 3. **Ziel:** Stell dich ins Ziel und gib `/nexus parkour setfinish 1` ein.
4. **Prüfen:** `/nexus parkour info`
```yaml
# Spawn-Einstellungen Für Strecke 2 machst du dasselbe mit der `2` am Ende.
spawn:
world: "world" > 💡 **Beide Strecken sollten gleich viele Checkpoints haben.** Sonst steht eine Warnung in der Konsole, und die Strecken sind unterschiedlich lang.
x: 0.5
y: 64.0 **Bestenliste als Hologramm:** Stell dich dorthin, wo sie stehen soll, und gib `/nexus parkour holo 1` ein. Das braucht PlaceholderAPI.
z: 0.5
yaw: 0.0 **Weitere Parkour-Befehle:**
pitch: 0.0
| Befehl | Was er macht |
# Lobby-Einstellungen |--------|--------------|
lobby: | `/nexus parkour reset` | Bricht deinen eigenen Lauf ab (das darf jeder) |
allow-fly: false | `/nexus parkour clear` | Löscht alle Bestzeiten |
pvp-enabled: false | `/nexus parkour removeall` | Löscht die komplette Strecke |
build-enabled: false
default-gamemode: Adventure **Sturz-Höhe einstellen (wichtig):**
clear-inventory-on-join: true
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.
# Server-Mapping (für Status-Check)
servers: Die Lösung: In `plugins/NexusLobby/config.yml` (nicht in `parkour.yml`) fügst du ein:
survival:
ip: "127.0.0.1" ```yaml
port: 25566 parkour:
skyblock: fall_y: 40
ip: "127.0.0.1" ```
port: 25567
Der Wert muss **unter dem tiefsten Punkt** liegen, an dem Spieler stehen. Deine Höhe siehst du mit **F3** bei `XYZ` (die mittlere Zahl).
# Ball/Soccer-Einstellungen
ball: ### ⚽ Fußball
respawn_delay: 60 # Sekunden bis Auto-Respawn
Ein Ball, den Spieler schießen und dribbeln können. Mit Toren und Teams.
# Worldborder
worldborder: | Befehl | Was er macht |
enabled: true |--------|--------------|
type: "SQUARE" # SQUARE oder CIRCLE | `/nexus ball setspawn` | Setzt, wo der Ball erscheint |
radius: 50.0 | `/nexus ball respawn` | Holt den Ball neu |
``` | `/nexus ball remove` | Entfernt den Ball |
### conversations.yml **Tor einrichten:**
1. Geh zur **inneren Ecke** des Tors und gib `/nexus ball goal pos1` ein.
```yaml 2. Geh zur **gegenüberliegenden Ecke** (auch 1 bis 2 Blöcke hinter das Tor) und gib `/nexus ball goal pos2` ein.
conversations: 3. Speichern: `/nexus ball goal save torBlau 1` (Team 1 = Blau, Team 2 = Rot).
willkommen:
dialogue: 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.
- "&eWächter: &7Willkommen auf dem Server!"
- "&aBürger: &7Schön, dass du da bist!" Wenn der Ball nichts tut, prüfe in `config.yml` unter `ball:`, ob `enabled: true` steht.
- "&eWächter: &7Viel Spaß beim Erkunden!"
### 🤖 NPCs und Gespräche
quest_dialog:
dialogue: Mit ArmorStands baust du NPCs. Die können Gespräche führen, dir mit dem Blick folgen und Befehle ausführen.
- "&6Quest-Geber: &7Hast du meine Quest erledigt?"
- "&aHeld: &7Ja, ich habe alle Monster besiegt!" **NPC bearbeiten:** Schau einen ArmorStand an und gib `/nexustools` ein (auch `/nt`). Es öffnet sich ein Menü.
links: **Befehle:**
# UUID des ersten NPCs
"550e8400-e29b-41d4-a716-446655440000": | Befehl | Was er macht |
partner: "550e8400-e29b-41d4-a716-446655440001" # UUID des zweiten NPCs |--------|--------------|
dialog: willkommen | `/nexuscmd lookat` | Der NPC schaut Spielern nach (an und aus) |
automated: true # Startet automatisch | `/nexuscmd name <Text>` | Gibt dem NPC einen Namen. `none` entfernt ihn |
``` | `/nexuscmd say <Text>` | Der NPC sagt etwas in einer Sprechblase |
### visuals.yml (Auszug) Du musst dabei den NPC **anschauen**.
```yaml **Gespräch zwischen NPCs einrichten:**
# ActionBar-Nachrichten
actionbar: 1. Schau den ersten NPC an: `/nexuscmd conv select1`
enabled: true 2. Schau den zweiten NPC an: `/nexuscmd conv select2`
speed: 3 3. Optional: `select3` und `select4` für bis zu vier NPCs
messages: 4. Verknüpfen: `/nexuscmd conv link <Gespräch-ID>`
- "&6&lWillkommen &8» &eauf unserem Server!" 5. Testen: `/nexuscmd conv start <Gespräch-ID>`
- "&b&lViel Spaß &8» &7in der Lobby!" 6. Wieder lösen: Schau den NPC an und gib `/nexuscmd conv unlink` ein.
# BossBar Du brauchst **mindestens zwei NPCs**, auch wenn im Text nur einer spricht.
bossbar:
enabled: true **Eigene Gespräche schreiben:** In `conversations.yml`. Jedes Gespräch hat drei Tageszeiten (`morgens`, `mittags`, `abends`) mit je einer Liste von Zeilen:
interval: 40
messages: ```yaml
- text: "&6&lNexusLobby &8» &eVersion 1.1.0" conversations:
color: "YELLOW" mein_gespraech:
``` morgens:
dialogue:
--- - '&eWächter: &7Guten Morgen!'
- '&aBürger: &7Dir auch!'
## 🔐 Berechtigungen mittags:
dialogue:
### Admin-Berechtigungen - '&eWächter: &7Schöner Tag heute.'
abends:
| Berechtigung | Beschreibung | dialogue:
|--------------|--------------| - '&eWächter: &7Gute Nacht!'
| `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 | Danach `/nexus reload`. Das Gespräch kannst du dann mit `mein_gespraech` verknüpfen.
| `nexuslobby.build` | Berechtigung für den Baumodus |
| `nexuslobby.portal` | Portale erstellen und löschen | > 💡 Schon dabei sind unter anderem `parkour_begruessung`, `owner_besuch`, `fussball_match`, `baum_drama` und `familien_spaziergang`.
| `nexuslobby.portal.give` | Portal-Werkzeug erhalten |
| `nexuslobby.hologram` | Hologramme verwalten | ### 🔤 Hologramme
| `nexuslobby.mapart` | MapArt erstellen |
| `nexuslobby.maintenance` | Wartungsmodus togglen | Schwebende Texte.
### Spieler-Berechtigungen - Erstellen: `/holo create <ID> <Text>`
- Löschen: `/holo delete <ID>`
| Berechtigung | Beschreibung |
|--------------|--------------| ### 🖼️ MapArt
| `nexuslobby.spawn` | Spawn-Command nutzen |
| `nexuslobby.serverswitcher` | Server-Switcher GUI öffnen | Ein Bild aus dem Internet als Wandbild aus Item-Frames.
| `nexuslobby.scoreboard.admin` | Admin-Scoreboard sehen |
```
### Bypass-Berechtigungen /mapart <Bild-URL> <Breite>x<Höhe>
```
| Berechtigung | Beschreibung |
|--------------|--------------| Beispiel: `/mapart https://example.com/bild.png 3x2`
| `nexuslobby.bypass.maintenance` | Server trotz Wartungsmodus betreten |
| `nexuslobby.bypass.vpn` | VPN-Check überspringen | ### 🎬 Intro-Tour
| `nexuslobby.bypass.country` | Country-Check überspringen |
Eine Kamerafahrt für neue Spieler.
---
| Befehl | Was er macht |
## 🔧 Technische Details |--------|--------------|
| `/intro add` | Fügt einen Kamerapunkt an deiner Position hinzu |
### Systemanforderungen | `/intro clear` | Löscht alle Punkte |
- **Minecraft**: Paper/Spigot 1.21+ (Spigot-kompatibel, Paper empfohlen) | `/intro start` | Startet die Tour zum Testen |
- **Java**: Java 21 oder höher
- **Dependencies**: LuckPerms, PlaceholderAPI (optional) ### 🔨 Baumodus
### Verwendete Technologien 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`.
- **Build-Tool**: Maven 3.9+
- **JSON-Library**: Gson 2.10.1 (gegenüber json-simple 1.1.1 aktualisiert) ### 🔧 Wartungsmodus
- **BungeeCord API**: Für Server-Wechsel und Messaging
- **PlaceholderAPI**: Für dynamische Platzhalter Sperrt den Server für normale Spieler, während du daran arbeitest.
### Code-Qualität - Einschalten: `/maintenance on`
- ✅ Moderne Java 21 Features (Switch-Expressions, Pattern Matching) - Ausschalten: `/maintenance off`
- ✅ Proper Error-Handling (Logger statt printStackTrace) - Wer trotzdem joinen darf, braucht das Recht `nexuslobby.join.maintenance`.
- ✅ Memory-Management (Tasks & Listeners werden sauber disposed) - Die Kick-Nachricht steht in `config.yml` unter `maintenance:`.
- ✅ Config-Validierung mit Default-Werten
- ✅ Optimiertes JSON-Parsing mit Gson ### 🛡️ VPN- und Länder-Sperre
- ✅ Spigot-kompatible BungeeCord Chat API
Schließt Spieler mit VPN oder Proxy und Spieler aus bestimmten Ländern aus.
### Performance-Optimierungen
- **Async-Processing** für API-Calls (Update-Check, VPN-Check) **Die Einstellungen stehen in `settings.yml`:**
- **Caching** für Spieler-Daten und Config-Werte
- **Optimierte Entity-Queries** (nur relevante Welten) ```yaml
- **Effiziente Scheduler-Nutzung** (Tasks werden gecancelt) security:
vpn-blocker:
--- enabled: false # true = VPN und Proxy sperren
kick-message: "&cVPN und Proxies sind auf diesem Server nicht erlaubt!"
## 📦 Installation
country-blocker:
1. **Download** der neuesten `NexusLobby-1.1.0.jar` aus den [Releases](../../releases) enabled: false # true = nur bestimmte Länder erlauben
2. **Upload** der JAR-Datei in den `/plugins/` Ordner allowed-countries:
3. **Server-Neustart** durchführen - "DE"
4. **Konfiguration** anpassen (`config.yml`, `visuals.yml`, etc.) - "AT"
5. **Permissions** mit LuckPerms oder einem anderen Permissions-Plugin setzen - "CH"
6. **(Optional)** PlaceholderAPI installieren für erweiterte Platzhalter 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.
## 🐛 Bekannte Issues & Lösungen - 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.
### Ball spawnt mehrfach
- **Lösung**: Nutze `/nexuslobby ball remove` gefolgt von `/nexuslobby ball setspawn` ### 🦘 Doppelsprung, Void-Schutz und mehr
- Das Anti-Duplikat-System sollte dies automatisch verhindern
Alle diese Funktionen schaltest du in `config.yml` mit `enabled: true` oder `false` ein und aus:
### NPCs schauen nicht zu Spielern
- **Lösung**: Stelle sicher, dass der NPC mit `/nexustools` das LookAt-Feature aktiviert hat | Funktion | Bereich in `config.yml` | Was sie macht |
- Prüfe, ob `ArmorStandLookAtModule` in den Logs geladen wird |----------|-------------------------|---------------|
| **Doppelsprung** | `doublejump:` | In der Luft nochmal springen. Mit `velocity` stellst du die Höhe ein |
### Server-Checker zeigt falsche Status | **Void-Schutz** | `void_protection:` | Wer in die Leere fällt, kommt zum Spawn |
- **Lösung**: Überprüfe die IP/Port-Einstellungen in `config.yml` unter `servers:` | **Spieler verstecken** | `hider:` | Ein Item, mit dem Spieler andere ausblenden |
- Stelle sicher, dass die Server erreichbar sind (Firewall, Ports) | **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 |
## 📚 Support & Dokumentation **Lobby-Regeln** (PvP, Bauen, Items droppen, Explosionen, Fallschaden …) stehen in `settings.yml`. Ingame öffnest du sie mit `/settings`, ein Klick-Menü.
- **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" ## 📋 Alle Befehle
--- `<…>` bedeutet: Du musst etwas eintragen. `[…]` bedeutet: optional.
## 📝 Changelog ### Allgemein
### Version 1.1.0 (Februar 2026) | Befehl | Was er macht | Recht |
- ✨ Soccer/Fußball-System mit realistischer Physik |--------|--------------|-------|
- ✨ Parkour-System mit Bestenliste und Checkpoints | `/spawn` (auch `/l`, `/hub`) | Zum Spawn | alle |
- ✨ Player-Inspector Modul | `/serverswitcher` | Server-Menü öffnen | `nexuslobby.serverswitcher` |
- ✨ Config-Validierung mit Auto-Defaults | `/build` | Baumodus ein/aus | `nexuslobby.build` |
- 🔧 JSON-Library auf Gson 2.10.1 aktualisiert | `/settings` | Lobby-Regeln ändern | `nexuslobby.admin` |
- 🔧 Alle printStackTrace() durch Logger ersetzt | `/maintenance <on\|off>` | Wartungsmodus | `nexuslobby.maintenance` |
- 🔧 Memory-Management verbessert (Tasks & Listeners)
- 🔧 UpdateChecker mit proper JSON-Parsing ### Verwaltung (`/nexus`, auch `/nexuslobby` und `/lobby`)
- 🐛 Diverse Bug-Fixes und Performance-Optimierungen
| Befehl | Was er macht | Recht |
--- |--------|--------------|-------|
| `/nexus reload` | Einstellungen neu laden | `nexuslobby.admin` |
**Copyright © 2026 - M_Viper - Alle Rechte vorbehalten** | `/nexus setspawn` | Spawn setzen | `nexuslobby.admin` |
| `/nexus silentjoin <on\|off>` | Join und Quit unsichtbar | `nexuslobby.admin` |
Die unbefugte Vervielfältigung, Verbreitung oder Weitergabe dieses Plugins ist strafbar und wird rechtlich verfolgt. | `/nexus sb <on\|off\|admin\|spieler>` | 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 <Name> <Team>`, `show`, `debug` | Tore einrichten |
### Portale und Grenze
| Befehl | Was er macht | Recht |
|--------|--------------|-------|
| `/giveportalwand` | Portal-Werkzeug | `nexuslobby.portal.give` |
| `/portal create <Name> <server\|world>` | Portal erstellen | `nexuslobby.portal` |
| `/portal setdest <Name> <Ziel>` | Ziel setzen | `nexuslobby.portal` |
| `/portal setparticle <Name> <Partikel>` | Partikel ändern | `nexuslobby.portal` |
| `/portal setspawn <Name>` | Ankunftspunkt setzen | `nexuslobby.portal` |
| `/portal list` | Alle Portale | `nexuslobby.portal` |
| `/portal delete <Name>` | Portal löschen | `nexuslobby.portal` |
| `/border circle <Radius>` | 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 <ID> <Text>` | Hologramm erstellen | `nexuslobby.hologram` |
| `/holo delete <ID>` | Hologramm löschen | `nexuslobby.hologram` |
| `/mapart <URL> <BxH>` | MapArt erstellen | `nexuslobby.mapart` |
| `/intro <add\|clear\|start>` | Intro-Tour | `nexuslobby.admin` |
---
## 🔐 Rechte vergeben
Rechte steuerst du am einfachsten mit **LuckPerms**. Ein Recht gibst du so:
```
/lp user <Spielername> permission set <Recht> true
```
Für eine ganze Gruppe (z. B. alle Admins):
```
/lp group admin permission set <Recht> 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 <Name> <Servername>`. 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**