Enhance embed functionality across scheduler and welcome components

- Updated SchedulerManager and WelcomeForm to integrate DiscordEmbedBuilder for managing embeds, replacing JSON text areas with a more user-friendly interface.
- Modified data handling in the scheduler and welcome configurations to support embed structures, ensuring proper parsing and validation.
- Updated localization files to reflect changes in embed handling, improving user guidance and clarity in both English and German.
- Enhanced validation schemas to require embed titles or descriptions where necessary, ensuring robust data integrity.
This commit is contained in:
TheOnlyMace
2026-07-22 21:49:38 +02:00
parent 6a223892dd
commit 55a4f7bf09
10 changed files with 392 additions and 82 deletions

View File

@@ -21,7 +21,19 @@
"close": "Schließen",
"searchSelect": "Suchen und auswählen…",
"noResults": "Keine Treffer",
"clearSelection": "Auswahl löschen"
"clearSelection": "Auswahl löschen"
},
"embedBuilder": {
"title": "Titel",
"titlePlaceholder": "Willkommen!",
"description": "Beschreibung",
"descriptionPlaceholder": "Schön, dass du da bist, {user}.",
"color": "Farbe",
"preview": "Vorschau",
"previewTitlePlaceholder": "Embed-Titel",
"previewDescriptionPlaceholder": "Embed-Beschreibung erscheint hier…",
"clear": "Embed leeren",
"clearHint": "Leere Felder speichern kein Embed."
},
"nav": {
"dashboard": "Dashboard",
@@ -276,7 +288,7 @@
"welcomeContent": "Nachrichtentext",
"contentPlaceholder": "Willkommen {user} auf {server}!",
"placeholdersHint": "Verfügbare Platzhalter: {user}, {user.name}, {user.tag}, {user.id}, {server}, {memberCount}",
"welcomeEmbed": "Embed (JSON, optional)",
"welcomeEmbed": "Embed",
"welcomeDmEnabled": "Willkommens-DM aktiviert",
"dmContentPlaceholder": "Optionale private Nachricht an neue Mitglieder",
"userAutoroles": "Autoroles für Nutzer",
@@ -288,7 +300,7 @@
"leaveEnabledLabel": "Abschiedsnachricht aktiviert",
"leaveChannelId": "Abschieds-Kanal-ID",
"leaveContent": "Nachrichtentext",
"leaveEmbed": "Embed (JSON, optional)"
"leaveEmbed": "Embed"
},
"verification": {
"title": "Verifizierung",
@@ -461,7 +473,9 @@
},
"triggerWord": "Auslöse-Wort (optional)",
"content": "Inhalt",
"allowedRoleIds": "Erlaubte Rollen-IDs",
"embed": "Embed",
"embedRequired": "Für Embed-Tags sind Titel oder Beschreibung erforderlich.",
"allowedRoleIds": "Erlaubte Rollen",
"allowedChannelIds": "Erlaubte Kanal-IDs",
"idsPlaceholder": "Eine oder mehrere IDs, kommagetrennt",
"create": "Tag erstellen",
@@ -562,10 +576,11 @@
"cron": "Cron-Ausdruck",
"runAt": "Ausführen am",
"content": "Nachrichtentext",
"cronHint": "Cron-Ausdruck für wiederkehrende Nachrichten ODER ein einmaliges Datum/Uhrzeit angeben - nicht beides.",
"embed": "Embed (optional)",
"cronHint": "Cron-Ausdruck für wiederkehrende Nachrichten ODER ein einmaliges Datum/Uhrzeit angeben - nicht beides. Text und/oder Embed sind erforderlich.",
"create": "Nachricht planen",
"created": "Nachricht geplant.",
"formIncomplete": "Bitte Kanal, Inhalt sowie Cron-Ausdruck oder Datum/Uhrzeit ausfüllen.",
"formIncomplete": "Bitte Kanal, Inhalt oder Embed sowie Cron-Ausdruck oder Datum/Uhrzeit ausfüllen.",
"confirmDelete": "Diesen Zeitplan wirklich löschen?",
"listTitle": "Geplante Nachrichten",
"listDescription": "Anstehende und wiederkehrende geplante Nachrichten.",

View File

@@ -21,7 +21,19 @@
"optional": "Optional",
"searchSelect": "Search and select…",
"noResults": "No results",
"clearSelection": "Clear selection"
"clearSelection": "Clear selection"
},
"embedBuilder": {
"title": "Title",
"titlePlaceholder": "Welcome!",
"description": "Description",
"descriptionPlaceholder": "Glad you're here, {user}.",
"color": "Color",
"preview": "Preview",
"previewTitlePlaceholder": "Embed title",
"previewDescriptionPlaceholder": "Embed description appears here…",
"clear": "Clear embed",
"clearHint": "Empty fields do not save an embed."
},
"nav": {
"dashboard": "Dashboard",
@@ -276,7 +288,7 @@
"welcomeContent": "Message content",
"contentPlaceholder": "Welcome {user} to {server}!",
"placeholdersHint": "Available placeholders: {user}, {user.name}, {user.tag}, {user.id}, {server}, {memberCount}",
"welcomeEmbed": "Embed (JSON, optional)",
"welcomeEmbed": "Embed",
"welcomeDmEnabled": "Welcome DM enabled",
"dmContentPlaceholder": "Optional private message to new members",
"userAutoroles": "Autoroles for users",
@@ -288,7 +300,7 @@
"leaveEnabledLabel": "Leave message enabled",
"leaveChannelId": "Leave channel ID",
"leaveContent": "Message content",
"leaveEmbed": "Embed (JSON, optional)"
"leaveEmbed": "Embed"
},
"verification": {
"title": "Verification",
@@ -461,7 +473,9 @@
},
"triggerWord": "Trigger word (optional)",
"content": "Content",
"allowedRoleIds": "Allowed role IDs",
"embed": "Embed",
"embedRequired": "Embed tags need a title or description.",
"allowedRoleIds": "Allowed roles",
"allowedChannelIds": "Allowed channel IDs",
"idsPlaceholder": "One or more IDs, comma-separated",
"create": "Create tag",
@@ -562,10 +576,11 @@
"cron": "Cron expression",
"runAt": "Run at",
"content": "Message content",
"cronHint": "Set a cron expression for recurring messages, or a one-time date/time - not both.",
"embed": "Embed (optional)",
"cronHint": "Set a cron expression for recurring messages, or a one-time date/time - not both. Text and/or embed is required.",
"create": "Schedule message",
"created": "Message scheduled.",
"formIncomplete": "Please fill in the channel, content and either a cron expression or a date/time.",
"formIncomplete": "Please fill channel, content or embed, and either a cron expression or a date/time.",
"confirmDelete": "Really delete this schedule?",
"listTitle": "Scheduled messages",
"listDescription": "Upcoming and recurring scheduled messages.",