# Warps

Serverweite Teleport-Ziele in drei Typen: **Server-Warps** (Admin), **Spieler-Warps** (von Spielern gekauft, immer öffentlich) und **Team-Warps**. Teams entscheiden pro Warp, ob er **öffentlich** ist (erscheint in /warps wie jeder andere Warp, nur eben von einem Team) oder **nur fürs Team** (erscheint ausschließlich im Team-Menü unter Home & Warps und im Team-Tab des Web-Panels). Warp-Sprünge laufen über die [Teleport-Engine](teleport.html).

## Commands

| Command | Syntax | Permission | Default | Beschreibung |
|---|---|---|---|---|
| `/warp` | `/warp <name>` | `warp.use` | `true` | Teleportiert zu einem Warp |
| `/warps` | `/warps` (Alias `/warplist`) | `warp.use` | `true` | Warp-Browser-GUI mit Kategorie- und Typ-Filter |
| `/warp create` | `/warp create <player\|team> <name> [kategorie] [public\|private]` | `warp.player.use` / `warp.team.use` | `true` | Kauft einen Warp an der aktuellen Position (Team-Warps sind ohne Angabe nur fürs Team) |
| `/warp delete` | `/warp delete <name>` | `warp.player.use` / `warp.team.use` | `true` | Löscht einen eigenen Warp (kostenlos) |
| `/warp move` | `/warp move <name>` | wie create | `true` | Verschiebt zur aktuellen Position (Bearbeitungskosten) |
| `/warp rename` | `/warp rename <name> <neu>` | wie create | `true` | Benennt um (Bearbeitungskosten) |
| `/warp icon` | `/warp icon <name>` | wie create | `true` | Icon = Item in der Haupthand (Bearbeitungskosten) |
| `/warp desc` | `/warp desc <name> <text>` | wie create | `true` | Beschreibung, max. 128 Zeichen (Bearbeitungskosten) |
| `/warp category` | `/warp category <name> <kategorie>` | wie create | `true` | Ändert die Kategorie (Bearbeitungskosten) |
| `/warp list` | `/warp list` | wie create | `true` | Eigene und Team-Warps inkl. Limit |
| `/setwarp` | `/setwarp <name> [permission] [icon] [gruppe]` | `warp.admin` | `false` | Setzt/überschreibt einen Server-Warp (`-` = Parameter auslassen) |
| `/delwarp` | `/delwarp <name>` (Alias `/removewarp`, `/remwarp`) | `warp.admin` | `false` | Löscht einen Server-Warp |

## Weitere Permissions

| Permission | Default | Beschreibung |
|---|---|---|
| `warp.player.limit.<n>` | `false` | Erhöht das Spieler-Warp-Limit auf n (höchster Wert gilt, harte Obergrenze 100) |
| `warp.player.limit.unlimited` | `false` | Hebt das Spieler-Warp-Limit auf (Obergrenze bleibt 100) |

## Warp-Browser (GUI)

`/warps` öffnet den Warp-Browser. Er listet Server-Warps, Spieler-Warps und öffentliche Team-Warps; Team-interne Warps erscheinen hier nie, auch nicht für die eigenen Mitglieder (sie leben im Team-Menü). Alles rund um Warps funktioniert komplett ohne Commands:

- **Oberste Reihe:** Kategorie-Filter. Der Netherstern zeigt alle Kategorien; daneben erscheint jede eingestellte Kategorie, auch wenn sie noch leer ist. Der aktive Filter leuchtet.
- **Typ-Filter:** Der Trichter unten wechselt zwischen allen Warps, Server-Warps, Spieler-Warps und Team-Warps.
- **Warp anklicken:** Linksklick teleportiert (eventuelle Kosten stehen in der Beschreibung). Rechtsklick öffnet die Verwaltung, wenn dir der Warp gehört, du das Team-Recht Warps verwalten hast oder `warp.admin` besitzt.
- **Meine Warps:** Die Enderperle unten links zeigt nur die Warps, die du selbst verwalten kannst.

### Warp erstellen

Linksklick auf den Smaragd startet einen Spieler-Warp, Rechtsklick einen Team-Warp, Shift-Klick einen Admin-Warp (nur mit `warp.admin`). Zuerst wird der Name im Amboss eingegeben (der Amboss prüft live, ob der Name frei und gültig ist), danach öffnet sich das **Einrichtungs-Menü**: Icon, Kategorie, Beschreibung und bei Team-Warps die Sichtbarkeit (öffentlich oder nur fürs Team) werden dort eingestellt, BEVOR bezahlt wird. Erst der Klick auf Erstellen bucht den Erstellungspreis ab, nachträgliche Bearbeitungskosten fallen für die Ersteinrichtung also nie an. Abbrechen verwirft den Entwurf kostenlos.

### Warp-Verwaltung

Die Verwaltung zeigt jede Funktion als Button, jede Aktion nennt vorher ihre Kosten:

| Button | Funktion |
|---|---|
| Enderperle | Teleportiert zum Warp |
| Bergungskompass | Verschiebt den Warp an deine Position |
| Namensschild | Benennt den Warp um (Amboss-Eingabe) |
| Gemälde | Icon ändern: das Item in der Haupthand wird zum Icon (der Button erklärt das) |
| Buch | Öffnet die Kategorie-Auswahl |
| Buch und Feder | Beschreibung per Chat eintippen (bis 128 Zeichen), Rechtsklick entfernt sie |
| Enderperle/Enderauge | Nur Team-Warps: Sichtbarkeit umschalten (öffentlich oder nur fürs Team) |
| TNT | Löscht den Warp: zur Sicherheit muss der Warp-Name im Amboss nachgetippt werden |

Eigene Warps kosten pro Änderung den eingestellten Bearbeitungspreis. Admins verwalten Server-Warps und fremde Warps kostenlos und sehen bei Server-Warps zusätzlich einen Button für die Warp-Permission.

> **Hinweis:** Warp-Namen sind über alle Typen eindeutig; die Verwaltungs-Wörter (`create`, `delete`, `move`, ...) sind als Namen reserviert. Team-interne Warps werden Außenstehenden als "nicht gefunden" gemeldet. Alle Prüfungen (Limit, Name, Kategorie, Welt, fremde Claims) laufen VOR der Abbuchung; Bearbeitungen kosten den Preis mal Anzahl geänderter Felder und werden erst nach vollständiger Prüfung abgebucht.

## Team-Warps

Team-Warps gehören dem Team, nicht einem Spieler. Erstellen, Bearbeiten und Löschen braucht das Team-Recht **Warps verwalten**, Benutzen das Team-Recht **Warps benutzen** (beides pro Rang einstellbar). Sie entstehen im Warp-Browser, im Team-Menü unter Home & Warps oder per `/team setwarp <name>`; das Team-Menü listet alle Team-Warps inklusive der Team-internen. Der Ersteller zahlt den Erstellungspreis. Öffentliche Team-Warps kann jeder benutzen, Team-interne nur Mitglieder. Das Limit pro Team stellt der Admin ein (`default-limit`), auf Wunsch wächst es stattdessen mit dem Team-Level.

## Konfiguration (modules/warps.yml)

```yaml
# Schaltet das Warp-Modul ein oder aus.
enabled: true

warps:
  # Maximale Zeichenlänge eines Warp-Namens.
  max-name-length: 32
  # Kategorien, die Spieler bei create/category wählen dürfen.
  categories:
    - "General"
    - "Shops"
    - "Farms"
    - "Arenas"
    - "Bases"
  # Kategorie, die /setwarp automatisch vergibt (für Spieler nicht wählbar).
  admin-category: "Admin"
  # Welten, in denen Spieler-/Team-Warps erstellt werden dürfen.
  # Leer = alle Welten.
  creation-worlds: []
  player-warps:
    # Dürfen Spieler persönliche Warps kaufen?
    enabled: true
    # Einmaliger Erstellungspreis (Icon/Kategorie/Beschreibung inklusive).
    create-cost: 5000
    # Fester Preis PRO Bearbeitungsaktion (move, rename, icon, desc, category).
    edit-cost: 1000
    # Warps ohne Zusatz-Permission. Mehr über warp.player.limit.<n>.
    default-limit: 1
  team-warps:
    # Erstellen/Bearbeiten braucht das Team-Recht "Warps verwalten",
    # Benutzen das Team-Recht "Warps benutzen".
    enabled: true
    create-cost: 5000
    edit-cost: 1000
    # Maximale Warps pro Team. 0 = wächst mit dem Team-Level
    # (Level 1 = 1 Warp, jedes Level eins mehr).
    default-limit: 0
  # Erlaubte Icon-Materialien. Leer = eingebautes Standard-Set.
  allowed-icons: []

cooldown:
  commands:
    warp: 5

cost:
  commands:
    warp: 0

warmup:
  commands:
    warp:
      duration: 3
```

## Komplette Beispiel-Config

```yaml
enabled: true

warps:
  max-name-length: 24
  categories:
    - "Städte"
    - "Shops"
    - "Farmen"
    - "Events"
  admin-category: "Server"
  creation-worlds:
    - world
  player-warps:
    enabled: true
    create-cost: 10000
    edit-cost: 2500
    default-limit: 2
  team-warps:
    enabled: true
    create-cost: 7500
    edit-cost: 2000
    default-limit: 3
  allowed-icons: []

cooldown:
  commands:
    warp: 15

cost:
  commands:
    warp: 5.0

warmup:
  commands:
    warp:
      duration: 5
```
