# ===========================
# NETWORK INFO MODUL
# ===========================
networkinfo.enabled=true
networkinfo.command.enabled=true
# Aus Datenschutzgruenden standardmaessig aus. Wenn true, erscheinen alle Spielernamen im JSON.
networkinfo.include_player_names=false

# Discord Webhook für Status-, Warn- und Attack-Meldungen
networkinfo.webhook.enabled=false
networkinfo.webhook.url=
networkinfo.webhook.username=
networkinfo.webhook.thumbnail_url=
networkinfo.webhook.notify_start_stop=true
# compact = kurze Texte | detailed = strukturierte Embeds mit Feldern
networkinfo.webhook.embed_mode=detailed
networkinfo.webhook.check_seconds=30

# Alert-Schwellwerte
networkinfo.alert.memory_percent=90
networkinfo.alert.player_percent=95
networkinfo.alert.cooldown_seconds=300
# Proxy-TPS Alert (20.0 = perfekt, Werte < 20 zeigen Main-Thread-Lag am Proxy)
networkinfo.alert.tps_enabled=true
networkinfo.alert.tps_threshold=18.0

# Attack Meldungen (Detected/Stopped)
networkinfo.attack.enabled=true
# Nutzt automatisch networkinfo.webhook.url
networkinfo.attack.source=
# API-Key fuer POST /network/attack
networkinfo.attack.api_key=

# Zeitzone (IANA-Format, z.B. Europe/Berlin, UTC, America/New_York)
# Vollstaendige Liste: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
login.log.timezone=Europe/Berlin

# ===========================
# ANTIBOT / ATTACK GUARD
# ===========================
antibot.enabled=true

# Profile: strict | high-traffic
# strict: agressiver Schutz, schnelleres Blocken, VPN-Check standardmaessig aktiv
# high-traffic: toleranter fuer grosse Netzwerke mit Lastspitzen
antibot.profile=high-traffic

# Presets (Referenz):
# strict -> max_cps=120, start_cps=220, stop_cps=120, ip/min=18, block_seconds=900, vpn_check.enabled=true
# high-traffic -> max_cps=180, start_cps=300, stop_cps=170, ip/min=24, block_seconds=600, vpn_check.enabled=false
# Hinweis: Werte unten ueberschreiben das Profil bei Bedarf.

# Globaler Traffic
antibot.max_cps=180
antibot.attack.start_cps=300
antibot.attack.stop_cps=170
antibot.attack.stop_grace_seconds=25

# Pro-IP Limiter
antibot.ip.max_connections_per_minute=24
antibot.ip.block_seconds=600
antibot.kick_message=Zu viele Verbindungen von deiner IP. Bitte warte kurz.

# Optionaler VPN/Proxy/Hosting Check (ip-api)
antibot.vpn_check.enabled=false
antibot.vpn_check.block_proxy=true
antibot.vpn_check.block_hosting=true
antibot.vpn_check.cache_minutes=30
antibot.vpn_check.timeout_ms=2500

# Sicherheitslog fuer Angreifer/VPN/Proxy-Events (mit Name/UUID falls verfuegbar)
antibot.security_log.enabled=true
antibot.security_log.file=antibot-security.log

# Lernmodus: Muster mitschreiben, Score bilden und erst ab Schwellwert blockieren.
antibot.learning.enabled=true
antibot.learning.score_threshold=100
antibot.learning.decay_per_second=2
antibot.learning.state_window_seconds=120

# Punktelogik pro Muster
antibot.learning.rapid.window_ms=1500
antibot.learning.rapid.points=12
antibot.learning.ip_rate_exceeded.points=30
antibot.learning.vpn_proxy.points=40
antibot.learning.vpn_hosting.points=30
antibot.learning.attack_mode.points=12
antibot.learning.high_cps.points=10
antibot.learning.recent_events.limit=30

# ===========================
# BACKEND JOIN GUARD SYNC (optional)
# ===========================
# Diese Werte koennen von BackendJoinGuard im StatusAPI-Sync-Modus abgeholt werden.
# Standalone bleibt weiterhin moeglich.
backendguard.enforcement_enabled=false
backendguard.log_blocked_attempts=false
backendguard.kick_message=&cBitte verbinde dich nur über den Proxy-Server.
# Wichtig: Hier nur echte Proxy-IP(s) eintragen.
backendguard.allowed_proxy_ips=127.0.0.1,::1,10.0.0.10
# Optional: internes Proxy-Netz als CIDR
backendguard.allowed_proxy_cidrs=10.0.0.0/24

# Optionaler API-Key fuer GET /network/backendguard/config
# Leer = kein API-Key erforderlich (nur im internen Netzwerk empfohlen)
backendguard.sync.api_key=

# ===========================
# MULTI ACCOUNT GUARD
# ===========================
# Verhindert, dass ein Spieler mit zwei Accounts gleichzeitig online ist.
multiaccountguard.enabled=false
 
# IP-Check: Gleiche IP mit unterschiedlichem Namen -> blockieren
multiaccountguard.check_ip=false
 
# UUID-Check: Gleiche UUID mit unterschiedlichem Namen -> blockieren (Bedrock-Edge-Cases)
multiaccountguard.check_uuid=false
 
# true  = bestehenden (alten) Account rauswerfen, neuen reinlassen
# false = neuen Account blockieren (Standard)
multiaccountguard.kick_existing=false
 
# Kick-Nachricht (& fuer Farbcodes, \n fuer Zeilenumbruch)
multiaccountguard.kick_message=&cDu bist bereits mit einem anderen Account online!\n&7Bitte trenne deinen anderen Account zuerst.
 
# Staff-Benachrichtigung bei Konflikt (Permission: statusapi.staff.notify)
multiaccountguard.staff_notify.enabled=false
multiaccountguard.staff_notify.format=&8[&cMAG&8] &e{blocked} &7wurde blockiert &8(2. Account von &e{existing}&8) &7| IP: &f{ip}
 
# Temporaerer IP-Bann nach X Versuchen (Integration mit AntiBotModule)
# max_attempts: Anzahl Konflikte bevor die IP gebannt wird
# duration_secs: Bann-Dauer in Sekunden
multiaccountguard.tempban.enabled=false
multiaccountguard.tempban.max_attempts=3
multiaccountguard.tempban.duration_secs=300
 
# Discord-Meldung bei jedem Konflikt (nutzt networkinfo.webhook.url automatisch)
multiaccountguard.webhook.enabled=false

