# 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.




---
## 🎯 Lizenz und Nutzungsbedingungen
**ALLE RECHTE VORBEHALTEN**
Dieses Plugin ist urheberrechtlich geschützt. Es gelten folgende Bedingungen:
- Die Nutzung ist ausschließlich für den persönlichen Gebrauch gestattet.
- 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"
```
---
## 🌐 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.
---
## 🔐 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.