diff --git a/abstracto-application/abstracto-modules/remind/remind-impl/src/main/java/dev/sheldan/abstracto/remind/service/RemindServiceBean.java b/abstracto-application/abstracto-modules/remind/remind-impl/src/main/java/dev/sheldan/abstracto/remind/service/RemindServiceBean.java index 2e3bc4708..f40616316 100644 --- a/abstracto-application/abstracto-modules/remind/remind-impl/src/main/java/dev/sheldan/abstracto/remind/service/RemindServiceBean.java +++ b/abstracto-application/abstracto-modules/remind/remind-impl/src/main/java/dev/sheldan/abstracto/remind/service/RemindServiceBean.java @@ -223,6 +223,9 @@ public class RemindServiceBean implements ReminderService { .builder() .reminderParticipants(participantsDisplays) .reminderDisplay(reminderDisplay) + .serverId(reminder.getServer().getId()) + .channelId(reminder.getChannel().getId()) + .messageId(reminder.getMessageId()) .userDisplay(UserDisplay.fromUser(member.getUser())) .duration(Duration.between(reminder.getReminderDate(), reminder.getTargetDate())) .build(); diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/model/messagecomponents/ButtonConfig.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/model/messagecomponents/ButtonConfig.java index 5f1e18cdd..2f9d2fd04 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/model/messagecomponents/ButtonConfig.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/model/messagecomponents/ButtonConfig.java @@ -13,6 +13,7 @@ public class ButtonConfig { private String id; private String url; private Boolean disabled; + private Integer uniqueId; private String emoteMarkdown; private ButtonStyleConfig buttonStyle; private String buttonPayload; diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/model/messagecomponents/ContainerColor.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/model/messagecomponents/ContainerColor.java new file mode 100644 index 000000000..b794ab6e7 --- /dev/null +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/model/messagecomponents/ContainerColor.java @@ -0,0 +1,20 @@ +package dev.sheldan.abstracto.core.templating.model.messagecomponents; + + +import java.awt.Color; +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +@Builder +@Getter +@Setter +public class ContainerColor { + private Integer r; + private Integer g; + private Integer b; + + public Color toColor() { + return new Color(r, g, b); + } +} diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/model/messagecomponents/ContainerConfig.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/model/messagecomponents/ContainerConfig.java index 16ccfcef0..31138acc9 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/model/messagecomponents/ContainerConfig.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/model/messagecomponents/ContainerConfig.java @@ -8,6 +8,10 @@ import lombok.experimental.SuperBuilder; @Getter public class ContainerConfig implements ComponentConfig { private List components; + private ContainerColor color; + private Integer uniqueId; + private Boolean spoiler; + private Boolean disabled; @Override public ComponentTypeConfig getType() { return ComponentTypeConfig.CONTAINER; diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/model/messagecomponents/MediaGalleryConfig.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/model/messagecomponents/MediaGalleryConfig.java index 015a572c4..839b6db3e 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/model/messagecomponents/MediaGalleryConfig.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/model/messagecomponents/MediaGalleryConfig.java @@ -8,6 +8,7 @@ import lombok.experimental.SuperBuilder; @Getter public class MediaGalleryConfig implements ComponentConfig { private List images; + private Integer uniqueId; @Override public ComponentTypeConfig getType() { return ComponentTypeConfig.MEDIA_GALLERY; diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/model/messagecomponents/SectionConfig.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/model/messagecomponents/SectionConfig.java index 66eb8a027..8bc57a6ab 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/model/messagecomponents/SectionConfig.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/model/messagecomponents/SectionConfig.java @@ -9,5 +9,7 @@ import lombok.experimental.SuperBuilder; public class SectionConfig { protected SectionAccessoryConfig accessory; protected List components; + private Boolean disabled; + private Integer uniqueId; } diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/model/messagecomponents/SeparatorConfig.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/model/messagecomponents/SeparatorConfig.java index 385269dd4..67c0de9a4 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/model/messagecomponents/SeparatorConfig.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/model/messagecomponents/SeparatorConfig.java @@ -8,6 +8,7 @@ import lombok.experimental.SuperBuilder; public class SeparatorConfig implements ComponentConfig { private Boolean divider; private Spacing spacing; + private Integer uniqueId; @Override public ComponentTypeConfig getType() { return ComponentTypeConfig.SEPARATOR; diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/service/TemplateServiceBean.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/service/TemplateServiceBean.java index 4d4b1a3f8..9b12eeb89 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/service/TemplateServiceBean.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/templating/service/TemplateServiceBean.java @@ -351,7 +351,14 @@ public class TemplateServiceBean implements TemplateService { } } if(accessory != null) { - return Section.of(accessory, sectionComponents); + Section section = Section.of(accessory, sectionComponents); + if(sectionConfig.getDisabled() != null) { + section = section.withDisabled(sectionConfig.getDisabled()); + } + if(sectionConfig.getUniqueId() != null) { + section = section.withUniqueId(sectionConfig.getUniqueId()); + } + return section; } } } else if(componentConfig instanceof TopLevelFileConfig fileConfig) { @@ -380,11 +387,19 @@ public class TemplateServiceBean implements TemplateService { } galleryItems.add(item); }); - return MediaGallery.of(galleryItems); + MediaGallery gallery = MediaGallery.of(galleryItems); + if(mediaGalleryConfig.getUniqueId() != null) { + gallery = gallery.withUniqueId(mediaGalleryConfig.getUniqueId()); + } + return gallery; } } else if(componentConfig instanceof TopLevelSeperatorConfig seperatorConfig) { - return Separator.create(seperatorConfig.getDivider(), + Separator separator = Separator.create(seperatorConfig.getDivider(), Spacing.toSpacing(seperatorConfig.getSpacing())); + if(seperatorConfig.getUniqueId() != null) { + separator = separator.withUniqueId(seperatorConfig.getUniqueId()); + } + return separator; } else if(componentConfig instanceof TopLevelContainerConfig topLevelContainerConfig) { List childComponents = new ArrayList<>(); for (ComponentConfig containerComponent : topLevelContainerConfig.getComponents()) { @@ -393,7 +408,20 @@ public class TemplateServiceBean implements TemplateService { childComponents.add((ContainerChildComponent) createdComponent); } } - return Container.of(childComponents); + Container container = Container.of(childComponents); + if(topLevelContainerConfig.getColor() != null) { + container = container.withAccentColor(topLevelContainerConfig.getColor().toColor()); + } + if(topLevelContainerConfig.getUniqueId() != null) { + container = container.withUniqueId(topLevelContainerConfig.getUniqueId()); + } + if(topLevelContainerConfig.getDisabled() != null) { + container = container.withDisabled(topLevelContainerConfig.getDisabled()); + } + if(topLevelContainerConfig.getSpoiler() != null) { + container = container.withSpoiler(topLevelContainerConfig.getSpoiler()); + } + return container; } return null; } @@ -545,6 +573,9 @@ public class TemplateServiceBean implements TemplateService { if (buttonConfig.getDisabled() != null) { createdButton = createdButton.withDisabled(buttonConfig.getDisabled()); } + if(buttonConfig.getUniqueId() != null) { + createdButton = createdButton.withUniqueId(buttonConfig.getUniqueId()); + } return createdButton; }