Files
TeleportSuite/README.md
2026-05-23 18:06:21 +00:00

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.