3 GrumpyMod
darksoon edited this page 2026-05-05 21:24:01 +02:00

Moderation

Zuständig für Auto-Mod, Anti-Nuke, manuelle Moderation, Reports — und den Server-Audit-Logger.


Auto-Mod

Jede Nachricht wird gegen die konfigurierten Filter geprüft (in dieser Reihenfolge — der erste Treffer wendet seine Aktion an: warn · delete · timeout · nothing).

Check Was er macht Default
antiAd Discord-Invites blockieren; optional alle URLs (mit Allow-List) warn + delete
antiFlood Zu viele User-/Rollen-Mentions in einer Nachricht warn + delete
antiCaps Mehr als N% Großbuchstaben delete
wordFilter Konfigurierte Wörter (exact / substring) warn + delete
antiRepeat Gleiche Nachricht N-mal hintereinander warn + delete
antiSpam N+ Nachrichten in Y Sekunden warn + delete

Whitelisting: Rollen in whitelistRoleIds und Channels in whitelistChannelIds sind komplett ausgenommen.

Eskalation: Erreicht ein User einen escalation-Threshold an aktiven Warns, wird die zugehörige Aktion automatisch ausgelöst (höchster passender Threshold gewinnt).


Anti-Nuke

Erkennt koordinierte oder versehentliche Server-Zerstörung in Echtzeit.

Auslöser:

  • Massenhafte Channel-Löschungen (Default 3 in 10 Sek)
  • Massenhafte Bans (Default 5 in 10 Sek)
  • Massenhafte Rollen-Löschungen (Default 3 in 10 Sek)

Reaktion:

  1. Dem Verursacher werden sofort alle Rollen entzogen
  2. Im alert-Channel erscheint eine Benachrichtigung
  3. Die alert-ping-Rolle wird gepingt (falls konfiguriert)

Mit Double-Fire-Prevention — derselbe Trigger wird nicht zweimal verarbeitet.


Server-Audit-Logger

Der Bot loggt automatisch eine breite Palette an Server-Events in den mod-log-Channel — als strukturierte Embeds mit Kategorie-Badge, Executor (Von:), Target und Details.

Kategorie Events
Channels CHANNEL_CREATE · CHANNEL_DELETE · CHANNEL_UPDATE
Roles ROLE_CREATE · ROLE_DELETE · ROLE_UPDATE
Members ROLE_ADD · ROLE_REMOVE · MEMBER_UPDATE · MEMBER_KICK · MEMBER_BAN · MEMBER_UNBAN
Profil NICKNAME_UPDATE · USERNAME_CHANGE · DISPLAY_NAME_CHANGE · AVATAR_CHANGE
Sonstige INVITE_CREATE/DELETE · WEBHOOK_CREATE/DELETE · EMOJI_CREATE/DELETE · MESSAGE_DELETE · MESSAGE_BULK_DELETE

Channel via channels.mod-log in configs/config.yml setzen — kein zusätzliches Setup.


Punishment-System

Jede Mod-Aktion bekommt eine eindeutige P-#-ID und wird in der Datenbank gespeichert.

  • History anzeigen: /mod history @user
  • Einzelne Warn deaktivieren: /mod unwarn <id>
  • Volle Befehlsliste: Mod-Commands

Neue Punishment-Typen:

  • Note (/mod note) — Staff-Notiz ohne Strafe, taucht in /mod history auf
  • Softban (/mod softban) — Kick + Lösch-Cleanup (Ban+Unban) ohne permanenten Ban

Report-System

/report @User <Grund>
  • Cooldown: 5 Min zwischen Reports
  • Limit: 3 Reports pro Tag
  • Mods/Admins können nicht gemeldet werden
  • Staff sieht den Report im konfigurierten mod-log-Channel
  • Reporter-Tracker pruned stündlich (kein Memory-Leak mehr)

Konfiguration (Auszug)

# configs/modules/mod.yml
autoMod:
  antiSpam:
    enabled: true
    threshold: 5
    windowSeconds: 5
    action: "warn"
  antiAd:
    enabled: true
    blockAllUrls: false
    allowedDomains: ["youtube.com", "github.com"]
  antiCaps:
    enabled: true
    minLength: 8
    percentageThreshold: 70

antiNuke:
  enabled: true
  channelDeleteThreshold: 3
  banThreshold: 5
  roleDeleteThreshold: 3
  windowSeconds: 10

escalation:
  - warns: 3
    action: "timeout"
    durationMinutes: 10
  - warns: 5
    action: "kick"
  - warns: 7
    action: "ban"

reports:
  cooldownSeconds: 300
  maxPerDay: 3