@extends('layouts.dashboard') @section('title', 'Einstellungen · '.$guild->name.' · TacForce Pro') @php $moduleMeta = [ 'tickets' => ['Tickets', 'ticket', 'Ticket-System mit Kategorien & Panels'], 'applications' => ['Bewerbungen', 'file-text', 'Bewerbungsformulare & Review'], 'welcome' => ['Welcome', 'message', 'Begrüßungsnachrichten & Auto-Rolle'], 'logs' => ['Logs', 'list', 'Server-Ereignisse protokollieren'], 'level' => ['Level', 'star', 'XP & Ranglisten'], 'guard' => ['Guard', 'shield', 'Anti-Raid & Auto-Moderation'], ]; $soonMeta = [ 'partner' => ['Partner', 'link', 'Partnerprogramm'], ]; // Für Hinweise/Warnungen: welche Module an sind + ob Felder ohne aktives Modul gesetzt sind. $mods = (array) $modules; $welcomeOn = (bool) ($mods['welcome'] ?? false); $logsOn = (bool) ($mods['logs'] ?? false); $welcomeConfigured = filled($settings->welcome_channel_id) || filled($settings->welcome_message) || filled($settings->auto_role_id); $logsConfigured = filled($settings->log_channel_id) || ! empty((array) ($settings->log_channels ?? [])); @endphp @section('content')

Einstellungen

Konfiguriere TacForce Pro für {{ $guild->name }}.

{{-- Kurzanleitung — nimmt die häufigsten Verständnisfragen vorweg. --}}

So funktioniert's

{{-- GENERAL SETTINGS FORM --}}
@csrf @method('PUT')

Allgemein

Sprache, Channels und Erscheinungsbild.

{{-- Language --}}
@error('language')

{{ $message }}

@enderror
{{-- Log channel --}}
@error('log_channel_id')

{{ $message }}

@enderror

Allgemeiner Fallback für alle Logs. Einzelne Kategorien (unten) überschreiben ihn.

{{-- Welcome channel --}}
@error('welcome_channel_id')

{{ $message }}

@enderror

Channel, in dem die Begrüßung gepostet wird.

{{-- News channel --}}
@error('news_channel_id')

{{ $message }}

@enderror

Hier postet TacForce Operator neue Funktionen & Updates automatisch.

{{-- Auto role --}}
@error('auto_role_id')

{{ $message }}

@enderror

Rolle, die neue Mitglieder beim Beitritt automatisch bekommen.

{{-- Level-Up channel --}}
@error('levelup_channel_id')

{{ $message }}

@enderror

Channel für Level-Up-Nachrichten (leer = im jeweiligen Channel).

{{-- Brand color --}}
@error('brand_color')

{{ $message }}

@enderror
{{-- Welcome message --}}
@error('welcome_message')

{{ $message }}

@enderror

Platzhalter: {user} = Mitglied, {server} = Servername.

@if ($welcomeConfigured && ! $welcomeOn)
Welcome-Felder sind gesetzt, aber das Modul Welcome ist aus (rechts). So begrüßt der Bot niemanden — schalte Welcome an.
@endif
{{-- Branding toggle --}}

TacForce-Branding anzeigen

@if ($brandingRemovable) Ausschalten, um das Branding aus Nachrichten zu entfernen. @else Nur ab Plan „Pro" abschaltbar. @endif

{{-- MODULES --}}
@csrf @method('PUT')

Module

Nur was hier an ist, macht der Bot. Aus = Funktion komplett gestoppt. Nach Ändern „Module speichern".

@foreach ($moduleMeta as $key => [$label, $ic, $desc]) @php $on = (bool) old("modules.$key", data_get($modules, $key, false)); @endphp

{{ $label }}

{{ $desc }}

@endforeach @foreach ($soonMeta as $key => [$label, $ic, $desc])

{{ $label }}

{{ $desc }}

Bald
@endforeach
{{-- LOG-KANÄLE (pro Kategorie frei konfigurierbar) --}} @php $logMeta = [ 'member' => ['📥 Mitglieder', 'Join, Leave, Nickname, Rollen'], 'mod' => ['🛡️ Moderation', 'Ban, Unban, Timeout'], 'message' => ['💬 Nachrichten', 'Bearbeitet & gelöscht'], 'voice' => ['🔊 Voice', 'Join, Leave, Move'], 'ticket' => ['🎫 Tickets & Bewerbungen', 'Geöffnet, geschlossen, eingegangen'], 'server' => ['📋 Server', 'Channels & Rollen erstellt/gelöscht'], 'bot' => ['🤖 Bot-Aktionen', 'Panels & Builder'], ]; $logChannels = (array) ($settings->log_channels ?? []); $logEvents = (array) ($settings->log_events ?? []); @endphp
@csrf @method('PUT')

Log-Kanäle

Jede Kategorie in einen eigenen Channel routen + an/aus. Leer = fällt auf die allgemeine Log-Channel-ID oben zurück.

@unless ($logsOn)
Modul Logs ist aus — egal was hier steht, es wird nichts geloggt. Rechts bei „Module" einschalten.
@endunless
@foreach ($logMeta as $key => [$label, $desc]) @php $chanVal = old("channels.$key", $logChannels[$key] ?? ''); $on = (bool) old("events.$key", array_key_exists($key, $logEvents) ? $logEvents[$key] : true); @endphp

{{ $label }}

{{ $desc }}

@endforeach

Braucht das Modul „Logs" aktiv. Channel-IDs per Rechtsklick → ID kopieren.

{{-- GUARD / AUTO-MODERATION --}} @php $automod = (array) ($settings->automod ?? []); $guardOn = (bool) ($mods['guard'] ?? false); $amInvites = (bool) old('invites', $automod['invites'] ?? false); $amSpam = (bool) old('spam', $automod['spam'] ?? false); $amMentions = (int) old('mentions', $automod['mentions'] ?? 0); @endphp
@csrf @method('PUT')

Guard / Auto-Moderation

Automatische Moderation: Invite-Links, Mention-Spam und Flood. Moderatoren (Recht „Nachrichten verwalten") sind ausgenommen.

@unless ($guardOn)
Modul Guard ist aus — egal was hier steht, es wird nichts moderiert. Rechts bei „Module" einschalten.
@endunless
{{-- Invite-Links --}}

🔗 Invite-Links löschen

Löscht Nachrichten mit discord.gg-/Invite-Links. Braucht MessageContent-Intent.

{{-- Spam / Flood --}}

🚫 Spam-Schutz

Löscht Flood (5+ Nachrichten in 5 Sekunden pro Person).

{{-- Max. Mentions --}}

📢 Max. Erwähnungen

Nachricht löschen ab so vielen @-Mentions (User + Rollen). 0 = aus.

@error('mentions')

{{ $message }}

@enderror

Braucht das Modul „Guard" aktiv. Invite-/Text-Filter benötigen den MessageContent-Intent.

@endsection