Community-Endgame: Alpha-Keys, Bewerbungen, Events, Stats, Triggers, /remind, Social, Temp-Voice + MEE6-Bot-Karte

- Alpha-Keys: Pool im Community-Tab, Ein-Klick-Verteilung per DM an alle Playtester
  (Key bleibt frei, wenn die DM geblockt wird)
- Bewerbungs-Formulare: Builder im neuen Bewerbungen-Tab (bis 5 Fragen),
  Button → Discord-Modal → Review-Embed mit /, Rolle + DM bei Entscheidung
- Events: GuildScheduledEventCreate → Announce-Embed; öffentliche /events-Seite
  aus den Discord-Events (5-min-Cache)
- Server-Stats: activity_daily (Nachrichten/Joins/Leaves) → Balken-Chart auf /level
- Triggers (Auto-Antworten, 30s-Cooldown), /remind (DM-Scheduler),
  Twitch-Live (Helix, App-Creds write-only) + YouTube-RSS-Announcements,
  Temp-Voice (Join to Create, Cleanup bei Leerstand + Start)
- Brand-Tab: MEE6-Style Bot-Identity-Karte (Avatar-Vorschau mit Status-Dot,
  Bot-Name via setUsername, Presence online/idle/dnd, Aktivität)
- Neue Intents: GuildVoiceStates, GuildScheduledEvents; alles smoke-getestet

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-30 01:02:47 +02:00
co-authored by Claude Fable 5
parent f7b261c648
commit e72e6c8991
16 changed files with 1368 additions and 47 deletions
+54
View File
@@ -955,3 +955,57 @@ a.sha:hover { border-color: var(--neon); background: rgba(245, 197, 24, .07); }
/* Button-Farb-Auswahl im Rollen-Menü-Builder */
.btn-style-pick { width: 7.5rem !important; flex: none !important; }
/* ── BOT-IDENTITY-KARTE (MEE6-Style) ───────────────── */
.bot-card { display: flex; gap: 2rem; align-items: flex-start; }
.bot-card-left {
display: flex; flex-direction: column; gap: .6rem;
align-items: center; flex-shrink: 0;
}
.bot-avatar-wrap { position: relative; }
.bot-avatar {
width: 108px; height: 108px; border-radius: 50%;
border: 3px solid rgba(255, 255, 255, .1);
object-fit: cover; display: block;
background: #000;
}
.bot-avatar-empty {
display: flex; align-items: center; justify-content: center;
font-size: 2.5rem;
}
.bot-dot {
position: absolute; right: 4px; bottom: 4px;
width: 24px; height: 24px; border-radius: 50%;
border: 4px solid var(--bg2);
}
.btn-upload { justify-content: center; width: 100%; cursor: pointer; }
.bot-card-right { flex: 1; min-width: 0; }
@media (max-width: 640px) {
.bot-card { flex-direction: column; align-items: stretch; }
.bot-card-left { flex-direction: row; justify-content: flex-start; }
}
/* ── EVENTS ────────────────────────────────────────── */
.event-card { margin-bottom: 1.5rem; }
.event-cover {
width: 100%; max-height: 220px; object-fit: cover;
border-radius: 8px; margin-bottom: .9rem; display: block;
}
/* ── AKTIVITÄTS-CHART ──────────────────────────────── */
.act-chart {
display: flex; align-items: flex-end; gap: 3px;
height: 120px;
background: var(--bg2);
border: 1px solid rgba(255, 255, 255, .06);
border-radius: 12px;
padding: .8rem;
}
.act-bar {
flex: 1;
background: linear-gradient(180deg, var(--neon), rgba(245, 197, 24, .35));
border-radius: 3px 3px 0 0;
min-height: 4px;
transition: opacity .15s;
}
.act-bar:hover { opacity: .7; }