Community-Paket: Playtester-Programm, Starboard, Screenshot-Galerie

- Playtester: /playtester-setup postet Bewerbungs-Embed mit 🧪-Button;
  Toggle vergibt Rolle + DB-Eintrag; Liste + Rollen-Auswahl auf der Setup-Seite
- Starboard: ab konfigurierbarem -Schwellwert Repost als Embed in den
  Best-of-Kanal (Dedupe, kein Selbst-Boarding); neue Intents/Partials für Reaktionen
- Galerie: Bilder aus dem Screenshot-Kanal lokal archiviert (live + /galerie-backfill,
  Delete-Sync, Bot reagiert mit ) → öffentliche /galerie-Seite mit Hover-Grid
- Setup-Seite: Sektion // Community (Rolle, Starboard-Kanal + Schwellwert, Screenshot-Kanal)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-23 12:34:34 +02:00
co-authored by Claude Opus 4.8
parent 6d8f383aed
commit a3c47656c5
13 changed files with 563 additions and 12 deletions
+21
View File
@@ -31,6 +31,27 @@ export function devlogThreadsEnabled() {
return getSetting('devlog_threads_enabled') !== '0';
}
/** Playtester-Rolle (Bewerbungs-Button) — leer = Feature aus */
export function playtesterRoleId() {
return getSetting('playtester_role_id') || null;
}
/** Starboard-Kanal — leer = Feature aus */
export function starboardChannelId() {
return getSetting('starboard_channel_id') || null;
}
/** Ab wie vielen ⭐ landet eine Nachricht im Starboard (Default: 3) */
export function starboardThreshold() {
const n = Number(getSetting('starboard_threshold'));
return Number.isInteger(n) && n >= 1 ? n : 3;
}
/** Screenshot-Kanal für die Galerie — leer = Feature aus */
export function screenshotChannelId() {
return getSetting('screenshot_channel_id') || null;
}
/** Ziel-Repo für /bug-Reports (Default: EcoGame) */
export function bugReportRepo() {
return getSetting('bug_report_repo') || 'D4rkst3r/EcoGame';