# Integrationen

Alle Integrationen sind optional. CoreEngine startet auch ohne sie, es fallen dann nur die jeweiligen Zusatzfunktionen weg, keine Fehler.

## Übersicht

| Plugin | Bringt | Ohne dieses Plugin |
|---|---|---|
| **PlaceholderAPI** | `%coreengine_...%` in Chat, Tab, Hologrammen, Nachrichten | Platzhalter werden nur nicht ersetzt |
| **Vault** | Economy an andere Plugins anbieten oder fremde nutzen (`economy.internal: false`) | Economy läuft normal, ohne Brücke |
| **LuckPerms** | Prefix/Suffix, Gruppen, permission-basierte Limits, Gruppen-Spawns | Limits nur global, nicht pro Gruppe |
| **CoreProtect** | Jobs-Exploit-Schutz (kein Geld für selbst platzierte Blöcke), Transaktions-Logs | Einfacher RAM-Ersatz (geht bei Neustart verloren) |
| **CoreEngineClaim** | Web-Kategorie „Claims", Team-Claims | Claims-Kategorie fehlt im Web-Panel |
| **WorldGuard / GriefPrevention** | RTP und Mob-Teleport meiden geschützte Regionen/Claims | RTP kann in fremdes Land landen |
| **BetterHud** | Balance-, Job- und Team-Ereignisse als HUD-Popup | Erscheint als Actionbar/Chat |
| **Nexo / Carpentary** | Custom Items/Blöcke/Möbel in Shops und Jobs | Nur Vanilla-Items |

## PlaceholderAPI

Wird automatisch erkannt. Alle Platzhalter:

| Platzhalter | Beschreibung | Beispiel |
|---|---|---|
| `%coreengine_balance%` | Rohes Guthaben | `1500.50` |
| `%coreengine_balance_formatted%` | Mit Symbol/Trennzeichen | `1,500.50 Coins` |
| `%coreengine_balance_short%` | Kurz mit Symbol | `⛃ 1,500.50` |
| `%coreengine_nick%` | Nickname (reiner Text) | `CoolName` |
| `%coreengine_nick_raw%` | Nickname mit Formatierung | `<red>Cool</red>` |
| `%coreengine_has_nick%` | Hat Nickname? | `true`/`false` |
| `%coreengine_homes_count%` | Gesetzte Homes | `3` |
| `%coreengine_homes_limit%` | Home-Limit | `5` / `unlimited` |
| `%coreengine_rtp_count%` | RTP-Nutzungen | `12` |
| `%coreengine_rtp_cooldown%` | Verbleibender Cooldown | `30 seconds` / `0` |
| `%coreengine_rtp_cooldown_<world>%` | Cooldown je Welt | `2 minutes 15 seconds` |
| `%coreengine_rtp_price_<world>%` | RTP-Kosten je Welt | `500.00 Coins` |
| `%coreengine_joinmsg%` / `_leavemsg%` | Eigene Join/Leave-Nachricht? | `true`/`false` |
| `%coreengine_team_name%` / `_tag%` / `_color%` | Team-Name, -Tag, -Farbe | `CoolTeam` / `[CT]` / `red` |
| `%coreengine_team_rank%` / `_rank_id%` / `_rank_weight%` | Rang, ID, Gewicht | `Moderator` / `0` / `2` |
| `%coreengine_team_rank_count%` | Ränge im Team | `5` |
| `%coreengine_team_can_<perm>%` | Darf der Spieler das? | `yes`/`no` |
| `%coreengine_team_score%` / `_balance%` / `_members%` | Score, Kasse, Mitglieder | `4500` / `25000.00` / `8` |
| `%coreengine_team_level%` / `_level_name%` | Team-Level | `3` / `Silver` |
| `%coreengine_team_top_<n>%` | Team auf Rang n nach Score | `TopTeam` |
| `%coreengine_jobs_count%` / `_points%` | Aktive Jobs, Punkte | `3` / `150.00` |
| `%coreengine_jobs_name_<n>%` | n-ter aktiver Job | `Miner` |
| `%coreengine_jobs_level_<job>%` / `_xp_<job>%` | Level, XP im Job | `15` / `250.5` |
| `%coreengine_jobs_income_<job>%` / `_title_<job>%` | Verdienst, Titel | `5000.00` / `Expert Miner` |
| `%coreengine_sleep_percentage%` / `_sleeping%` / `_required%` | Sleep-Schwelle, schlafend, nötig | `35` / `2` / `3` |
| `%coreengine_lp_prefix%` / `_suffix%` | LuckPerms Prefix/Suffix (Text) | `[ADMIN]` |
| `%coreengine_lp_prefix_raw%` / `_suffix_raw%` | mit Formatierung | `<gold>[ADMIN]</gold>` |
| `%coreengine_lp_group%` / `_group_display%` | Gruppe, Anzeigename | `admin` / `Administrator` |

Einsetzbar in Chat (`chat.*`), Tab (`tab.yml`), Hologrammen, Join/Leave-Nachrichten und Broadcasts.

## LuckPerms

Liefert Gruppe, Prefix/Suffix, Meta-Werte, Mitgliedschaft und numerische Limits. **Permission-basierte Limits** (höchster Wert gewinnt):

```text
homes.limit.<n> / homes.limit.unlimited
jobs.max.<n>    / jobs.max.unlimited
shop.limit.<n>  rtp.limit.<n>  jobs.maxlevel.<n>  jobs.boost.<mult>
```

**Gruppen-Spawns** gelten vor dem globalen Spawn:

```yaml
spawn:
  group-spawns:
    vip:
      world: "world"
      x: 100
      y: 100
      z: 100
```

## CoreProtect

Bei jedem Blockabbau wird geprüft, ob der Block laut Verlauf von einem Spieler platziert wurde, dann gibt es kein Job-Einkommen. Ohne CoreProtect merkt sich CoreEngine platzierte Blöcke nur im RAM (geht bei Neustart verloren).

Optionale Logs (pro Modul in `modules/*.yml` schaltbar):

| Ereignis | Log-Name in CoreProtect |
|---|---|
| Job-Blockabbau | `#jobs-<Spieler>` |
| Shop-Kauf / -Verkauf | `#shop-buy-<Spieler>` / `#shop-sell-<Spieler>` |
| Team-Kisten-Abbau | `#teamclaim-<Spieler>` |

## Welches Modul nutzt was

| Modul | Integration | Wofür |
|---|---|---|
| Jobs | CoreProtect, Nexo, Carpentary, BetterHud | Exploit-Schutz, Custom-Items, Popups |
| Shop | CoreProtect, Nexo, Carpentary | Logs, Custom-Items |
| Team | CoreProtect | Kisten-Abbau-Logs |
| RTP | WorldGuard, GriefPrevention | Landungen in fremdem Land vermeiden |
| Chat/Tab | LuckPerms, Nexo | Prefix/Suffix, Symbole |

> **Tipp:** Die Schalter für Nexo/Carpentary/CoreProtect liegen in den Modul-Dateien (`jobs.yml` unter `jobs.integrations.*`, `team.yml` unter `team.integrations.coreprotect.*`). Nur BetterHud hat eine eigene Datei.

## Beispiel-Config (betterhud.yml)

```yaml
enabled: true

betterhud:
  elements:
    balance:
      enabled: true
      popup-name: ""
      popup-duration: 60
    team-tag:
      enabled: true
      popup-name: ""
      popup-duration: 60
```
