382 lines
14 KiB
Markdown
382 lines
14 KiB
Markdown
## 🌐 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.
|
|
|
|
---
|
|
# NexusLobby
|
|
|
|
<p align="center">
|
|
<img src="https://m-viper.de/img/NexusLobby.png" width="500" alt="NexusLobby">
|
|
</p>
|
|
|
|
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 <on\|off>` | Versteckter Join/Quit | `nexuslobby.admin` |
|
|
| `/nexuslobby sb <on\|off\|admin\|spieler>` | 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 <slot> <prio> <type> [cmd]` | Bindet Command an NPC | `nexuslobby.armorstand.cmd` |
|
|
| `/nexuscmd remove <slot\|all>` | Entfernt Commands | `nexuslobby.armorstand.cmd` |
|
|
| `/nexuscmd conv select1-4` | Wählt NPCs für Dialog | `nexuslobby.armorstand.cmd` |
|
|
| `/nexuscmd conv link <id>` | Verknüpft Dialog | `nexuslobby.armorstand.cmd` |
|
|
| `/nexuscmd say <text>` | NPC-Sprechblase | `nexuslobby.armorstand.cmd` |
|
|
|
|
### Parkour
|
|
|
|
| Befehl | Beschreibung | Berechtigung |
|
|
|--------|--------------|--------------|
|
|
| `/nexuslobby parkour setstart` | Markiert Start-NPC | `nexuslobby.admin` |
|
|
| `/nexuslobby parkour setcheckpoint <n>` | 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 <name> <type>` | Erstellt Portal | `nexuslobby.portal` |
|
|
| `/portal delete <name>` | 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 <on\|off>` | Wartungsmodus | `nexuslobby.maintenance` |
|
|
| `/settings` | Lobby-Einstellungen (Gamerules) | `nexuslobby.admin` |
|
|
| `/holo create <id> [text]` | Erstellt Hologramm | `nexuslobby.hologram` |
|
|
| `/holo delete <id>` | Löscht Hologramm | `nexuslobby.hologram` |
|
|
| `/mapart <URL> <BxH>` | Erstellt MapArt | `nexuslobby.mapart` |
|
|
| `/intro <add\|clear\|start>` | Intro-Tour-Verwaltung | `nexuslobby.admin` |
|
|
| `/border <circle\|square\|disable>` | 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. |