Table of contents
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Embed-Builder — Embeds bauen ohne JSON von Hand zu schreiben
GrumpyEmbed startet eine interaktive Session mit Buttons und Formularen (Modals), um klassische Discord-Embeds zusammenzuklicken — Titel, Text, Autor, Footer, Bilder, Felder. Keine YAML-Konfiguration nötig — nur eine ephemere Vorschau (nur für dich sichtbar), die sich nach jeder Änderung live aktualisiert.
Beispiel-Szenario (Schritt für Schritt)
Sven will eine hübsche Ankündigung mit Bild für den #news-Channel posten, kennt sich aber mit Embed-JSON nicht aus.
- Im
#news-Channel ausführen:
→ Der Bot antwortet (nur für Sven sichtbar) mit einer leeren Vorschau und den Buttons./embed build - 📝 Titel & Text klicken → Formular öffnet sich → eintragen:
- Titel:
🎉 Neues Update ist da! - Beschreibung:
Ab sofort gibt's das neue Leveling-System auf dem Server. - Farbe:
#5865F2→ Absenden → die Vorschau zeigt sofort das Embed mit Titel + Text.
- Titel:
- 🖼️ Bilder klicken → Bild-URL eintragen (z.B. ein hochgeladenes Bild-Link aus Discord) → Absenden → Vorschau zeigt jetzt das Bild mit an.
- ➕ Feld + klicken → Feldname
Was ist neu?, FeldwertXP-Boosts, Wochen-Rangliste, neue Rollen-Belohnungen→ Absenden → erscheint als zusätzliches Feld im Embed. - Vorschau sieht gut aus? ✅ Senden klicken → das fertige Embed wird sofort im
#news-Channel gepostet (öffentlich sichtbar für alle). - Embed soll später nochmal genauso oder leicht abgewandelt gepostet werden? Vorher 📋 JSON exportieren klicken, den Text kopieren und mit
/cc add type:embedals wiederverwendbaren Custom-Command speichern.
Aktivierung
In configs/config.yml:
addons:
embed: true
Es gibt keine eigene embed.yml — der Builder hat keine Einstellungen, nur den An/Aus-Schalter.
Commands
/embed build
Startet eine neue, leere Builder-Session (nur für dich sichtbar — ephemer).
/embed build
Zeigt eine Live-Vorschau + drei Button-Reihen:
| Reihe | Buttons |
|---|---|
| 1 | 📝 Titel & Text · 👤 Autor · 🦶 Footer · 🖼️ Bilder |
| 2 | ➕ Feld + · ➖ Feld - · 📥 JSON importieren |
| 3 | ✅ Senden · 📋 JSON exportieren · ❌ Abbrechen |
Jeder Button öffnet ein Formular (Modal) mit den aktuell gesetzten Werten vorausgefüllt — Änderungen erscheinen sofort in der Vorschau.
Berechtigung: Server verwalten (Manage Guild)
/embed from-json <json>
Lädt ein bestehendes Embed-JSON (z.B. aus /embed build → "JSON exportieren", oder aus einer bestehenden /cc add type:embed-Custom-Command) in eine Builder-Session — zum Weiterbearbeiten oder direkt Senden.
/embed from-json json:{"title": "Ankündigung", "description": "Text hier", "color": "#5865F2"}
Berechtigung: Server verwalten (Manage Guild)
Was pro Formular gesetzt wird
| Button | Felder |
|---|---|
| 📝 Titel & Text | Titel, Beschreibung, Farbe (Hex, z.B. #5865F2), Link (URL) |
| 👤 Autor | Name, Icon-URL, Link |
| 🦶 Footer | Text, Icon-URL |
| 🖼️ Bilder | Thumbnail-URL (klein, oben rechts), Bild-URL (groß, unten) |
| ➕ Feld + | Feldname, Feldwert, "Nebeneinander anzeigen?" (ja/nein) — bis zu 25 Felder |
Ein Feld leer lassen entfernt den entsprechenden Wert wieder (z.B. Titel-Feld leeren → Titel verschwindet aus der Vorschau).
Autor/Footer-Regel: Ein Icon oder Link im Autor-Bereich braucht zwingend auch einen Namen (sonst Fehlermeldung) — genauso ein Footer-Icon einen Footer-Text. Discord erlaubt kein Icon ohne zugehörigen Text.
Senden, Exportieren, Abbrechen
- ✅ Senden — postet das fertige Embed in den Kanal, in dem
/embed buildausgeführt wurde (nicht wählbar). Danach wird die Builder-Session beendet. - 📋 JSON exportieren — zeigt das aktuelle Embed als JSON-Codeblock (ephemer, zusätzlich zur offenen Builder-Session). Dieses Format ist identisch mit dem, was
/cc add type:embedals Wert erwartet — so gebautes Embed lässt sich direkt als Custom-Command wiederverwenden. - ❌ Abbrechen — verwirft die Session ohne zu senden.
Der "Senden"-Button ist deaktiviert, solange die Vorschau leer ist oder die Gesamtlänge über Discords 6000-Zeichen-Limit (Titel+Text+alle Feldnamen/-werte+Footer+Autor zusammengerechnet) liegt.
Zusammenspiel mit anderen Modulen
Der Builder nutzt intern denselben EmbedConfigSchema/buildEmbed()-Code wie:
- Custom Commands (
/cc add type:embed) - Welcome-Embeds
- Tickets-Panels
- Help-Hub
Das heißt: ein im Builder gebautes Embed lässt sich 1:1 als JSON in /cc add type:embed einfügen, um es als wiederverwendbaren Custom-Command zu speichern — der Builder selbst speichert nichts dauerhaft.
Grenzen (bewusst)
- Kein Speichern/Templates — jede Session ist Wegwerf-Nutzung. Für wiederverwendbare Embeds das exportierte JSON in
/cc add type:embedspeichern. - Kein Components-V2 (Discords neueres Container/Section/Media-Gallery-System) — bewusst nur klassisches Embed-JSON. Die volle Drag&Drop-Components-V2-UI würde erst mit einem Web-Dashboard Sinn ergeben.
- Sitzung läuft nach 30 Minuten Inaktivität automatisch ab (rein intern, kein Hinweis nötig) — einfach
/embed builderneut ausführen. - Nur eine aktive Session pro Person — ein erneutes
/embed buildverwirft eine vorherige, unvollendete Session.
Berechtigungen
| Command | Berechtigung |
|---|---|
/embed build |
Manage Guild |
/embed from-json |
Manage Guild |
Discord-seitiger Default via setDefaultMemberPermissions — Server-Admins können das pro Rolle/Kanal in den Server-Integrationseinstellungen übersteuern. Alle Commands sind nur auf Servern nutzbar (kein DM-Kontext).
GrumpyCore Wiki
⚙️ Setup
🔧 Core-Module
🆕 Neue Module
🔔 Benachrichtigungen & Utility
💬 Commands
👥 Staff
GrumpyCore Wiki (English)
⚙️ Setup
🔧 Core Modules
🆕 New Modules
🔔 Notifications & Utility
💬 Commands
👥 Staff