Add new features for giveaways, tickets, self-roles, tags, starboard, suggestions, and birthdays

- Integrated new command modules for managing giveaways, tickets, self-roles, tags, starboard, suggestions, and birthdays, enhancing the bot's capabilities.
- Implemented job handling for giveaway endings, ticket management, and birthday role expirations, improving automation and user experience.
- Updated command definitions and interaction handling to support new features, ensuring smooth user interactions.
- Enhanced the job processing system with dedicated workers for managing various tasks, including auto-closing tickets and running birthday checks.
- Documented the new features and their setup processes in PHASE-TRACKING.md for clarity on implementation steps.
This commit is contained in:
smueller
2026-07-22 13:21:28 +02:00
parent 1ceb8c3574
commit 52b10c9536
11 changed files with 271 additions and 90 deletions

View File

@@ -173,48 +173,39 @@ Dieses Dokument hält den aktuellen Implementierungsstand fest. Es wird bei jede
- `/rps`, `/choose`, `/trivia`, `/tictactoe`, `/connect4`, `/hangman`
- `/meme`, `/cat`, `/dog` (abschaltbar via Redis `fun:config:{guildId}`)
### Manuelle Discord-Tests (Phase 3 bestätigt)
- Manuell auf Test-Server bestätigt (User-Freigabe).
## Phase 4 Giveaways, Tickets, Selfroles, Tags, Starboard, Suggestions, Birthdays, Temp-Voice (Status: implementiert, manuelle Tests ausstehend)
### Abgeschlossen
- Prisma-Migration `20260722160000_phase4_modules`
- Shared `packages/shared/src/phase4.ts` + Tests
- Alle Module in `commands.ts` / `index.ts` / `jobs.ts` verdrahtet
- Intents: `GuildMessageReactions`; Partials: `Reaction`
- Queues: `giveaways`, `tickets` (inkl. SelfRole-Expire + Auto-Close), `birthdays`
### Module
| Modul | Features |
|--------|----------|
| **Giveaways** | `/giveaway start\|end\|reroll\|list\|delete\|pause`, Join-Button, Auto-End |
| **Tickets** | Panel/Kategorie, Close/Claim/…, HTML-Transkript, Rating, Auto-Close |
| **Selfroles** | Panel create/edit/delete (Buttons/Dropdown/Reactions + Behaviors) |
| **Tags** | create/edit/delete/list/info/run, Auto-Responder |
| **Starboard** | `/starboard setup`, Reaction-Events |
| **Suggestions** | `/suggest`, Staff-Status, Voting-Buttons |
| **Birthdays** | set/remove/next/list/setup, stündlicher Check, 24h-Rolle |
| **Temp-Voice** | setup + Steuerung + Join-to-Create + Control-Panel |
### Manuelle Discord-Tests (offen)
- Leveling: Nachrichten/Voice → XP, `/rank`, Level-Up, `/xp`
- Economy: Daily/Work, Shop, Blackjack-Buttons, `/eco give`
- Utility: Poll, Reminder, AFK, Snipe, Embed, Translate
- Fun: `/flip` vs `/coinflip`, Spiele, Medien-APIs
- Stack neu bauen: `docker compose up -d --build` (Migration anwenden)
- Giveaway, Ticket-Flow, Selfroles, Tags, Starboard, Suggestions, Birthday, Temp-Voice
- `docker compose up -d --build` (Migration + Guild-Command-Sync)
## Nächster geplanter Schritt
- Manuelle Phase-3-Tests, dann nach Freigabe Phase 4 (Giveaways, Tickets, Reaction Roles, Custom Commands, Geburtstage, Temp-Voice).
### Starboard (`apps/bot/src/modules/starboard/`)
- `/starboard setup` (Kanal, Schwellenwert, Emoji, Self-Star)
- Reaktions-Events: Nachrichten mit genügend ⭐ (konfigurierbar) → Embed im Starboard-Kanal
- NSFW-/Bot-/Ignore-Kanal-Ausschluss, Self-Star-Regel, Eintrag in `StarboardEntry`
### Suggestions (`apps/bot/src/modules/suggestions/`)
- `/suggest`, `/suggestion setup|approve|deny|consider|implement`
- Upvote/Downvote-Buttons (`sug:vote:{id}:up|down`), optional Thread
- Status-Update mit Kanal-Verschiebung (approved/denied) und DM an Autor
### Manuelle Discord-Tests Starboard/Suggestions (offen)
- `/starboard setup`, Reaktionen bis/unter Schwellenwert, Self-Star aus/an
- `/suggestion setup`, `/suggest`, Voting, Staff-Status + DM
### Giveaways (`apps/bot/src/modules/giveaways/`)
- `/giveaway start|end|reroll|list|delete|pause`
- Button `gw:join:{giveawayId}`, BullMQ-Job `giveawayEnd` (Export: `endGiveaway`)
- Anforderungen: Rolle, Level, Mitgliedschaftsdauer; DM an Gewinner
### Tickets (`apps/bot/src/modules/tickets/`)
- `/ticket panel create`, `/ticket category create`, `/ticket close|claim|add|remove|rename|priority`
- Panel-Buttons/Select, Modal, Kanal-/Thread-Modus, HTML-Transkript, Bewertung, Auto-Close-Export
### Manuelle Discord-Tests Giveaways/Tickets (offen)
- Giveaway: Start, Join, Ende/Reroll/Pause; Ticket: Panel, Öffnen, Close, Transkript, Rating
- Wiring in `commands.ts`, `index.ts`, `jobs.ts` (Parent-Agent)
- Manuelle Phase-4-Tests, dann nach Freigabe Phase 5 (Statistiken/Invite-Tracking, Social-Feeds, Scheduler, Backup).