Modul-Planung: Was bleibt, was Γ€ndert sich, was kommt neu. V3 Chaos β V4 Clean Architecture.
10 konkrete Probleme die wir in V4 lΓΆsen
19 Discord-Tabellen, 7 ORPC Router, Seiten ohne klare Struktur. Man findet nichts. Commands, Levels, Giveaways, Polls β alles auf eigenen Seiten ohne Zusammenhang.
Commands gehen verloren wenn der Bot offline ist. Kein Retry, kein Acknowledgment. Fire-and-forget = Data Loss.
DiscordLog, DiscordActionLog, AuditLog β niemand weiΓ welche man checken soll. Duplikate ΓΌberall.
Bot sendet Nachricht β Panel zeigt es erst nach Reload. Kein WebSocket, kein SSE. Sync nur manuell.
DiscordBotSetting ist ein Anti-Pattern. Keine Typsicherheit, kein Schema, kein Default-Handling.
Discord API Calls ohne Throttling. Bot kann gebannt werden wenn zu viele Requests kommen.
roleSync, memberSync, channelSync β 3 separate Services mit duplizierten Patterns. FehleranfΓ€llig.
0 Tests fΓΌr den gesamten Discord Bot. Jede Γnderung = manuelles Testen.
Clean, typed, testbar
ZuverlΓ€ssige Job Queue mit Retry, Acknowledgment, Dead Letter Queue. Commands gehen nie verloren.
Ein einheitliches activityLog mit Type-Enum. Alles an einem Ort, filterbar, durchsuchbar.
Bot Events β Redis β WS Events Service β Panel. Live-Updates fΓΌr Member Joins, Messages, Voice.
Ein discordGuild Table mit typed JSON settings Column. Arktype validiert, Defaults eingebaut.
Priorisiert: Must Have β Should Have β Could Have
So sollte die Discord-Verwaltung aussehen. Klare Gruppen, alles erreichbar.
Γberblick ΓΌber den Server und Bot-Status
| Command | Response | Cooldown | Uses | Status |
|---|---|---|---|---|
| /shop | Embed: Shop Link | 5s | 1,892 | Active |
| /rank | Level + XP Embed | 10s | 4,231 | Active |
| /clip | Last Clip Link | 30s | 567 | Active |
| /donate | Donation Page | 5s | 234 | Disabled |
Von 19 Tabellen auf 10. Weniger Chaos, bessere Relationen.
| V3 (19 Tabellen) | V4 (10 Tabellen) | Γnderung |
|---|---|---|
| DiscordBotSetting (key-value) | β discordGuild.settings (typed JSON) | Eliminiert |
| DiscordLog + DiscordActionLog | β activityLog (unified) | ZusammengefΓΌhrt |
| DiscordMember | discordMember (+ linkedUserId) | Behalten |
| DiscordRole + DiscordMemberRole | discordRole + discordMemberRole | Behalten |
| DiscordCommand + DiscordCommandStats | β discordCommand (stats eingebaut) | ZusammengefΓΌhrt |
| DiscordUserLevel + DiscordLevelSettings | discordUserLevel + discordGuild.levelSettings | Settings β Guild |
| DiscordGiveaway | discordGiveaway | Behalten |
| DiscordPoll | discordPoll | Behalten |
| DiscordReactionRole | discordReactionRole | Behalten |
| DiscordScheduledMessage + DiscordEmbedTemplate | β discordScheduledMessage (templates inline) | ZusammengefΓΌhrt |
| DiscordMessage | discordMessage | Behalten |
| DiscordVoiceSession | discordVoiceSession | Behalten |
| DiscordVote | β | Entfernt (Polls reichen) |
| DiscordRolePermissionMapping | β discordGuild.rolePermissions (JSON) | Vereinfacht |
GeklΓ€rt am 2026-03-18
Kein Multi-Server Support. Ein Discord Server = eine Codenull Instanz. Vereinfacht Datenmodell erheblich β guildId wird trotzdem gespeichert (fΓΌr Future-Proofing), aber kein Multi-Tenant Logic nΓΆtig.
Jeder Discord Member wird automatisch als Codenull User angelegt. Discord OAuth ist primΓ€re Auth. Kein separater Registration-Flow. discordMember.linkedUserId wird beim Join automatisch gesetzt.
WYSIWYG Editor im Admin Panel zum Bauen von Discord Embeds. Live-Preview neben dem Editor. Farbe, Felder, Footer, Thumbnail, Image β alles per Drag'n'Drop. Templates speicherbar.
Discord's eingebaute AutoMod Features reichen aus. Wir bauen KEINE eigene Spam-Detection, Link-Filter oder Banned-Words. Spart erheblich Entwicklungszeit.
VollstΓ€ndiges Message Tracking β Create, Edit, Delete. Keine Privacy-EinschrΓ€nkungen. Retention Policy kann spΓ€ter ergΓ€nzt werden wenn nΓΆtig.
Eingebaute Commands: /rank, /shop, /clip, /donate, /leaderboard. Diese sind nicht lΓΆschbar aber konfigurierbar (Response, Cooldown, Permissions). Plus unbegrenzt Custom Commands.