232 lines
8.1 KiB
Markdown
232 lines
8.1 KiB
Markdown
# TeleportSuite
|
|
|
|
TeleportSuite ist ein umfassendes Teleport-Plugin für Paper/Spigot mit Homes, Warps, Portalen, Spawn-System, Savepoints, Back/Deathback, Teleportanfragen und BungeeCord-Unterstützung.
|
|
|
|
---
|
|
|
|
## Features
|
|
|
|
- Homes mit konfigurierbaren Limits pro Rang
|
|
- Warps mit optionalen Berechtigungen
|
|
- Portale für Server- oder Weltwechsel
|
|
- Spawn, FirstSpawn und Deathback
|
|
- Teleportanfragen (TPA) mit Accept/Deny
|
|
- Back- und Cooldown-/Warmup-System
|
|
- Teleport zu Koordinaten, Welten und Spielern
|
|
- Entity-Transport
|
|
- SQLite- und MySQL-Unterstützung
|
|
- BungeeCord-Unterstützung für verteilte Servernetzwerke
|
|
|
|
---
|
|
|
|
## Voraussetzungen
|
|
|
|
- Paper oder Spigot ab Minecraft 1.20
|
|
- Java 21 oder neuer
|
|
- Optional: MySQL, falls mehrere Server auf dieselbe Datenbank zugreifen sollen
|
|
- Optional: BungeeCord-Proxy, falls du mehrere Server vernetzt hast
|
|
|
|
---
|
|
|
|
## Installation
|
|
|
|
### Einzelner Server (kein BungeeCord)
|
|
|
|
1. Die JAR-Datei in den `plugins`-Ordner deines Servers kopieren.
|
|
2. Server starten → Plugin legt `config.yml` und Datenbank automatisch an.
|
|
3. Server stoppen und `config.yml` nach Bedarf anpassen.
|
|
4. Server neu starten.
|
|
|
|
---
|
|
|
|
### BungeeCord-Netzwerk ⚠️
|
|
|
|
> Wenn du mehrere Server mit BungeeCord verbunden hast und Spieler **serverübergreifend** teleportieren sollen, musst du das Plugin auf **jedem Spigot-Server UND auf dem BungeeCord-Proxy** installieren.
|
|
|
|
**Schritt-für-Schritt:**
|
|
|
|
**1. JAR auf jeden Spigot-Server kopieren**
|
|
|
|
Kopiere die `TeleportSuite.jar` in den `plugins`-Ordner von **jedem einzelnen** Spigot-Server in deinem Netzwerk (z.B. Lobby, Survival, Creative, ...).
|
|
|
|
**2. JAR auf den BungeeCord-Proxy kopieren**
|
|
|
|
Kopiere dieselbe `TeleportSuite.jar` auch in den `plugins`-Ordner deines **BungeeCord-Proxys**. Das Plugin erkennt automatisch ob es auf Spigot oder BungeeCord läuft.
|
|
|
|
**3. Jeden Server einmal starten**
|
|
|
|
Starte jeden Server einmal kurz, damit die `config.yml` angelegt wird. Dann stoppe ihn wieder.
|
|
|
|
**4. config.yml auf jedem Spigot-Server anpassen**
|
|
|
|
Öffne die `plugins/TeleportSuite/config.yml` auf **jedem Spigot-Server** und passe folgende Einstellungen an:
|
|
|
|
```yaml
|
|
bungee:
|
|
enabled: true # ← MUSS auf true stehen, sonst kein Cross-Server-Teleport!
|
|
server-name: "survival" # ← Den Namen dieses Servers eintragen (siehe unten)
|
|
```
|
|
|
|
> **Woher bekomme ich den `server-name`?**
|
|
> Öffne die `config.yml` deines **BungeeCord-Proxys** (nicht des Spigot-Servers!).
|
|
> Dort findest du einen Abschnitt wie diesen:
|
|
> ```yaml
|
|
> servers:
|
|
> lobby:
|
|
> address: localhost:25566
|
|
> survival:
|
|
> address: localhost:25567
|
|
> creative:
|
|
> address: localhost:25568
|
|
> ```
|
|
> Der `server-name` in der TeleportSuite-Config muss **exakt** dem Namen aus dieser Liste entsprechen.
|
|
> Beispiel: Auf dem Survival-Server trägst du `server-name: "survival"` ein.
|
|
> Auf dem Lobby-Server trägst du `server-name: "lobby"` ein. Und so weiter.
|
|
|
|
**5. Datenbank einrichten (empfohlen: MySQL)**
|
|
|
|
Damit alle Server auf dieselben Homes, Warps usw. zugreifen, solltest du MySQL verwenden und auf jedem Spigot-Server dieselben Zugangsdaten eintragen:
|
|
|
|
```yaml
|
|
database:
|
|
type: mysql
|
|
mysql:
|
|
host: localhost # Adresse deines MySQL-Servers
|
|
port: 3306
|
|
database: teleportsuite
|
|
username: root
|
|
password: deinPasswort
|
|
```
|
|
|
|
**6. Alle Server neu starten**
|
|
|
|
Starte jetzt alle Spigot-Server und den BungeeCord-Proxy neu. Wenn alles korrekt konfiguriert ist, siehst du beim Start des jeweiligen Spigot-Servers in der Konsole:
|
|
|
|
```
|
|
[TeleportSuite] BungeeCord-Unterstuetzung aktiviert. Server: survival
|
|
```
|
|
|
|
Falls du stattdessen diese Warnung siehst:
|
|
|
|
```
|
|
[TeleportSuite] BungeeCord deaktiviert (bungee.enabled=false).
|
|
```
|
|
|
|
→ Dann hast du in der `config.yml` dieses Servers `enabled: false` stehen gelassen. Auf `true` ändern und neu starten.
|
|
|
|
---
|
|
|
|
## Konfiguration
|
|
|
|
Die vollständige `config.yml` mit allen Optionen:
|
|
|
|
```yaml
|
|
database:
|
|
type: sqlite # sqlite oder mysql
|
|
mysql:
|
|
host: localhost
|
|
port: 3306
|
|
database: teleportsuite
|
|
username: root
|
|
password: password
|
|
pool-size: 10
|
|
sqlite:
|
|
file: teleportsuite.db
|
|
|
|
bungee:
|
|
enabled: true
|
|
server-name: "survival" # Name dieses Servers in der BungeeCord config.yml
|
|
|
|
teleport:
|
|
delay: 3 # Wartezeit in Sekunden vor dem Teleport (0 = sofort)
|
|
cooldown: 5 # Cooldown in Sekunden zwischen Teleports
|
|
warmup-cancel-on-move: true # Teleport abbrechen wenn Spieler sich bewegt
|
|
request-timeout: 60 # Sekunden bis eine TPA-Anfrage automatisch verfällt
|
|
|
|
homes:
|
|
max-homes-default: 3
|
|
max-homes-vip: 10
|
|
max-homes-premium: 25
|
|
|
|
warps:
|
|
allow-player-warps: false
|
|
warp-permission-prefix: "teleportsuite.warp."
|
|
|
|
portals:
|
|
check-interval: 5
|
|
particle-effect: true
|
|
|
|
spawn:
|
|
first-join-teleport: true
|
|
death-respawn-to-spawn: false
|
|
```
|
|
|
|
---
|
|
|
|
## Commands
|
|
|
|
| Command | Beschreibung | Permission |
|
|
|---|---|---|
|
|
| `/tp <spieler>` | Teleportiere zu einem Spieler | `teleportsuite.tp` |
|
|
| `/tphere <spieler>` | Teleportiere einen Spieler zu dir | `teleportsuite.tphere` |
|
|
| `/tpa <spieler>` | Sende eine Teleportanfrage | `teleportsuite.tpa` |
|
|
| `/tpaccept` | Akzeptiere eine Teleportanfrage | `teleportsuite.tpaccept` |
|
|
| `/tpdeny` | Lehne eine Teleportanfrage ab | `teleportsuite.tpdeny` |
|
|
| `/back` | Teleportiere zur letzten Position | `teleportsuite.back` |
|
|
| `/deathback` | Teleportiere zum letzten Todesort | `teleportsuite.deathback` |
|
|
| `/sethome [name]` | Setze ein Home | `teleportsuite.sethome` |
|
|
| `/home [name]` | Teleportiere zu einem Home | `teleportsuite.home` |
|
|
| `/delhome <name>` | Lösche ein Home | `teleportsuite.delhome` |
|
|
| `/homes` | Liste alle Homes auf | `teleportsuite.home` |
|
|
| `/setwarp <name>` | Setze einen Warp | `teleportsuite.setwarp` |
|
|
| `/warp <name>` | Teleportiere zu einem Warp | `teleportsuite.warp` |
|
|
| `/delwarp <name>` | Lösche einen Warp | `teleportsuite.delwarp` |
|
|
| `/warps` | Liste alle Warps auf | `teleportsuite.warp` |
|
|
| `/setportal <name> <server/welt>` | Erstelle ein Portal | `teleportsuite.setportal` |
|
|
| `/delportal <name>` | Lösche ein Portal | `teleportsuite.delportal` |
|
|
| `/portals` | Liste alle Portale auf | `teleportsuite.portals` |
|
|
| `/setsavepoint [name]` | Setze einen Savepoint | `teleportsuite.savepoint` |
|
|
| `/savepoint [name]` | Teleportiere zu einem Savepoint | `teleportsuite.savepoint` |
|
|
| `/setspawn` | Setze den Spawn | `teleportsuite.setspawn` |
|
|
| `/spawn` | Teleportiere zum Spawn | `teleportsuite.spawn` |
|
|
| `/setfirstspawn` | Setze den FirstSpawn (für neue Spieler) | `teleportsuite.setfirstspawn` |
|
|
| `/tppos <x> <y> <z> [welt]` | Teleportiere zu Koordinaten | `teleportsuite.tppos` |
|
|
| `/tpall` | Teleportiere alle Spieler zu dir | `teleportsuite.tpall` |
|
|
| `/tpworld <welt>` | Teleportiere in eine Welt | `teleportsuite.tpworld` |
|
|
| `/entitytransport <id> <spieler/welt>` | Transportiere ein Entity | `teleportsuite.entitytransport` |
|
|
|
|
---
|
|
|
|
## Permissions
|
|
|
|
| Permission | Beschreibung |
|
|
|---|---|
|
|
| `teleportsuite.*` | Alle Rechte des Plugins |
|
|
| `teleportsuite.home.unlimited` | Unbegrenzte Homes (Standard: nur OPs) |
|
|
| `teleportsuite.nodelay` | Kein Teleport-Warmup |
|
|
| `teleportsuite.nocooldown` | Kein Teleport-Cooldown |
|
|
| `teleportsuite.admin` | Andere Spieler teleportieren (`/tp <von> <zu>`) |
|
|
|
|
Alle weiteren Einzelrechte entsprechen dem jeweiligen Command-Namen, z.B. `teleportsuite.tp`, `teleportsuite.home`, `teleportsuite.warp` usw.
|
|
|
|
---
|
|
|
|
## Häufige Probleme
|
|
|
|
**„Spieler XY nicht gefunden" beim serverübergreifenden `/tp`**
|
|
→ `bungee.enabled` in der `config.yml` steht auf `false`. Auf `true` setzen und neu starten.
|
|
|
|
**Spieler landet am Spawn statt beim Zielspieler**
|
|
→ `server-name` in der `config.yml` stimmt nicht mit dem Namen in der BungeeCord `config.yml` überein.
|
|
|
|
**TPA-Nachrichten kommen nicht an**
|
|
→ Das Plugin läuft nicht auf dem BungeeCord-Proxy. Die JAR muss auch in den `plugins`-Ordner des Proxys.
|
|
|
|
**Homes/Warps sind auf anderen Servern nicht verfügbar**
|
|
→ Alle Server müssen dieselbe MySQL-Datenbank verwenden. SQLite funktioniert nur lokal auf einem Server.
|
|
|
|
---
|
|
|
|
## Support
|
|
|
|
Probleme, Wünsche oder Fehlerberichte bitte als Issue auf GitHub melden. Füge wenn möglich den vollständigen Server-Log sowie deine `config.yml` bei. |