# 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
- Warps mit optionalen Berechtigungen
- Portale für Server- oder Weltwechsel
- Spawn, FirstSpawn und Deathback
- Teleportanfragen 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 du nicht SQLite verwenden möchtest

## Installation

1. Die fertige JAR-Datei in den Ordner plugins deines Servers kopieren.
2. Den Server einmal starten, damit die Konfigurationsdatei und die Datenbank angelegt werden.
3. Den Server stoppen und die Datei config.yml nach Bedarf anpassen.
4. Den Server neu starten.

## Konfiguration

Die Datei config.yml wird beim ersten Start im Plugin-Ordner angelegt.

### Datenbank

```yaml
database:
  type: sqlite
  mysql:
    host: localhost
    port: 3306
    database: teleportsuite
    username: root
    password: password
    pool-size: 10
  sqlite:
    file: teleportsuite.db
```

- `sqlite` ist die Standard-Einstellung und benötigt keine zusätzliche Serverdatenbank.
- `mysql` ist sinnvoll, wenn mehrere Server auf dieselben Teleport-Daten zugreifen sollen.

### BungeeCord

```yaml
bungee:
  enabled: false
  server-name: "survival"
```

- Aktiviere `enabled: true`, wenn das Plugin im BungeeCord-Setup genutzt werden soll.
- `server-name` muss dem Namen des Servers im Netzwerk entsprechen.

### Teleport

```yaml
teleport:
  delay: 3
  cooldown: 5
  warmup-cancel-on-move: true
  request-timeout: 60
```

- `delay` ist die Wartezeit vor einem Teleport.
- `cooldown` verhindert zu häufige Teleports.
- `warmup-cancel-on-move` bricht den Teleport ab, wenn sich der Spieler bewegt.
- `request-timeout` legt fest, wie lange eine TPA-Anfrage gültig bleibt.

### Homes

```yaml
homes:
  max-homes-default: 3
  max-homes-vip: 10
  max-homes-premium: 25
```

### Warps

```yaml
warps:
  allow-player-warps: false
  warp-permission-prefix: "teleportsuite.warp."
```

### Portale

```yaml
portals:
  check-interval: 5
  particle-effect: true
```

### Spawn

```yaml
spawn:
  first-join-teleport: true
  death-respawn-to-spawn: false
```

### Nachrichten

Alle Nachrichten unterstützen `&`-Farbcodes und Platzhalter wie `{player}`, `{name}`, `{seconds}` und `{max}`.

## Commands

| Command | Beschreibung | Permission |
| --- | --- | --- |
| /tp <player> | Teleportiere zu einem Spieler | teleportsuite.tp |
| /tphere <player> | Teleportiere einen Spieler zu dir | teleportsuite.tphere |
| /tpa <player> | 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> <target-server/world> | 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 | teleportsuite.setfirstspawn |
| /tppos <x> <y> <z> [world] | Teleportiere zu Koordinaten | teleportsuite.tppos |
| /tpall | Teleportiere alle Spieler zu dir | teleportsuite.tpall |
| /tpworld <world> | Teleportiere in eine Welt | teleportsuite.tpworld |
| /entitytransport <entity-id> <player/world> | Transportiere ein Entity | teleportsuite.entitytransport |

## Permissions

### Sammelrechte

- `teleportsuite.*` - Alle Rechte des Plugins
- `teleportsuite.home.unlimited` - Unbegrenzte Homes, standardmäßig nur für OPs

### Wichtige Einzelrechte

- `teleportsuite.tp`
- `teleportsuite.tphere`
- `teleportsuite.tpa`
- `teleportsuite.tpaccept`
- `teleportsuite.tpdeny`
- `teleportsuite.back`
- `teleportsuite.deathback`
- `teleportsuite.sethome`
- `teleportsuite.home`
- `teleportsuite.delhome`
- `teleportsuite.setwarp`
- `teleportsuite.warp`
- `teleportsuite.delwarp`
- `teleportsuite.setportal`
- `teleportsuite.delportal`
- `teleportsuite.portals`
- `teleportsuite.savepoint`
- `teleportsuite.setspawn`
- `teleportsuite.spawn`
- `teleportsuite.setfirstspawn`
- `teleportsuite.tppos`
- `teleportsuite.tpall`
- `teleportsuite.tpworld`
- `teleportsuite.entitytransport`

## Support

Wenn du Probleme, Wünsche oder Fehlerberichte hast, eröffne ein Issue auf GitHub und füge wenn möglich den vollständigen Server-Log sowie deine `config.yml` bei.

## Lizenz

Falls du eine Lizenz verwenden möchtest, ergänze sie bitte in diesem Abschnitt oder als separate LICENSE-Datei im Repository.