Implement command cooldown management and enhance command execution flow
- Introduced `applyCommandCooldown` function to manage per-command cooldowns after execution, improving command rate limiting. - Updated command execution flow to include cooldown application, ensuring users are informed of cooldown status. - Enhanced error handling in interaction replies, allowing for more graceful error management and user feedback. - Improved the handling of interaction responses across various commands, ensuring consistent user experience. - Added permission checks for new commands, ensuring only authorized users can execute specific actions.
This commit is contained in:
@@ -272,6 +272,29 @@
|
||||
- [ ] `/giveaway end` mit falscher ID → Fehlermeldung; mit korrekter ID → Reroll möglich
|
||||
- [ ] Dashboard „Jetzt beenden“ → Status beendet, Discord-Nachricht aktualisiert
|
||||
|
||||
## Post-Phase – Audit Remediation (Reliability + Security) (Status: implementiert)
|
||||
|
||||
### Abgeschlossen (Code)
|
||||
|
||||
- Scheduler: Self-Remove des aktiven Jobs entfernt; safeRemove für externe Cancels
|
||||
- Channel-Picker: Fehler/leere Responses nicht cachen; Error+Reload wie Rollen
|
||||
- `requirePermission`: Member- vs. Bot-Permissions getrennt; Defer auf Ban/Purge/Lock/Backup/Giveaway/Media/Translate
|
||||
- Giveaway: atomares End (`updateMany`), Pause cancel/reschedule, Dashboard Pause/Delete via BullMQ
|
||||
- Component-/Context-Gates: Maintenance + Modul-Toggle
|
||||
- Owner-Guild-Bypass ab SUPPORT; OAuth `refresh_token` + Session-Refresh
|
||||
- Queue safeRemove (Temp-Ban, Reminders, Selfroles); `addJobAndAwait` rethrowt Enqueue-Fehler
|
||||
- DefaultMemberPermissions für Admin-Commands; Cooldown erst nach erfolgreichem Execute
|
||||
- API: BadRequest/Upstream-Errors; Discord Roles/Channels 401/403/429/502
|
||||
|
||||
### Manuell testen
|
||||
|
||||
- [ ] One-shot Schedule sendet einmal (kein Doppel-Post nach Worker-Retry)
|
||||
- [ ] Channel-Dropdown bei API-Fehler: Retry statt permanent „Keine Treffer“
|
||||
- [ ] Giveaway Pause im Dashboard → Button disabled; Unpause → Timer weiter; End trotz Pause
|
||||
- [ ] Modul aus → Join-Button / Ticket-Panel antwortet „Modul deaktiviert“
|
||||
- [ ] VIEWER-Owner ohne Manage Guild: kein Dashboard-Guild-Zugriff; SUPPORT+: Bypass
|
||||
- [ ] Session nach Token-Ablauf refresht ohne erzwungenen Re-Login (mit gültigem refresh_token)
|
||||
|
||||
## Post-Phase – Giveaway End Fix + Role Picker (Status: implementiert)
|
||||
|
||||
### Abgeschlossen (Code)
|
||||
|
||||
Reference in New Issue
Block a user