Branding-Tab: Name/Farben/Bot-Status/Avatar/Banner + Button-Farben für Rollen-Menüs
- Alle Embeds nutzen jetzt brandName/brandColor/brandColor2/brandFooter aus den Settings (Codemod über 20 Module) — Farbe & Name serverweit per Klick änderbar - Bot-Status (Presence): Typ (Spielt/Schaut/Hört/Status) + Text, sofort angewendet; Server-Monitor nutzt die Presence nur noch, wenn kein eigener Status gesetzt ist - Avatar-/Banner-Upload direkt aufs Bot-Profil (Base64, 8-MB-Limit, Discord-Rate-Limit sauber gemeldet) - Env-Verlagerung: GITEA_API_TOKEN (write-only Setting) und DISCORD_GUILD_ID jetzt auch über den Brand-Tab pflegbar — weniger Redeploys - Rollen-Menüs: Button-Farbe pro Eintrag wählbar (Grau/Blau/Grün/Rot) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -47,6 +47,52 @@ export function starboardThreshold() {
|
||||
return Number.isInteger(n) && n >= 1 ? n : 3;
|
||||
}
|
||||
|
||||
/** Gitea-API-Token (für /bug) — Setting hat Vorrang vor Env */
|
||||
export function giteaApiToken() {
|
||||
return getSetting('gitea_api_token') || config.giteaApiToken || null;
|
||||
}
|
||||
|
||||
/** Guild-ID für die Slash-Command-Registrierung (greift beim nächsten Start) */
|
||||
export function discordGuildId() {
|
||||
return getSetting('discord_guild_id') || config.discordGuildId || null;
|
||||
}
|
||||
|
||||
/* ── Branding (Setup → Brand-Tab) ── */
|
||||
|
||||
/** Brand-Name für Footer/Embeds (Default: D4RKST3R) */
|
||||
export function brandName() {
|
||||
return getSetting('brand_name') || 'D4RKST3R';
|
||||
}
|
||||
|
||||
/** Primärfarbe als Discord-Int (Default: #f5c518) */
|
||||
export function brandColor() {
|
||||
const hex = (getSetting('brand_color') || '#f5c518').replace('#', '');
|
||||
const n = parseInt(hex, 16);
|
||||
return Number.isNaN(n) ? 0xf5c518 : n;
|
||||
}
|
||||
|
||||
/** Sekundärfarbe (Default: #ff4d00) */
|
||||
export function brandColor2() {
|
||||
const hex = (getSetting('brand_color2') || '#ff4d00').replace('#', '');
|
||||
const n = parseInt(hex, 16);
|
||||
return Number.isNaN(n) ? 0xff4d00 : n;
|
||||
}
|
||||
|
||||
/** Embed-Footer im Brand-Stil: "D4RKST3R // DEVLOG" */
|
||||
export function brandFooter(tag) {
|
||||
return `${brandName()} // ${tag}`;
|
||||
}
|
||||
|
||||
/** Bot-Status: Text (leer = keiner; Server-Monitor darf dann die Presence nutzen) */
|
||||
export function botStatusText() {
|
||||
return getSetting('bot_status_text') || '';
|
||||
}
|
||||
|
||||
/** Bot-Status: Typ (playing|watching|listening|custom) */
|
||||
export function botStatusType() {
|
||||
return getSetting('bot_status_type') || 'custom';
|
||||
}
|
||||
|
||||
/** Auto-Rolle für neue Member — leer = aus */
|
||||
export function autoroleId() {
|
||||
return getSetting('autorole_id') || null;
|
||||
|
||||
Reference in New Issue
Block a user