Announcements — Geplante Ankündigungen
GrumpyAnnouncements plant einmalige oder wiederkehrende Nachrichten, die der Bot zu einem festgelegten Zeitpunkt automatisch in einen Kanal postet — optional mit Rollen-Ping.
Aktivierung
In configs/config.yml:
addons:
announcements: true # Standard: true
Es gibt keine eigene configs/modules/announcements.yml — das Modul ist rein datenbankbasiert. Announcements werden ausschließlich über den /announce-Command angelegt/verwaltet, nicht über eine Konfigurationsdatei.
Ablauf
Der Bot prüft jede Minute, ob fällige Announcements existieren:
- Alle Announcements mit
scheduledFor <= jetztwerden atomar „geclaimt" (Datenbank-Update inkl. Statuswechsel in derselben Operation, damit bei überlappenden Ticks nichts doppelt verschickt wird). - Einmalige Announcements werden danach auf
inaktivgesetzt. - Wiederkehrende Announcements bekommen sofort den nächsten Fälligkeitstermin.
- Erst danach wird die eigentliche Nachricht in den Zielkanal gesendet — schlägt der Versand fehl (z. B. Kanal gelöscht), bleibt der Zeitplan trotzdem fortgeschritten; es gibt keinen automatischen Retry-Loop für dauerhaft kaputte Kanäle.
Wiederholung (Recurring)
| Wert | Bedeutung |
|---|---|
none (Standard) |
Einmalig — danach automatisch inaktiv |
daily |
Täglich, gleiche Uhrzeit |
weekly |
Wöchentlich, gleicher Wochentag/Uhrzeit |
monthly |
Monatlich, gleicher Tag im Monat |
Monatliche Sonderfälle: Fällt der geplante Tag in einem Zielmonat nicht (z. B. 31. Januar → Februar hat keinen 31.), wird auf den letzten Tag des Zielmonats geklemmt (28./29. Februar), statt ins nächste Monat überzulaufen.
Kein Nachhol-Spam nach Downtime: War der Bot länger offline als das Wiederholungs-Intervall (z. B. mehrere Tage bei einer täglichen Ankündigung), wird beim nächsten Start nicht jede verpasste Wiederholung im Sekundentakt nachgeholt. Stattdessen springt der Termin direkt auf den nächsten zukünftigen Zeitpunkt — die Ankündigung wird höchstens einmal pro Tick verschickt, egal wie viele Intervalle in der Downtime verpasst wurden.
Commands
/announce create
Plant eine neue Ankündigung.
| Option | Pflicht | Beschreibung |
|---|---|---|
channel |
✅ | Ziel-Textkanal (Text oder Announcement-Kanal) |
in |
✅ | Zeit bis zum ersten Versand, z. B. 30m, 2h, 1d, 1h30m |
message |
✅ | Ankündigungstext (max. 1800 Zeichen) |
recurring |
❌ | none (Standard) | daily | weekly | monthly |
ping-role |
❌ | Rolle, die beim Versand gepingt wird |
/announce create channel:#ankündigungen in:2h message:"Server-Wartung heute Abend um 22 Uhr!"
/announce create channel:#events in:1d message:"Wöchentlicher Community-Abend!" recurring:weekly ping-role:@Event-Ping
Maximal 25 aktive Announcements pro Server gleichzeitig.
/announce list
Listet alle aktiven (noch nicht ausgeführten bzw. laufend wiederkehrenden) Announcements mit ID, Kanal, nächstem Versandzeitpunkt (relativ), Wiederholung und Text-Vorschau.
/announce list
/announce cancel
Storniert eine geplante Ankündigung. Die id-Option bietet Autocomplete basierend auf Text/ID.
| Option | Pflicht | Beschreibung |
|---|---|---|
id |
✅ | ID der Ankündigung (Autocomplete verfügbar) |
/announce cancel id:12
Berechtigungen
- Command-Nutzung:
Server verwalten(Manage Guild) — als Discord-Default-Berechtigung gesetzt, zusätzlich zur Laufzeit erneut geprüft (Defense-in-Depth, falls ein Server-Admin die Default-Berechtigung über Integrationen gelockert hat). - Bot-Berechtigung: Der Bot benötigt Sende-Rechte im Zielkanal sowie
@&Rolle-Erwähnungen, wennping-rolegenutzt wird.
GrumpyCore Wiki
⚙️ Setup
🔧 Core-Module
🆕 Neue Module
🔔 Benachrichtigungen & Utility
💬 Commands
👥 Staff
GrumpyCore Wiki (English)
⚙️ Setup
🔧 Core Modules
🆕 New Modules
🔔 Notifications & Utility
💬 Commands
👥 Staff