# Trust & Schutz

Trust-Stufen, Commands, Auflösungsreihenfolge und alle Schutzregeln für Claims und Wildnis.

> **Tipp:** Trust wird nie gecacht. Jede Prüfung liest Trust-Liste und LuckPerms-Mitgliedschaft live, ein Entzug wirkt sofort, auch bei offener Kiste.

## Trust-Stufen

Aufsteigende Kette, jede höhere Stufe schließt die niedrigeren ein.

| Stufe | Command | Schließt ein |
|---|---|---|
| `ACCESS` | `/claim accesstrust` | Türen, Knöpfe, Hebel, Druckplatten, Glocke, Kuchen, Ackerland betreten |
| `CONTAINER` | `/claim containertrust` | + Kisten, Fässer, Öfen, Trichter, Komposter, Kisten-Reittiere |
| `BUILD` | `/claim trust` | + bauen/abbauen, Tiere, Rahmen/Gemälde, Portale, Eimer |
| `PERMISSION` | `/claim permissiontrust` | + Trust bis `BUILD` an andere vergeben |
| `MANAGE` | nur implizit | + Trust bis `PERMISSION` vergeben, `/claim restrictsubclaim` |

`MANAGE` gibt es nie über einen Command, sondern nur durch Besitz, `coreengineclaim.adminclaims` in einem besitzerlosen Claim, aktiven `/claim admin ignore`-Bypass oder Team-Rang `MANAGE_TEAM_CLAIM_FLAGS`.

> **Tipp:** `public` und `[gruppe]` sind keine eigenen Stufen, sondern Einträge in der Trust-Liste mit einer der Stufen oben. `/claim accesstrust public` lässt jeden Türen öffnen; `[vip]` gilt für die LuckPerms-Gruppe. Bei mehreren Treffern gewinnt die höchste Stufe.

## Commands

Alle wirken auf den Claim, in dem man steht. Kinder von `coreengineclaim.claims` (Default `true`).

| Command | Syntax | Permission | Default | Beschreibung |
|---|---|---|---|---|
| Bau-Trust | `/claim trust <ziel>` | `coreengineclaim.claim.trust` | true | Vergibt `BUILD` |
| Zugriffs-Trust | `/claim accesstrust <ziel>` (`at`) | `coreengineclaim.claim.accesstrust` | true | Vergibt `ACCESS` |
| Container-Trust | `/claim containertrust <ziel>` (`ct`) | `coreengineclaim.claim.containertrust` | true | Vergibt `CONTAINER` |
| Vollmacht-Trust | `/claim permissiontrust <ziel>` (`pt`) | `coreengineclaim.claim.permissiontrust` | true | Vergibt `PERMISSION` |
| Entziehen | `/claim untrust <ziel\|all>` | `coreengineclaim.claim.untrust` | true | Entfernt Eintrag; `all` leert die Liste |
| Liste | `/claim trustlist` | `coreengineclaim.claim.trustlist` | true | Zeigt alle Einträge |
| Vererbung | `/claim restrictsubclaim` (`rsc`) | `coreengineclaim.claim.restrictsubclaim` | true | Vererbung vom Elternclaim schalten (braucht `MANAGE`) |

`<ziel>` ist `<spieler|[gruppe]|public>`. Der Ausführende braucht mindestens `PERMISSION`. Selbst-Trust und Formatierungscodes im Namen werden abgelehnt; Spieler müssen auflösbar sein, Gruppen bei LuckPerms existieren. `PERMISSION` vergeben und `restrictsubclaim` schalten dürfen nur `MANAGE`-Inhaber.

> **Tipp:** Statt `/claim trust public` gibt es im Flags-GUI zwei Schalter: `build_mode` gibt jedem `BUILD`, `public_access` gibt jedem `ACCESS`. Beide aktiv → `build_mode` gewinnt.

## Auflösungsreihenfolge

Erster Treffer entscheidet:

1. **Besitzer** → `MANAGE`
2. **`adminclaims` in besitzerlosem Claim** → `MANAGE` (nicht in Spieler-Claims)
3. **Aktiver `ignoreclaims`-Bypass** → `MANAGE`
4. Expliziter Spieler-Eintrag
5. LuckPerms-Gruppen-Trust (höchste Stufe)
6. `public`-Eintrag
7. GUI-Schalter `build_mode`/`public_access`
8. Team-Claim-Auflösung (falls Subdivision einem Team gehört)
9. Vererbung vom Elternclaim (nur Subdivisions ohne `restrictsubclaim`)
10. Fallback: `NONE`

Weil Schritt 1 bis 3 vor jeder Listen-Prüfung greifen, kann `public`- oder Gruppen-Trust nie höhere Rechte als der Besitzer verschaffen.

**Team-Claim (Schritt 8):** Mitglied mit `MANAGE_TEAM_CLAIM_FLAGS` → `MANAGE`; mit `BUILD_IN_TEAM_SUBDIVISIONS` → `BUILD`; alliiertes Team mit `BUILD_IN_ALLY_SUBDIVISIONS` → `BUILD`; sonst weiter zu Schritt 9. Details siehe Team-Claims und Plots.

## Welche Aktion braucht welche Stufe

| Aktion | Stufe | Hinweis |
|---|---|---|
| Block bauen/abbauen, Bett, Tür setzen | `BUILD` | |
| Schild beschriften | `BUILD` | Shop-Schilder nutzen die Shop-Berechtigung statt Trust |
| Kiste, Fass, Ofen, Trichter, Beacon, Lesepult, Crafter | `CONTAINER` | Amboss ist bewusst nicht geschützt |
| Kisten-Reittier öffnen | `CONTAINER` | über Tier-Position |
| Knopf, Hebel, Druckplatte | `ACCESS` | nur bei `PreventButtonsSwitches: true` (Default) |
| Redstone-Komponenten, Notenblock | `BUILD` | |
| Glocke | `BUILD`/`ACCESS` | `BUILD` bei `RaidTriggersRequireBuildTrust: true` (Default) |
| Tür, Falltür, Zauntor | `ACCESS` | für öffentliche Türen `public_access` nutzen |
| Gemälde/Rahmen, Rüstungsständer | `BUILD` | |
| Tier angreifen/anleinen/weglocken | `BUILD` | nur bei `PreventTheft: true`; Pferde/Esel/Lamas per Config ausnehmbar |
| Eimer (Wasser/Lava/Milch) | `BUILD` | |
| Kuchen essen, Ackerland betreten | `ACCESS` | verändert Blockstate |
| Endportalrahmen füllen, Dekotopf befüllen | `BUILD` | |

> **Tipp:** Mit `Claims.EnderPearlsRequireAccessTrust: true` (Default) wird ein Enderperlen-Teleport in einen Claim ohne `ACCESS` abgebrochen und die Perle zurückgegeben.

## Schutzregeln

```yaml
Claims:
  PreventButtonsSwitches: true
  PreventTheft: true
  PreventNonPlayerCreatedPortals: true
  PistonMovement: CLAIMS_ONLY   # EVERYWHERE / EVERYWHERE_SIMPLE / CLAIMS_ONLY / IGNORED
Mobs:
  EndermenMoveBlocks: false
  CreaturesTrampleCrops: false
  ZombiesBreakDoors: false
Fire:
  Spreads: false      # gilt server-weit, nicht nur Wildnis
  Destroys: false
Explosions:
  BedExplosionsAllowed: false
  RespawnAnchorExplosionsAllowed: false
```

- **Container/Redstone:** Öffnen und jeder Klick werden geprüft (Entzug schließt offene Kiste sofort). Doppeltruhe: eine Hälfte im Claim schützt sie. Trichter und Dispenser wirken nur innerhalb desselben Claims. Virtuelle GUIs (Spieler als Halter) sind nie geschützt.
- **Fluide:** Wasser/Lava fließt nur in einen Claim, wenn der Quellblock im selben Claim liegt.
- **Portale:** Spieler-Portal braucht `BUILD` an jedem Portalblock; das Betreten prüft zusätzlich die Zielposition.
- **Explosionen:** Liegt ein Block im Claim, wird die ganze Explosion abgebrochen (schützt auch angrenzende Wildnis). Bett/Respawn-Anker global gesperrt (Defaults). Wither spawnt nie in einem Claim.
- **Mob-Grief ohne Spielerbezug** (Sandkanonen, Enderman, Silberfisch, Ravager, Sculk, Ackerland-Trampeln) wird in Claims immer verhindert, unabhängig von Trust.

**Piston-Modi:**

| Modus | Regel |
|---|---|
| `EVERYWHERE` | Jeder bewegte Block: Ziel- und Quellclaim identisch |
| `EVERYWHERE_SIMPLE` | Bounding-Box aller Blöcke in genau einem Claim |
| `CLAIMS_ONLY` (Default) | Kolben + alle bewegten + alle Zielblöcke im selben Claim |
| `IGNORED` | keine Prüfung (Warnung im Log) |

## Wildnis-Regeln

```yaml
Claims:
  WorldModes:
    "*": Survival   # Survival / Creative / SurvivalRequiringClaims / PvP / Disabled
Wilderness:
  DisableRedstone: true   # Redstone nur in Claims
  DisablePistons: true    # Kolben nur in Claims
  LimitSkyTrees: true     # keine Bäume auf Himmelsplattformen
```

- **`SurvivalRequiringClaims`:** Außerhalb von Claims kein Bauen/Abbauen/Eimer für Spieler (außer aktiver Ignore-Bypass).
- **Feuer-Regeln** (`Fire.Spreads`/`Destroys`) gelten server-weit.

> **Tipp:** RestoreNature (`/claim admin restore`/`restoreaggressive`/`restorefill`) ersetzt im ganzen Chunk unnatürliche Blöcke durch biomegerechtes Material (AGGRESSIVE auch Holz/Blätter, FILL füllt nur Luftlöcher). Läuft im Hintergrund und lässt Claim-Flächen unangetastet.

Ist **Nexo** installiert, gelten dieselben Trust-Regeln auch für dessen Custom-Blöcke und Möbel (Abbauen `BUILD`, Interaktion `CONTAINER`/`ACCESS`).

## Admin

| Command / Permission | Syntax | Default | Beschreibung |
|---|---|---|---|
| `coreengineclaim.adminclaims` | (Permission) | false | Auto-`MANAGE` in besitzerlosen Claims, nicht in Spieler-Claims |
| Claim-Bypass | `/claim admin ignore` (`ic`) | false | Kompletter Bypass für die Sitzung; muss aktiv eingeschaltet werden, verfällt beim Logout |

## Komplette Beispiel-Config

```yaml
Claims:
  PreventTheft: true
  PreventButtonsSwitches: true
  EnderPearlsRequireAccessTrust: true
  RaidTriggersRequireBuildTrust: true
  ProtectHorses: true
  ProtectDonkeys: true
  ProtectLlamas: true
  PistonMovement: CLAIMS_ONLY
  PreventNonPlayerCreatedPortals: true
  RavagersBreakBlocks: false
Mobs:
  EndermenMoveBlocks: false
  SilverfishBreakBlocks: false
  CreaturesTrampleCrops: false
  RabbitsEatCrops: true
  ZombiesBreakDoors: false
Fire:
  Spreads: false
  Destroys: false
Explosions:
  BlockSurfaceExplosions: true
  BedExplosionsAllowed: false
  RespawnAnchorExplosionsAllowed: false
Wilderness:
  LimitSkyTrees: true
  DisableRedstone: true
  DisablePistons: true
  SeaLevelOverride: -1
```
