Upload via GUI (85 Dateien)
This commit is contained in:
@@ -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
|
||||||
@@ -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>
|
||||||
|
|||||||
@@ -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.
|
|
||||||
|
|
||||||
**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
|
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="https://m-viper.de/img/NexusLobby.png" width="500" alt="NexusLobby">
|
<img src="https://m-viper.de/img/NexusLobby.png" width="500" alt="NexusLobby">
|
||||||
</p>
|
</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.
|
**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.
|
||||||
|
|
||||||

|

|
||||||

|

|
||||||
|

|
||||||

|

|
||||||

|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🎯 Lizenz und Nutzungsbedingungen
|
## 📖 Inhaltsverzeichnis
|
||||||
|
|
||||||
**ALLE RECHTE VORBEHALTEN**
|
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)
|
||||||
|
|
||||||
Dieses Plugin ist urheberrechtlich geschützt. Es gelten folgende Bedingungen:
|
---
|
||||||
|
|
||||||
# Scoreboard ausblenden (Opt-out)
|
## ✅ Was brauche ich?
|
||||||
|
|
||||||
Spieler können das Scoreboard per Befehl ein-/ausblenden. Standardmäßig wird das Scoreboard beim Join angezeigt. Über die Option
|
| 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 |
|
||||||
|
|
||||||
```yaml
|
---
|
||||||
scoreboard-default-visible: true
|
|
||||||
|
## 📦 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 <Name> <server|world>
|
||||||
|
```
|
||||||
|
- `server` = auf einen anderen Server (über BungeeCord)
|
||||||
|
- `world` = an einen anderen Ort auf diesem Server
|
||||||
|
4. **Ziel setzen (nicht vergessen!):**
|
||||||
|
```
|
||||||
|
/portal setdest <Name> <Ziel>
|
||||||
```
|
```
|
||||||
|
|
||||||
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.
|
**Beispiele für das Ziel:**
|
||||||
|
|
||||||
- Die Weitergabe, Verbreitung oder Veröffentlichung des Plugins ist **strengstens untersagt**.
|
| Portal-Typ | Befehl | Bedeutung |
|
||||||
- Jegliche Änderung, Modifikation oder Dekompilierung des Codes ist **verboten**.
|
|------------|--------|-----------|
|
||||||
- Das Plugin darf nicht verkauft, vermietet oder anderweitig kommerziell genutzt werden.
|
| Server | `/portal setdest Survival survival` | Schickt zum BungeeCord-Server `survival` |
|
||||||
- Eine Weitergabe an Dritte ist ohne ausdrückliche schriftliche Genehmigung nicht gestattet.
|
| 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 |
|
||||||
|
|
||||||
Bei Verstoß gegen diese Bedingungen behalten wir uns rechtliche Schritte vor.
|
> ⚠️ **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:**
|
||||||
|
|
||||||
## ✨ Features
|
| Befehl | Was er macht |
|
||||||
|
|--------|--------------|
|
||||||
|
| `/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 |
|
||||||
|
| `/portal list` | Zeigt alle Portale |
|
||||||
|
| `/portal delete <Name>` | Löscht ein Portal |
|
||||||
|
|
||||||
### 🤖 High-End NPC & ArmorStand System
|
> 💡 Schreibe den Portalnamen **genau so**, wie du ihn beim Erstellen geschrieben hast (Groß- und Kleinschreibung).
|
||||||
- **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
|
### 🏃 Parkour
|
||||||
- **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
|
Ein Parkour mit Zeitmessung, Checkpoints, Bestenliste und Trainer-NPC. Es gibt **zwei Strecken** (1 und 2). Beim Start wird zufällig eine gewählt.
|
||||||
- **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
|
**Einrichten (Beispiel Strecke 1):**
|
||||||
- **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
|
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.
|
||||||
- **VPN-Blocker** - Blockiert VPN/Proxy-Verbindungen via proxycheck.io API
|
2. **Checkpoints:** Geh zu jedem Checkpoint **in der richtigen Reihenfolge** und gib dort `/nexus parkour setcheckpoint 1` ein.
|
||||||
- **Country-Blocker** - Geo-IP Filter (Whitelist/Blacklist für Länder)
|
3. **Ziel:** Stell dich ins Ziel und gib `/nexus parkour setfinish 1` ein.
|
||||||
- **Maintenance-Modus** - Vollständiger Wartungsmodus mit Whitelist-Funktion
|
4. **Prüfen:** `/nexus parkour info`
|
||||||
- **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
|
Für Strecke 2 machst du dasselbe mit der `2` am Ende.
|
||||||
- **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
|
> 💡 **Beide Strecken sollten gleich viele Checkpoints haben.** Sonst steht eine Warnung in der Konsole, und die Strecken sind unterschiedlich lang.
|
||||||
- **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
|
|
||||||
|
|
||||||
---
|
**Bestenliste als Hologramm:** Stell dich dorthin, wo sie stehen soll, und gib `/nexus parkour holo 1` ein. Das braucht PlaceholderAPI.
|
||||||
|
|
||||||
## 📋 Befehle
|
**Weitere Parkour-Befehle:**
|
||||||
|
|
||||||
### Haupt-Commands
|
| 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 |
|
||||||
|
|
||||||
| Befehl | Beschreibung | Berechtigung |
|
**Sturz-Höhe einstellen (wichtig):**
|
||||||
|--------|--------------|--------------|
|
|
||||||
| `/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
|
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.
|
||||||
|
|
||||||
| Befehl | Beschreibung | Berechtigung |
|
Die Lösung: In `plugins/NexusLobby/config.yml` (nicht in `parkour.yml`) fügst du ein:
|
||||||
|--------|--------------|--------------|
|
|
||||||
| `/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
|
```yaml
|
||||||
# Spawn-Einstellungen
|
parkour:
|
||||||
spawn:
|
fall_y: 40
|
||||||
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
|
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 <Text>` | Gibt dem NPC einen Namen. `none` entfernt ihn |
|
||||||
|
| `/nexuscmd say <Text>` | 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 <Gespräch-ID>`
|
||||||
|
5. Testen: `/nexuscmd conv start <Gespräch-ID>`
|
||||||
|
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
|
```yaml
|
||||||
conversations:
|
conversations:
|
||||||
willkommen:
|
mein_gespraech:
|
||||||
|
morgens:
|
||||||
dialogue:
|
dialogue:
|
||||||
- "&eWächter: &7Willkommen auf dem Server!"
|
- '&eWächter: &7Guten Morgen!'
|
||||||
- "&aBürger: &7Schön, dass du da bist!"
|
- '&aBürger: &7Dir auch!'
|
||||||
- "&eWächter: &7Viel Spaß beim Erkunden!"
|
mittags:
|
||||||
|
|
||||||
quest_dialog:
|
|
||||||
dialogue:
|
dialogue:
|
||||||
- "&6Quest-Geber: &7Hast du meine Quest erledigt?"
|
- '&eWächter: &7Schöner Tag heute.'
|
||||||
- "&aHeld: &7Ja, ich habe alle Monster besiegt!"
|
abends:
|
||||||
|
dialogue:
|
||||||
links:
|
- '&eWächter: &7Gute Nacht!'
|
||||||
# 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)
|
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 <ID> <Text>`
|
||||||
|
- Löschen: `/holo delete <ID>`
|
||||||
|
|
||||||
|
### 🖼️ MapArt
|
||||||
|
|
||||||
|
Ein Bild aus dem Internet als Wandbild aus Item-Frames.
|
||||||
|
|
||||||
|
```
|
||||||
|
/mapart <Bild-URL> <Breite>x<Höhe>
|
||||||
|
```
|
||||||
|
|
||||||
|
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
|
```yaml
|
||||||
# ActionBar-Nachrichten
|
security:
|
||||||
actionbar:
|
vpn-blocker:
|
||||||
enabled: true
|
enabled: false # true = VPN und Proxy sperren
|
||||||
speed: 3
|
kick-message: "&cVPN und Proxies sind auf diesem Server nicht erlaubt!"
|
||||||
messages:
|
|
||||||
- "&6&lWillkommen &8» &eauf unserem Server!"
|
|
||||||
- "&b&lViel Spaß &8» &7in der Lobby!"
|
|
||||||
|
|
||||||
# BossBar
|
country-blocker:
|
||||||
bossbar:
|
enabled: false # true = nur bestimmte Länder erlauben
|
||||||
enabled: true
|
allowed-countries:
|
||||||
interval: 40
|
- "DE"
|
||||||
messages:
|
- "AT"
|
||||||
- text: "&6&lNexusLobby &8» &eVersion 1.1.0"
|
- "CH"
|
||||||
color: "YELLOW"
|
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ü.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🔐 Berechtigungen
|
## 📋 Alle Befehle
|
||||||
|
|
||||||
### Admin-Berechtigungen
|
`<…>` bedeutet: Du musst etwas eintragen. `[…]` bedeutet: optional.
|
||||||
|
|
||||||
| Berechtigung | Beschreibung |
|
### Allgemein
|
||||||
|--------------|--------------|
|
|
||||||
| `nexuslobby.admin` | Voller Zugriff auf alle System-Einstellungen |
|
| Befehl | Was er macht | Recht |
|
||||||
| `nexuslobby.armorstand.cmd` | NPCs konfigurieren und Dialoge verknüpfen |
|
|--------|--------------|-------|
|
||||||
| `nexuslobby.armorstand.use` | Zugriff auf die ArmorStand-Editor GUI |
|
| `/spawn` (auch `/l`, `/hub`) | Zum Spawn | alle |
|
||||||
| `nexuslobby.build` | Berechtigung für den Baumodus |
|
| `/serverswitcher` | Server-Menü öffnen | `nexuslobby.serverswitcher` |
|
||||||
|
| `/build` | Baumodus ein/aus | `nexuslobby.build` |
|
||||||
|
| `/settings` | Lobby-Regeln ändern | `nexuslobby.admin` |
|
||||||
|
| `/maintenance <on\|off>` | 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 <on\|off>` | Join und Quit unsichtbar | `nexuslobby.admin` |
|
||||||
|
| `/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` | Portale erstellen und löschen |
|
||||||
| `nexuslobby.portal.give` | Portal-Werkzeug erhalten |
|
| `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.hologram` | Hologramme verwalten |
|
||||||
| `nexuslobby.mapart` | MapArt erstellen |
|
| `nexuslobby.mapart` | MapArt erstellen |
|
||||||
| `nexuslobby.maintenance` | Wartungsmodus togglen |
|
| `nexuslobby.serverswitcher` | Server-Menü öffnen (**alle Spieler haben es standardmäßig**) |
|
||||||
|
|
||||||
### Spieler-Berechtigungen
|
|
||||||
|
|
||||||
| Berechtigung | Beschreibung |
|
|
||||||
|--------------|--------------|
|
|
||||||
| `nexuslobby.spawn` | Spawn-Command nutzen |
|
|
||||||
| `nexuslobby.serverswitcher` | Server-Switcher GUI öffnen |
|
|
||||||
| `nexuslobby.scoreboard.admin` | Admin-Scoreboard sehen |
|
| `nexuslobby.scoreboard.admin` | Admin-Scoreboard sehen |
|
||||||
|
|
||||||
### Bypass-Berechtigungen
|
### Ausnahmen (Bypass)
|
||||||
|
|
||||||
| Berechtigung | Beschreibung |
|
| Recht | Was es umgeht |
|
||||||
|--------------|--------------|
|
|-------|---------------|
|
||||||
| `nexuslobby.bypass.maintenance` | Server trotz Wartungsmodus betreten |
|
| `nexuslobby.security.bypass` | VPN- und Länder-Sperre |
|
||||||
| `nexuslobby.bypass.vpn` | VPN-Check überspringen |
|
| `nexuslobby.join.maintenance` | Wartungsmodus (darf trotzdem joinen) |
|
||||||
| `nexuslobby.bypass.country` | Country-Check überspringen |
|
| `nexuslobby.border.bypass` | Die Lobby-Grenze |
|
||||||
|
|
||||||
|
> 💡 Alle diese Rechte haben **OPs** automatisch. Normale Spieler bekommen nur `nexuslobby.serverswitcher` von selbst.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🔧 Technische Details
|
## 🛠️ Probleme und Lösungen
|
||||||
|
|
||||||
### Systemanforderungen
|
### Im Scoreboard steht `%luckperms_prefix%` oder `%bungee_total%`
|
||||||
- **Minecraft**: Paper/Spigot 1.21+ (Spigot-kompatibel, Paper empfohlen)
|
|
||||||
- **Java**: Java 21 oder höher
|
|
||||||
- **Dependencies**: LuckPerms, PlaceholderAPI (optional)
|
|
||||||
|
|
||||||
### Verwendete Technologien
|
**Ursache:** PlaceholderAPI fehlt oder ihm fehlen die Erweiterungen.
|
||||||
- **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
|
**Lösung:** PlaceholderAPI installieren. Dann in der Server-Konsole:
|
||||||
- ✅ 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)
|
/papi ecloud download LuckPerms
|
||||||
- **Caching** für Spieler-Daten und Config-Werte
|
/papi ecloud download Bungee
|
||||||
- **Optimierte Entity-Queries** (nur relevante Welten)
|
/papi reload
|
||||||
- **Effiziente Scheduler-Nutzung** (Tasks werden gecancelt)
|
```
|
||||||
|
|
||||||
|
### 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**.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📦 Installation
|
## 🆕 Änderungen in Version 2.1
|
||||||
|
|
||||||
1. **Download** der neuesten `NexusLobby-1.1.0.jar` aus den [Releases](../../releases)
|
- 🐛 **Scoreboard flackert nicht mehr.** Es wird nur noch aktualisiert, was sich wirklich ändert.
|
||||||
2. **Upload** der JAR-Datei in den `/plugins/` Ordner
|
- 🐛 **VPN- und Länder-Sperre** lesen jetzt die `settings.yml`. Vorher wurde dein Wert ignoriert, und Spieler wurden trotz `enabled: false` gekickt.
|
||||||
3. **Server-Neustart** durchführen
|
- 🐛 **Die Kick-Nachricht ist nie mehr leer.** Es gibt einen Standardtext.
|
||||||
4. **Konfiguration** anpassen (`config.yml`, `visuals.yml`, etc.)
|
- 🔧 Ist keine Sperre eingetragen, ist sie **aus** (vorher an).
|
||||||
5. **Permissions** mit LuckPerms oder einem anderen Permissions-Plugin setzen
|
- 🔧 Die Sperre stürzt nicht mehr ab, wenn der Prüfdienst unvollständig antwortet.
|
||||||
6. **(Optional)** PlaceholderAPI installieren für erweiterte Platzhalter
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🐛 Bekannte Issues & Lösungen
|
## 💬 Hilfe und Lizenz
|
||||||
|
|
||||||
### Ball spawnt mehrfach
|
- 🌐 Webseite: https://m-viper.de
|
||||||
- **Lösung**: Nutze `/nexuslobby ball remove` gefolgt von `/nexuslobby ball setspawn`
|
- 📚 Dokumentation: https://viper-network.de/wiki/NexusLobby/
|
||||||
- Das Anti-Duplikat-System sollte dies automatisch verhindern
|
- 💬 Discord: https://discord.com/invite/FdRs4BRd8D
|
||||||
|
|
||||||
### NPCs schauen nicht zu Spielern
|
**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.
|
||||||
- **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
|
### Lizenz und Nutzungsbedingungen
|
||||||
- **Lösung**: Überprüfe die IP/Port-Einstellungen in `config.yml` unter `servers:`
|
|
||||||
- Stelle sicher, dass die Server erreichbar sind (Firewall, Ports)
|
|
||||||
|
|
||||||
---
|
**ALLE RECHTE VORBEHALTEN.** Dieses Plugin ist urheberrechtlich geschützt.
|
||||||
|
|
||||||
## 📚 Support & Dokumentation
|
- 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.
|
||||||
|
|
||||||
- **Wiki**: Ausführliche Dokumentation im [Wiki](../../wiki)
|
Bei Verstößen behalten wir uns rechtliche Schritte vor.
|
||||||
- **Bug-Reports**: Erstelle ein [Issue](../../issues) bei technischen Problemen
|
|
||||||
- **Feature-Requests**: Vorschläge über [Issues](../../issues) mit Label "enhancement"
|
|
||||||
|
|
||||||
---
|
**Copyright © 2026 – M_Viper – Alle Rechte vorbehalten**
|
||||||
|
|
||||||
## 📝 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.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user