diff --git a/README.md b/README.md index f18a616..94c1772 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,41 @@ +## 🌐 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

NexusLobby

-Ein umfassendes Lobby-Plugin für Minecraft Server (Paper/Spigot 1.21+) mit modularem Aufbau, High-End NPC-System, umfangreichen Sicherheitsfunktionen und voller Konfigurierbarkeit. +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 +## 🎯 Lizenz und Nutzungsbedingungen **ALLE RECHTE VORBEHALTEN** @@ -28,68 +51,222 @@ Bei Verstoß gegen diese Bedingungen behalten wir uns rechtliche Schritte vor. --- -## Features +## ✨ 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. +- **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. -- **Build-Modus** - Schnelles Umschalten zwischen Bau- und Spielmodus. -- **Double-Jump** - Konfigurierbarer Doppelsprung mit Cooldown und Partikeln. +- **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** - Vollständiger Wartungsmodus mit Whitelist-Funktion. -- **World-Protection** - Schutz vor Griefing, Hunger, Fallschaden und PvP. +- **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 & Tablist** - Vollständig animiert mit PlaceholderAPI-Support. -- **BossBar & ActionBar** - Rotierende Nachrichten und permanente Status-Anzeigen. -- **Hologramme** - Einfache Erstellung von Text-Displays in der Lobby. +- **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 +## 📋 Befehle + +### Haupt-Commands | Befehl | Beschreibung | Berechtigung | |--------|--------------|--------------| -| `/nexuslobby` | Hauptbefehl (reload, setspawn, silentjoin) | `nexuslobby.admin` | -| `/nexuscmd` | NPC Command/Dialog Verwaltung (aliases: `ncmd`, `conv`) | `nexuslobby.armorstand.cmd` | -| `/nexustools` | NPC Editor GUI (Rotation, KI, Sichtbarkeit) | `nexuslobby.armorstand.use` | -| `/build` | Aktiviert/Deaktiviert den Baumodus | `nexuslobby.build` | -| `/maintenance` | Schaltet den Wartungsmodus (on/off) | `nexuslobby.maintenance` | -| `/portal` | Verwaltung der Server-Portale | `nexuslobby.portal` | -| `/holo` | Erstellt oder löscht Text-Hologramme | `nexuslobby.hologram` | -| `/mapart` | Erstellt Bilder aus URLs auf Karten-Rahmen | `nexuslobby.mapart` | +| `/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 (Auszug) +## ⚙️ 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-NPC1: - partner: UUID-NPC2 + # 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 +## 🔐 Berechtigungen + +### Admin-Berechtigungen | Berechtigung | Beschreibung | |--------------|--------------| @@ -98,6 +275,18 @@ links: | `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 @@ -105,16 +294,89 @@ links: |--------------|--------------| | `nexuslobby.bypass.maintenance` | Server trotz Wartungsmodus betreten | | `nexuslobby.bypass.vpn` | VPN-Check überspringen | +| `nexuslobby.bypass.country` | Country-Check überspringen | --- -## Support & Kontakt +## 🔧 Technische Details -- **Wiki:** Ausführliche Dokumentation der Module im [Wiki](../../../wiki). -- **Bug-Reports:** Erstelle ein [Issue](../../../issues) bei technischen Problemen. +### 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) --- -**Copyright (c) 2026 - M_Viper - Alle Rechte vorbehalten** +## 📦 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