# Private Nachrichten

Spieler-zu-Spieler-Nachrichten mit automatischer Reply-Verfolgung, dazu ein Broadcast-Befehl für serverweite Ansagen. Für den öffentlichen Chat siehe [Chat-Format](chat.html).

## Commands

| Command | Syntax | Permission | Default | Beschreibung |
|---|---|---|---|---|
| `/msg` (Alias `/tell`, `/whisper`, `/w`, `/pm`, `/dm`, `/message`) | `/msg <spieler> <nachricht>` | `msg.send` | `true` | Sendet eine private Nachricht |
| `/reply` (Alias `/r`) | `/reply <nachricht>` | `msg.reply` | `true` | Antwortet dem letzten Absender |
| `/broadcast` (Alias `/bc`) | `/broadcast <nachricht>` | `msg.broadcast` | `false` | Serverweite Ansage an alle Spieler und die Konsole |

## Weitere Permissions

| Permission | Default | Beschreibung |
|---|---|---|
| `msg.bypass.mute` | `false` | Private Nachrichten trotz Mute (zusätzlich `mod.bypass.mute` nötig, siehe [Moderation](moderation.html#mutes)) |

> **Hinweis:** Nachrichten an sich selbst, an Offline-Spieler und an Vanish-Spieler (ohne Sicht-Permission) werden blockiert. Klick- und Hover-Effekte werden aus jeder Nachricht entfernt. Admins mit `/socialspy` lesen private Nachrichten mit (siehe [Moderation](moderation.html#socialspy)).

> **Tipp:** Ein kleiner `/msg`-Cooldown (2 bis 3 Sekunden) dämmt Spam ein, ohne Gespräche zu stören. `/reply` ist davon nicht betroffen.

## Konfiguration (modules/messaging.yml)

```yaml
# Schaltet private Nachrichten und Broadcast ein oder aus.
enabled: true

messaging:
  # Anzeige beim Absender. Platzhalter: <target>, <message>
  sender-format: "<gray>[<green>You <gray>-> <green><target><gray>] <white><message>"
  # Anzeige beim Empfänger. Platzhalter: <sender>, <message>
  receiver-format: "<gray>[<green><sender> <gray>-> <green>You<gray>] <white><message>"
  # Maximale Zeichenlänge für /msg und /reply.
  max-length: 256

cooldown:
  commands:
    # Sekunden zwischen zwei /msg desselben Spielers. 0 = kein Cooldown.
    # Gilt nur für /msg, nicht für /reply.
    msg: 0
```

Der Broadcast nutzt das Format `messaging.broadcast-format` aus der `messages.yml` und parst MiniMessage vollständig (nur Admins dürfen ihn nutzen).

## Komplette Beispiel-Config

```yaml
enabled: true

messaging:
  sender-format: "<dark_gray>[<aqua>Du <dark_gray>-> <aqua><target><dark_gray>] <white><message>"
  receiver-format: "<dark_gray>[<aqua><sender> <dark_gray>-> <aqua>Dir<dark_gray>] <white><message>"
  max-length: 200

cooldown:
  commands:
    msg: 3
```
