# 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 ` | Teleportiere zu einem Spieler | `teleportsuite.tp` | | `/tphere ` | Teleportiere einen Spieler zu dir | `teleportsuite.tphere` | | `/tpa ` | 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 ` | Lösche ein Home | `teleportsuite.delhome` | | `/homes` | Liste alle Homes auf | `teleportsuite.home` | | `/setwarp ` | Setze einen Warp | `teleportsuite.setwarp` | | `/warp ` | Teleportiere zu einem Warp | `teleportsuite.warp` | | `/delwarp ` | Lösche einen Warp | `teleportsuite.delwarp` | | `/warps` | Liste alle Warps auf | `teleportsuite.warp` | | `/setportal ` | Erstelle ein Portal | `teleportsuite.setportal` | | `/delportal ` | 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 [welt]` | Teleportiere zu Koordinaten | `teleportsuite.tppos` | | `/tpall` | Teleportiere alle Spieler zu dir | `teleportsuite.tpall` | | `/tpworld ` | Teleportiere in eine Welt | `teleportsuite.tpworld` | | `/entitytransport ` | 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 `) | 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.