# ============================================================
#  StatusAPI - ChatModule Konfiguration
#  Kompatibel mit Java & Bedrock (Geyser) | BungeeCord Secure Chat
# ============================================================

# Standard-Kanal beim Einloggen
default-channel: "global"

server-colors:
  default: "&7"          # Fallback für unbekannte Server
  lobby:
    color: "&a"
    display: "Lobby"     # Anzeigename (optional, sonst wird der echte Servername verwendet)
  survival:
    color: "&#E8A020"
    display: "Survival"
  skyblock:
    color: "&b"
    display: "SkyBlock"
  citybuild:
    color: "&#A020E8"
    display: "CityBuild"
  minigames:
    color: "&e"
    display: "MiniGames"

chatlog:
  enabled: true
  retention-days: 7   # 7 oder 14

reports:
  enabled: true
  webhook-enabled: true
  confirm-message: "&aDein Report &8({id}) &awurde eingereicht. Danke!"
  close-permission: "chat.admin.bypass"
  view-permission:  "chat.admin.bypass"
  # Leer = jeder Spieler darf reporten, sonst Permission eintragen (z.B. "chat.report")
  report-permission: ""
  cooldown: 60
  # Discord Webhook für Report-Benachrichtigungen (leer = deaktiviert)
  discord-webhook: ""
  # Telegram Chat-ID für Report-Benachrichtigungen (leer = deaktiviert)
  telegram-chat-id: ""

# ============================================================
#  KANÄLE
#  Jeder Kanal hat eigene Permissions, Format und Brücken.
#  format-Platzhalter:
#    {server}   - Servername
#    {prefix}   - LuckPerms Prefix
#    {player}   - Spielername
#    {suffix}   - LuckPerms Suffix
#    {message}  - Nachricht
#    {channel}  - Kanalname
# ============================================================
channels:
  global:
    name: "Global"
    symbol: "G"
    permission: ""
    color: "&a"
    format: "&8[&a{server}&8] {prefix}&r{player}&8: &f{message}"
    discord-webhook: ""
    discord-channel-id: ""
    telegram-chat-id: ""
    # Themen-ID für Telegram-Gruppen mit Themen (0 = kein Thema / normale Gruppe)
    telegram-thread-id: 0

  local:
    name: "Local"
    symbol: "L"
    permission: "chat.channel.local"
    color: "&e"
    local-only: true
    format: "&8[&e{server}&8] {prefix}&r{player}&8: &f{message}"
    discord-webhook: ""
    discord-channel-id: ""
    telegram-chat-id: ""
    telegram-thread-id: 0

  trade:
    name: "Trade"
    symbol: "T"
    permission: "chat.channel.trade"
    color: "&6"
    format: "&8[&6TRADE&8] &8[&7{server}&8] {prefix}&r{player}&8: &f{message}"
    discord-webhook: ""
    discord-channel-id: ""
    telegram-chat-id: ""
    telegram-thread-id: 0

  staff:
    name: "Staff"
    symbol: "S"
    permission: "chat.channel.staff"
    color: "&c"
    format: "&8[&cSTAFF&8] &8[&7{server}&8] {prefix}&r{player}&8: &f{message}"
    discord-webhook: ""
    discord-channel-id: ""
    telegram-chat-id: ""
    telegram-thread-id: 0
    use-admin-bridge: true

# ============================================================
#  HELPOP
# ============================================================
helpop:
  # Format der HelpOp-Nachricht
  format: "&8[&eHELPOP&8] &f{player}&8@&7{server}&8: &e{message}"
  # Wer bekommt HelpOp zu sehen
  receive-permission: "chat.helpop.receive"
  # Cooldown in Sekunden
  cooldown: 30
  # Bestätigungsnachricht an den Spieler
  confirm-message: "&aHilferuf wurde an das Team gesendet!"
  # Discord / Telegram auch für HelpOp
  discord-webhook: ""
  telegram-chat-id: ""

# ============================================================
#  BROADCAST
# ============================================================
broadcast:
  format: "&c&l[&6&lBroadcast&c&l] &r&e{message}"
  permission: "chat.broadcast"

# ============================================================
#  PRIVATE NACHRICHTEN
# ============================================================
private-messages:
  enabled: true
  format-sender:   "&8[&7Du &8→ &b{player}&8] &f{message}"
  format-receiver: "&8[&b{player} &8→ &7Dir&8] &f{message}"
  # Social Spy: Admins können alle PMs sehen
  format-social-spy: "&8[&dSPY &7{sender} &8→ &7{receiver}&8] &f{message}"
  social-spy-permission: "chat.socialspy"

# ============================================================
#  JOIN / LEAVE NACHRICHTEN
#  Platzhalter:
#    {player}  - Spielername
#    {prefix}  - LuckPerms Prefix
#    {suffix}  - LuckPerms Suffix
#    {server}  - Zuletzt bekannter Server (bei Leave) oder "Netzwerk"
# ============================================================
join-leave:
  enabled: true
  # Normale Join/Leave-Nachrichten (für alle sichtbar)
  join-format:  "&8[&a+&8] {prefix}&a{player}&r &7hat das Netzwerk betreten."
  leave-format: "&8[&c-&8] {prefix}&c{player}&r &7hat das Netzwerk verlassen."
  # Vanish: Unsichtbare Spieler erzeugen keine normalen Join/Leave-Meldungen.
  # Ist vanish-show-to-admins true, sehen Admins mit bypass-permission eine
  # abweichende, dezente Benachrichtigung.
  vanish-show-to-admins: true
  vanish-join-format:  "&8[&7+&8] &8{player} &7hat das Netzwerk betreten. &8(Vanish)"
  vanish-leave-format: "&8[&7-&8] &8{player} &7hat das Netzwerk verlassen. &8(Vanish)"
  # Brücken-Weitergabe (leer = deaktiviert)
  discord-webhook: ""
  telegram-chat-id: ""
  telegram-thread-id: 0

# ============================================================
#  GLOBALES RATE-LIMIT-FRAMEWORK
#  Zentraler Schutz für Chat/PM/Command-Flood.
# ============================================================
rate-limit:
  chat:
    enabled: true
    window-ms: 2500
    max-actions: 3
    block-ms: 6000
    message: "&cBitte nicht so schnell schreiben!"

  private-messages:
    enabled: true
    window-ms: 5000
    max-actions: 4
    block-ms: 10000
    message: "&cDu sendest zu viele private Nachrichten. Bitte warte kurz."

# ============================================================
#  MUTE
# ============================================================
mute:
  # Standard-Mute-Dauer in Minuten (0 = permanent)
  default-duration-minutes: 60
  # Nachricht an gemuteten Spieler
  muted-message: "&cDu bist aktuell stummgeschaltet. Noch: &f{time}"

# ============================================================
#  EMOJI
#  Spieler schreiben :smile: -> wird zu \uD83D\uDE0A konvertiert
#  Bedrock-Spieler erhalten Fallback-Text wenn kein Unicode
# ============================================================
emoji:
  enabled: true
  # Ob Bedrock-Spieler (via Geyser) auch Emojis erhalten
  bedrock-support: true
  mappings:
    ":smile:":      "\uD83D\uDE0A"
    ":laugh:":      "\uD83D\uDE04"
    ":sad:":        "\uD83D\uDE22"
    ":cry:":        "\uD83D\uDE2D"
    ":angry:":      "\uD83D\uDE20"
    ":heart:":      "\u2764\uFE0F"
    ":fire:":       "\uD83D\uDD25"
    ":star:":       "\u2B50"
    ":check:":      "\u2705"
    ":x:":          "\u274C"
    ":warning:":    "\u26A0\uFE0F"
    ":thumbsup:":   "\uD83D\uDC4D"
    ":thumbsdown:": "\uD83D\uDC4E"
    ":wave:":       "\uD83D\uDC4B"
    ":clap:":       "\uD83D\uDC4F"
    ":sword:":      "\u2694\uFE0F"
    ":shield:":     "\uD83D\uDEE1\uFE0F"
    ":diamond:":    "\uD83D\uDC8E"
    ":crown:":      "\uD83D\uDC51"
    ":skull:":      "\uD83D\uDC80"
    ":sun:":        "\u2600\uFE0F"
    ":moon:":       "\uD83C\uDF19"
    ":tree:":       "\uD83C\uDF33"
    ":house:":      "\uD83C\uDFE0"
    ":money:":      "\uD83D\uDCB0"
    ":rocket:":     "\uD83D\uDE80"
    ":rainbow:":    "\uD83C\uDF08"
    ":ghost:":      "\uD83D\uDC7B"
    ":gift:":       "\uD83C\uDF81"
    ":cake:":       "\uD83C\uDF82"
    ":chicken:":    "\uD83D\uDC14"
    ":pig:":        "\uD83D\uDC37"
    ":creeper:":    "\uD83D\uDCA3"
    ":gg:":         "\uD83C\uDFAE"

# ============================================================
#  DISCORD INTEGRATION
# ============================================================
discord:
  enabled: false
  # Bot-Token für bidirektionale Kommunikation
  bot-token: "YOUR_BOT_TOKEN_HERE"
  # Server (Guild) ID
  guild-id: "YOUR_GUILD_ID"
  # Polling-Intervall in Sekunden (Discord → Minecraft)
  poll-interval: 3
  # Format für Discord → Minecraft Nachrichten
  from-discord-format: "&9[&bDiscord&9] &b{user}&8: &f{message}"
  # Extra Admin-Kanal (für Staff-Kanal und HelpOp)
  admin-channel-id: ""
  # Standard-Embed-Farbe (Hex ohne #)
  embed-color: "5865F2"

# ============================================================
#  TELEGRAM INTEGRATION
# ============================================================
telegram:
  enabled: false
  # Bot-Token von @BotFather
  bot-token: "YOUR_TELEGRAM_BOT_TOKEN"
  # Polling-Intervall in Sekunden
  poll-interval: 3
  # Format für Telegram → Minecraft Nachrichten
  from-telegram-format: "&3[&bTelegram&3] &b{user}&8: &f{message}"
  # Extra Admin-Chat-ID (für Staff-Kanal und HelpOp)
  admin-chat-id: ""
  # Themen-Gruppe: Topic-ID für den Chat-Kanal (0 = kein Topic / normale Gruppe)
  # Die message_thread_id findest du indem du eine Nachricht im Topic weiterleitest
  # und dir die forwarded_from_message_id anschaust, oder via Bot-API getUpdates.
  chat-topic-id: 0
  # Topic-ID für den Admin-Kanal (0 = kein Topic)
  admin-topic-id: 0

# ============================================================
#  ACCOUNT-VERKNÜPFUNG (Discord & Telegram)
#  Spieler können ihre Minecraft-Accounts mit Discord/Telegram
#  verknüpfen damit ihr Name im Chat angezeigt wird.
# ============================================================
account-linking:
  enabled: true
  # Token läuft nach X Minuten ab
  token-expire-minutes: 10
  # Nachricht die der Spieler nach /linkdiscord bekommt
  discord-link-message: "&aSchreibe den folgenden Code als Nachricht an unseren Discord-Bot:\n&f&l{token}\n&7Der Code läuft in &f10 Minuten &7ab."
  # Nachricht die der Spieler nach /linktelegram bekommt
  telegram-link-message: "&aSchreibe den folgenden Code als Nachricht an unseren Telegram-Bot:\n&f&l{token}\n&7Der Code läuft in &f10 Minuten &7ab."
  # Bestätigung nach erfolgreicher Verknüpfung (im Spiel)
  success-discord: "&aDiscord-Account erfolgreich verknüpft! &8(&7{discord}&8)"
  success-telegram: "&aTelegram-Account erfolgreich verknüpft! &8(&7{telegram}&8)"
  # Bestätigung die der Bot in Discord/Telegram schickt
  bot-success-discord: "✅ Dein Minecraft-Account **{player}** wurde erfolgreich verknüpft!"
  bot-success-telegram: "✅ Dein Minecraft-Account <b>{player}</b> wurde erfolgreich verknüpft!"
  # Format wenn verknüpfter Nutzer in Discord/Telegram schreibt
  # {player} = Minecraft-Name, {user} = Discord/Telegram-Name, {message} = Nachricht
  linked-discord-format: "&9[&bDiscord&9] &f{player} &8(&7{user}&8)&8: &f{message}"
  linked-telegram-format: "&3[&bTelegram&3] &f{player} &8(&7{user}&8)&8: &f{message}"
  # Themen-ID für den Admin-Chat (0 = kein Thema)
  admin-thread-id: 0

# ============================================================
#  ADMIN BYPASS
#  Spieler mit dieser Permission können nicht geblockt werden
#  und sind von Mutes ausgenommen
# ============================================================
admin:
  bypass-permission: "chat.admin.bypass"
  # Admins erhalten Benachrichtigung bei Mutes/Blocks
  notify-permission: "chat.admin.notify"

# ============================================================
#  CHAT-FILTER & ANTI-SPAM
# ============================================================
chat-filter:
  anti-spam:
    enabled: true
    cooldown-ms: 1500
    max-messages: 3
    message: "&cBitte nicht so schnell schreiben!"
  duplicate-check:
    enabled: true
    message: "&cBitte keine identischen Nachrichten senden."
  blacklist:
    enabled: true
    words:
      - "beispielwort1"
      - "beispielwort2"
  caps-filter:
    enabled: true
    min-length: 6
    max-percent: 70

  anti-ad:
    enabled: true
    message: "&cWerbung ist in diesem Chat nicht erlaubt!"
    # Domains/Substrings die NICHT geblockt werden (z.B. eigene Serveradresse)
    # Vergleich ist case-insensitiv und prüft ob der Substring im Match enthalten ist
    whitelist:
      - "viper-network.de"
      - "m-viper.de"
      - "https://www.spigotmc.org"
    # TLDs die als Werbung gewertet werden.
    # Leer = alle Domain-Treffer blockieren (nicht empfohlen, hohe False-Positive-Rate)
    blocked-tlds:
      - "net"
      - "com"
      - "de"
      - "org"
      - "gg"
      - "io"
      - "eu"
      - "tv"
      - "xyz"
      - "info"
      - "me"
      - "cc"
      - "co"
      - "app"
      - "online"
      - "site"
      - "fun"

# ============================================================
#  MENTIONS (@Spielername)
# ============================================================
mentions:
  enabled: true
  highlight-color: "&e&l"
  sound: "ENTITY_EXPERIENCE_ORB_PICKUP"
  allow-toggle: true
  notify-prefix: "&e&l[Mention] &r"

# ============================================================
#  CHAT-HISTORY
# ============================================================
chat-history:
  max-lines: 50
  default-lines: 10