# Hologramme

Schwebende Text- und Item-Anzeigen mit MiniMessage-Formatierung, PlaceholderAPI-Platzhaltern (pro Spieler berechnet), Nexo-Items, Sichtradius und optionaler Permission-Sichtbarkeit. Alles wird dauerhaft gespeichert und beim Serverstart wiederhergestellt; Hologramme laden automatisch mit ihrem Chunk.

## Commands

| Subcommand | Syntax | Permission | Default | Beschreibung |
|---|---|---|---|---|
| (GUI) | `/holo` (Alias `/hologram`) | `holo.edit` | `false` | Öffnet die Hologramm-Verwaltung |
| `create` | `/holo create <name> [feet\|head]` | `holo.create` | `false` | Erstellt ein Hologramm (Fuß- oder Augenhöhe) |
| `delete` | `/holo delete <name>` | `holo.delete` | `false` | Löscht ein Hologramm |
| `list` | `/holo list` | `holo.list` | `false` | Alle Hologramme |
| `near` | `/holo near [radius]` | `holo.list` | `false` | Hologramme in der Nähe (Standard 50) |
| `info` | `/holo info <name>` | `holo.list` | `false` | Details zu einem Hologramm |
| `teleport` | `/holo teleport <name>` | `holo.teleport` | `false` | Teleportiert zum Hologramm |
| `movehere` | `/holo movehere <name> [feet\|head]` | `holo.edit` | `false` | Verschiebt es zur eigenen Position |
| `addline` | `/holo addline <name> <text\|ITEM:material\|{empty}>` | `holo.edit` | `false` | Fügt eine Zeile an (Text, Item oder Leerzeile) |
| `removeline` | `/holo removeline <name> <zeile>` | `holo.edit` | `false` | Entfernt eine Zeile (1-basiert) |
| `setline` | `/holo setline <name> <zeile> <text>` | `holo.edit` | `false` | Bearbeitet eine Zeile |
| `insertline` | `/holo insertline <name> <zeile> <text>` | `holo.edit` | `false` | Fügt eine Zeile an Position ein |
| `reload` | `/holo reload` | `holo.admin` | `false` | Lädt Config und alle Hologramme neu |

**Regeln:** Name max. 32 Zeichen (alphanumerisch, `-`, `_`), max. 64 Zeilen pro Hologramm, Sichtradius 1 bis 200 Blöcke.

> **Tipp:** Die GUI (`/holo`) kann alles, was die Subcommands können, plus Material-Picker für Item-Zeilen, Zeilen duplizieren/verschieben und alle Anzeige-Einstellungen (Billboard, Skalierung, Hintergrund, Drehung, Zeilenabstand, Permission). Text-Eingaben laufen über den Chat (`cancel` bricht ab, `{empty}` = Leerzeile, Timeout 3 Minuten).

> **Hinweis:** Enthält eine Zeile ein `%`, wird sie als PlaceholderAPI-Platzhalter erkannt und regelmäßig pro Spieler aufgelöst (z. B. `%player_name%`). Ist eine Permission gesetzt, sehen nur Spieler mit dieser Permission das Hologramm. Fehlgeschlagene Platzhalter/Formatierungen werden als reiner Text angezeigt statt das Hologramm zu beschädigen; Nexo-Items ohne Nexo zeigen ein Barrier-Icon.

## Konfiguration (modules/holograms.yml)

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

holograms:
  # Standard-Sichtradius in Blöcken für neue Hologramme (1 bis 200).
  default-visibility-radius: 48.0
  # Vertikaler Abstand zwischen Zeilen in Metern.
  line-spacing: 0.4
  # Ticks zwischen Platzhalter-Aktualisierungen (20 = 1 Sekunde).
  placeholder-update-interval: 20
  # Text-Schatten für bessere Lesbarkeit.
  text-shadow: true
  # Schwarze Vanilla-Hintergrund-Box für neue Zeilen.
  default-background: false
```

## Komplette Beispiel-Config

```yaml
enabled: true

holograms:
  default-visibility-radius: 64.0
  line-spacing: 0.3
  placeholder-update-interval: 40
  text-shadow: true
  default-background: true
```
