From e236522328adaba548912d830b80427b5f88c4dc Mon Sep 17 00:00:00 2001
From: Sheldan <5037282+Sheldan@users.noreply.github.com>
Date: Wed, 12 May 2021 00:14:18 +0200
Subject: [PATCH] [OPB-19] adding referral link functionality changing name for
setups feature aligning starboard custom module name
---
application/executable/pom.xml | 8 +-
application/oneplus-bot-modules/pom.xml | 3 +-
.../oneplus-bot-modules/referral/pom.xml | 41 +
.../src/main/assembly/liquibase.xml | 0
.../referral/config/ReferralBeanConfig.java | 15 +
.../referral/config/ReferralFeature.java | 24 +
.../config/ReferralFeatureDefinition.java | 15 +
.../referral/config/ReferralPostTarget.java | 15 +
.../referral/config/ReferralProperties.java | 10 +
.../referral/listener/ReferralListener.java | 167 ++
.../modules/referral/model/ReferralType.java | 14 +
.../model/database/ReferralUserInAServer.java | 44 +
.../referral/model/template/Referral.java | 15 +
.../model/template/ReferralPostModel.java | 16 +
.../template/ReferralTooRecentModel.java | 14 +
.../ReferralUserInAServerRepository.java | 12 +
.../referral/service/ReferralServiceBean.java | 77 +
.../ReferralUserManagementServiceBean.java | 38 +
.../migrations/1.3.11-referral/collection.xml | 11 +
.../referral-seedData/data.xml} | 2 +-
.../referral-seedData/feature.xml | 14 +
.../referral_user_in_server.xml | 35 +
.../referral-tables/tables.xml | 10 +
.../main/resources/migrations/dbchangelog.xsd | 0
.../migrations/referral-changeLog.xml | 10 +
.../src/main/resources/referral.properties | 8 +
.../{setups => setup}/pom.xml | 2 +-
.../setup/src/main/assembly/liquibase.xml | 18 +
.../setup/config/SetupBeanConfig.java} | 6 +-
.../setup/config/SetupFeatureConfig.java} | 12 +-
.../setup/config/SetupFeatureDefinition.java | 15 +
.../modules/setup/config/SetupPostTarget.java | 15 +
.../setup/config/SetupProperties.java} | 6 +-
.../setup/listener/SetupListener.java} | 50 +-
.../setup/service/SetupServiceBean.java} | 4 +-
.../migrations/1.3.11-setup}/collection.xml | 2 +-
.../1.3.11-setup/setup-seedData}/data.xml | 0
.../setup-seedData}/default_emote.xml | 4 +-
.../1.3.11-setup/setup-seedData}/feature.xml | 4 +-
.../main/resources/migrations/dbchangelog.xsd | 1386 +++++++++++++++++
.../resources/migrations/setup-changeLog.xml | 10 +
.../setup/src/main/resources/setup.properties | 6 +
.../config/SetupsFeatureDefinition.java | 15 -
.../setups/config/SetupsPostTarget.java | 15 -
.../src/main/resources/setups.properties | 6 -
deployment/image-packaging/pom.xml | 41 +-
.../deployment/config/artifact_versions.json | 7 +-
pom.xml | 4 +-
.../oneplus-bot-modules-templates/pom.xml | 3 +-
.../referral-templates/pom.xml | 38 +
.../src/main/assembly/assembly.xml | 0
...ner_no_referral_link_found_embed_en_US.ftl | 3 +
...rralListener_referral_post_embed_en_US.ftl | 17 +
...alListener_too_recent_post_embed_en_US.ftl | 5 +
.../pom.xml | 0
.../src/main/assembly/assembly.xml | 0
..._post_created_notification_embed_en_US.ftl | 0
..._post_deleted_notification_embed_en_US.ftl | 0
templates/translations/pom.xml | 3 +-
.../referral-translations/pom.xml | 39 +
.../src/main/assembly/assembly.xml | 15 +
.../en_US/config/feature_referral_en_US.ftl | 1 +
...eature_setup_posttarget_referral_en_US.ftl | 1 +
.../referral_link_type_accessories_en_US.ftl | 1 +
...ferral_link_type_smartphoneIndia_en_US.ftl | 1 +
.../referral_link_type_smartphone_en_US.ftl | 1 +
.../listener/no_referral_link_found_en_US.ftl | 1 +
...stener_referral_post_description_en_US.ftl | 1 +
.../too_recent_referral_post_en_US.ftl | 1 +
.../pom.xml | 4 +-
.../src/main/assembly/assembly.xml | 15 +
.../en_US/config/feature_setup_en_US.ftl | 1 +
.../feature_setup_posttarget_setup_en_US.ftl} | 0
.../en_US/config/feature_setups_en_US.ftl | 1 -
.../starboard-custom-translations/pom.xml | 2 +-
75 files changed, 2302 insertions(+), 98 deletions(-)
create mode 100644 application/oneplus-bot-modules/referral/pom.xml
rename application/oneplus-bot-modules/{setups => referral}/src/main/assembly/liquibase.xml (100%)
create mode 100644 application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/config/ReferralBeanConfig.java
create mode 100644 application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/config/ReferralFeature.java
create mode 100644 application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/config/ReferralFeatureDefinition.java
create mode 100644 application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/config/ReferralPostTarget.java
create mode 100644 application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/config/ReferralProperties.java
create mode 100644 application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/listener/ReferralListener.java
create mode 100644 application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/model/ReferralType.java
create mode 100644 application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/model/database/ReferralUserInAServer.java
create mode 100644 application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/model/template/Referral.java
create mode 100644 application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/model/template/ReferralPostModel.java
create mode 100644 application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/model/template/ReferralTooRecentModel.java
create mode 100644 application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/repository/ReferralUserInAServerRepository.java
create mode 100644 application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/service/ReferralServiceBean.java
create mode 100644 application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/service/management/ReferralUserManagementServiceBean.java
create mode 100644 application/oneplus-bot-modules/referral/src/main/resources/migrations/1.3.11-referral/collection.xml
rename application/oneplus-bot-modules/{setups/src/main/resources/migrations/setups-changeLog.xml => referral/src/main/resources/migrations/1.3.11-referral/referral-seedData/data.xml} (87%)
create mode 100644 application/oneplus-bot-modules/referral/src/main/resources/migrations/1.3.11-referral/referral-seedData/feature.xml
create mode 100644 application/oneplus-bot-modules/referral/src/main/resources/migrations/1.3.11-referral/referral-tables/referral_user_in_server.xml
create mode 100644 application/oneplus-bot-modules/referral/src/main/resources/migrations/1.3.11-referral/referral-tables/tables.xml
rename application/oneplus-bot-modules/{setups => referral}/src/main/resources/migrations/dbchangelog.xsd (100%)
create mode 100644 application/oneplus-bot-modules/referral/src/main/resources/migrations/referral-changeLog.xml
create mode 100644 application/oneplus-bot-modules/referral/src/main/resources/referral.properties
rename application/oneplus-bot-modules/{setups => setup}/pom.xml (97%)
create mode 100644 application/oneplus-bot-modules/setup/src/main/assembly/liquibase.xml
rename application/oneplus-bot-modules/{setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/config/SetupsBeanConfig.java => setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/config/SetupBeanConfig.java} (73%)
rename application/oneplus-bot-modules/{setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/config/SetupsFeature.java => setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/config/SetupFeatureConfig.java} (57%)
create mode 100644 application/oneplus-bot-modules/setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/config/SetupFeatureDefinition.java
create mode 100644 application/oneplus-bot-modules/setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/config/SetupPostTarget.java
rename application/oneplus-bot-modules/{setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/config/SetupsProperties.java => setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/config/SetupProperties.java} (51%)
rename application/oneplus-bot-modules/{setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/listener/SetupsListener.java => setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/listener/SetupListener.java} (62%)
rename application/oneplus-bot-modules/{setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/service/SetupsService.java => setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/service/SetupServiceBean.java} (92%)
rename application/oneplus-bot-modules/{setups/src/main/resources/migrations/1.3.11-setups => setup/src/main/resources/migrations/1.3.11-setup}/collection.xml (88%)
rename application/oneplus-bot-modules/{setups/src/main/resources/migrations/1.3.11-setups/setups-seedData => setup/src/main/resources/migrations/1.3.11-setup/setup-seedData}/data.xml (100%)
rename application/oneplus-bot-modules/{setups/src/main/resources/migrations/1.3.11-setups/setups-seedData => setup/src/main/resources/migrations/1.3.11-setup/setup-seedData}/default_emote.xml (85%)
rename application/oneplus-bot-modules/{setups/src/main/resources/migrations/1.3.11-setups/setups-seedData => setup/src/main/resources/migrations/1.3.11-setup/setup-seedData}/feature.xml (85%)
create mode 100644 application/oneplus-bot-modules/setup/src/main/resources/migrations/dbchangelog.xsd
create mode 100644 application/oneplus-bot-modules/setup/src/main/resources/migrations/setup-changeLog.xml
create mode 100644 application/oneplus-bot-modules/setup/src/main/resources/setup.properties
delete mode 100644 application/oneplus-bot-modules/setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/config/SetupsFeatureDefinition.java
delete mode 100644 application/oneplus-bot-modules/setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/config/SetupsPostTarget.java
delete mode 100644 application/oneplus-bot-modules/setups/src/main/resources/setups.properties
create mode 100644 templates/oneplus-bot-modules-templates/referral-templates/pom.xml
rename templates/oneplus-bot-modules-templates/{starboard-custom => referral-templates}/src/main/assembly/assembly.xml (100%)
create mode 100644 templates/oneplus-bot-modules-templates/referral-templates/src/main/resources/en_US/listener/referralListener/referralListener_no_referral_link_found_embed_en_US.ftl
create mode 100644 templates/oneplus-bot-modules-templates/referral-templates/src/main/resources/en_US/listener/referralListener/referralListener_referral_post_embed_en_US.ftl
create mode 100644 templates/oneplus-bot-modules-templates/referral-templates/src/main/resources/en_US/listener/referralListener/referralListener_too_recent_post_embed_en_US.ftl
rename templates/oneplus-bot-modules-templates/{starboard-custom => starboard-custom-templates}/pom.xml (100%)
rename templates/{translations/setups-translations => oneplus-bot-modules-templates/starboard-custom-templates}/src/main/assembly/assembly.xml (100%)
rename templates/oneplus-bot-modules-templates/{starboard-custom => starboard-custom-templates}/src/main/resources/en_US/listener/starboardNotification/starboard_post_created_notification_embed_en_US.ftl (100%)
rename templates/oneplus-bot-modules-templates/{starboard-custom => starboard-custom-templates}/src/main/resources/en_US/listener/starboardNotification/starboard_post_deleted_notification_embed_en_US.ftl (100%)
create mode 100644 templates/translations/referral-translations/pom.xml
create mode 100644 templates/translations/referral-translations/src/main/assembly/assembly.xml
create mode 100644 templates/translations/referral-translations/src/main/resources/en_US/config/feature_referral_en_US.ftl
create mode 100644 templates/translations/referral-translations/src/main/resources/en_US/config/feature_setup_posttarget_referral_en_US.ftl
create mode 100644 templates/translations/referral-translations/src/main/resources/en_US/config/referral_link_type_accessories_en_US.ftl
create mode 100644 templates/translations/referral-translations/src/main/resources/en_US/config/referral_link_type_smartphoneIndia_en_US.ftl
create mode 100644 templates/translations/referral-translations/src/main/resources/en_US/config/referral_link_type_smartphone_en_US.ftl
create mode 100644 templates/translations/referral-translations/src/main/resources/en_US/listener/no_referral_link_found_en_US.ftl
create mode 100644 templates/translations/referral-translations/src/main/resources/en_US/listener/referralListener_referral_post_description_en_US.ftl
create mode 100644 templates/translations/referral-translations/src/main/resources/en_US/listener/too_recent_referral_post_en_US.ftl
rename templates/translations/{setups-translations => setup-translations}/pom.xml (90%)
create mode 100644 templates/translations/setup-translations/src/main/assembly/assembly.xml
create mode 100644 templates/translations/setup-translations/src/main/resources/en_US/config/feature_setup_en_US.ftl
rename templates/translations/{setups-translations/src/main/resources/en_US/config/feature_setup_posttarget_setups_en_US.ftl => setup-translations/src/main/resources/en_US/config/feature_setup_posttarget_setup_en_US.ftl} (100%)
delete mode 100644 templates/translations/setups-translations/src/main/resources/en_US/config/feature_setups_en_US.ftl
diff --git a/application/executable/pom.xml b/application/executable/pom.xml
index ab3f453..8135a63 100644
--- a/application/executable/pom.xml
+++ b/application/executable/pom.xml
@@ -124,7 +124,13 @@
dev.sheldan.oneplus.bot.application.modules
- setups
+ setup
+ ${project.version}
+
+
+
+ dev.sheldan.oneplus.bot.application.modules
+ referral
${project.version}
diff --git a/application/oneplus-bot-modules/pom.xml b/application/oneplus-bot-modules/pom.xml
index ec2833f..c2e12eb 100644
--- a/application/oneplus-bot-modules/pom.xml
+++ b/application/oneplus-bot-modules/pom.xml
@@ -12,7 +12,8 @@
pom
news
- setups
+ setup
+ referral
diff --git a/application/oneplus-bot-modules/referral/pom.xml b/application/oneplus-bot-modules/referral/pom.xml
new file mode 100644
index 0000000..575257c
--- /dev/null
+++ b/application/oneplus-bot-modules/referral/pom.xml
@@ -0,0 +1,41 @@
+
+
+
+ dev.sheldan.oneplus.bot.application.modules
+ oneplus-bot-modules
+ 1.3.11-SNAPSHOT
+
+ 4.0.0
+
+ referral
+
+
+ 8
+ 8
+
+
+
+
+
+ maven-assembly-plugin
+
+
+ src/main/assembly/liquibase.xml
+
+
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/application/oneplus-bot-modules/setups/src/main/assembly/liquibase.xml b/application/oneplus-bot-modules/referral/src/main/assembly/liquibase.xml
similarity index 100%
rename from application/oneplus-bot-modules/setups/src/main/assembly/liquibase.xml
rename to application/oneplus-bot-modules/referral/src/main/assembly/liquibase.xml
diff --git a/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/config/ReferralBeanConfig.java b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/config/ReferralBeanConfig.java
new file mode 100644
index 0000000..53c1d38
--- /dev/null
+++ b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/config/ReferralBeanConfig.java
@@ -0,0 +1,15 @@
+package dev.sheldan.oneplus.bot.modules.referral.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+
+@Configuration
+public class ReferralBeanConfig {
+ @Bean(value = "referralDelayExecutor")
+ public ScheduledExecutorService getDelayedExecutor() {
+ return Executors.newSingleThreadScheduledExecutor();
+ }
+}
diff --git a/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/config/ReferralFeature.java b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/config/ReferralFeature.java
new file mode 100644
index 0000000..98b420d
--- /dev/null
+++ b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/config/ReferralFeature.java
@@ -0,0 +1,24 @@
+package dev.sheldan.oneplus.bot.modules.referral.config;
+
+import dev.sheldan.abstracto.core.config.FeatureConfig;
+import dev.sheldan.abstracto.core.config.FeatureDefinition;
+import dev.sheldan.abstracto.core.config.PostTargetEnum;
+import org.springframework.stereotype.Component;
+
+import java.util.Arrays;
+import java.util.List;
+
+@Component
+public class ReferralFeature implements FeatureConfig {
+
+ @Override
+ public FeatureDefinition getFeature() {
+ return ReferralFeatureDefinition.REFERRAL;
+ }
+
+ @Override
+ public List getRequiredPostTargets() {
+ return Arrays.asList(ReferralPostTarget.REFERRAL);
+ }
+
+}
diff --git a/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/config/ReferralFeatureDefinition.java b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/config/ReferralFeatureDefinition.java
new file mode 100644
index 0000000..0761b7e
--- /dev/null
+++ b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/config/ReferralFeatureDefinition.java
@@ -0,0 +1,15 @@
+package dev.sheldan.oneplus.bot.modules.referral.config;
+
+import dev.sheldan.abstracto.core.config.FeatureDefinition;
+import lombok.Getter;
+
+@Getter
+public enum ReferralFeatureDefinition implements FeatureDefinition {
+ REFERRAL("referral");
+
+ private String key;
+
+ ReferralFeatureDefinition(String key) {
+ this.key = key;
+ }
+}
\ No newline at end of file
diff --git a/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/config/ReferralPostTarget.java b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/config/ReferralPostTarget.java
new file mode 100644
index 0000000..fe16f5d
--- /dev/null
+++ b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/config/ReferralPostTarget.java
@@ -0,0 +1,15 @@
+package dev.sheldan.oneplus.bot.modules.referral.config;
+
+import dev.sheldan.abstracto.core.config.PostTargetEnum;
+import lombok.Getter;
+
+@Getter
+public enum ReferralPostTarget implements PostTargetEnum {
+ REFERRAL("referral");
+
+ private String key;
+
+ ReferralPostTarget(String key) {
+ this.key = key;
+ }
+}
diff --git a/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/config/ReferralProperties.java b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/config/ReferralProperties.java
new file mode 100644
index 0000000..018ba83
--- /dev/null
+++ b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/config/ReferralProperties.java
@@ -0,0 +1,10 @@
+package dev.sheldan.oneplus.bot.modules.referral.config;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.PropertySource;
+
+@Configuration
+@PropertySource("classpath:referral.properties")
+public class ReferralProperties {
+
+}
diff --git a/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/listener/ReferralListener.java b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/listener/ReferralListener.java
new file mode 100644
index 0000000..fb113b8
--- /dev/null
+++ b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/listener/ReferralListener.java
@@ -0,0 +1,167 @@
+package dev.sheldan.oneplus.bot.modules.referral.listener;
+
+import dev.sheldan.abstracto.core.config.FeatureDefinition;
+import dev.sheldan.abstracto.core.listener.DefaultListenerResult;
+import dev.sheldan.abstracto.core.listener.async.jda.AsyncMessageReceivedListener;
+import dev.sheldan.abstracto.core.models.ServerUser;
+import dev.sheldan.abstracto.core.models.database.PostTarget;
+import dev.sheldan.abstracto.core.models.listener.MessageReceivedModel;
+import dev.sheldan.abstracto.core.service.ChannelService;
+import dev.sheldan.abstracto.core.service.MessageService;
+import dev.sheldan.abstracto.core.service.management.PostTargetManagement;
+import dev.sheldan.abstracto.core.utils.CompletableFutureList;
+import dev.sheldan.oneplus.bot.modules.referral.config.ReferralFeatureDefinition;
+import dev.sheldan.oneplus.bot.modules.referral.config.ReferralPostTarget;
+import dev.sheldan.oneplus.bot.modules.referral.model.template.Referral;
+import dev.sheldan.oneplus.bot.modules.referral.model.template.ReferralPostModel;
+import dev.sheldan.oneplus.bot.modules.referral.model.template.ReferralTooRecentModel;
+import dev.sheldan.oneplus.bot.modules.referral.service.ReferralServiceBean;
+import lombok.extern.slf4j.Slf4j;
+import net.dv8tion.jda.api.entities.Message;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.Instant;
+import java.util.List;
+import java.util.Optional;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+import java.util.function.Function;
+
+@Component
+@Slf4j
+public class ReferralListener implements AsyncMessageReceivedListener {
+
+ @Autowired
+ private PostTargetManagement postTargetManagement;
+
+ @Autowired
+ private MessageService messageService;
+
+ @Autowired
+ private ReferralServiceBean referralServiceBean;
+
+ @Autowired
+ private ChannelService channelService;
+
+ @Autowired
+ private ReferralListener self;
+
+ @Qualifier("referralDelayExecutor")
+ @Autowired
+ private ScheduledExecutorService scheduledExecutorService;
+
+ @Value("${oneplus.bot.referral.deleteDelaySeconds}")
+ private Long deleteDelaySeconds;
+
+ @Value("${oneplus.bot.referral.maxReferralCount}")
+ private Long maxReferralLinksPerPost;
+
+ private static final String NO_REFERRAL_LINK_FOUND_TEMPLATE_KEY = "referralListener_no_referral_link_found";
+ private static final String REFERRAL_POST_TOO_RECENT_TEMPLATE_KEY = "referralListener_too_recent_post";
+ private static final String REFERRAL_POST_EMBED_TEMPLATE_KEY = "referralListener_referral_post";
+
+ @Override
+ public DefaultListenerResult execute(MessageReceivedModel model) {
+ Long serverId = model.getServerId();
+ Optional referralPostTargetOptional = postTargetManagement.getPostTargetOptional(ReferralPostTarget.REFERRAL, serverId);
+ if(referralPostTargetOptional.isPresent()) {
+ PostTarget referralTarget = referralPostTargetOptional.get();
+ Message message = model.getMessage();
+ if (message.getChannel().getIdLong() == referralTarget.getChannelReference().getId()) {
+ Long authorId = message.getAuthor().getIdLong();
+ if (!message.isFromGuild() || message.isWebhookMessage() || message.getType().isSystem()) {
+ log.info("Deleting illegal message by user {} in referral channel in server {}.", authorId, serverId);
+ messageService.deleteMessage(message).exceptionally(deletionErrorConsumer(message));
+ return DefaultListenerResult.IGNORED;
+ }
+ if(message.getAuthor().isBot()) {
+ log.debug("Ignoring message from a bot user {} in referral channel in server {}.", authorId, serverId);
+ return DefaultListenerResult.IGNORED;
+ }
+ List foundReferrals = referralServiceBean.getReferralsFromMessage(message);
+ if(foundReferrals.isEmpty()) {
+ log.info("Did not find referrals in message {} by user {} in server {} - deleting message.",
+ message.getIdLong(), authorId, serverId);
+ deleteAndNotify(message, NO_REFERRAL_LINK_FOUND_TEMPLATE_KEY, new Object());
+ return DefaultListenerResult.IGNORED;
+ }
+
+ log.info("Found {} referral links in message {} by user {} in server {}.",
+ foundReferrals.size(), message.getIdLong(), authorId, serverId);
+
+ Instant nextReferralDate = referralServiceBean.getNextReferralDate(message.getMember());
+ if(nextReferralDate.isAfter(Instant.now())) {
+ log.info("Referrals in message {} by user {} in server {} was before allowed repost date {} - deleting message.",
+ message.getIdLong(), authorId, serverId, nextReferralDate);
+ ReferralTooRecentModel templateModel = ReferralTooRecentModel
+ .builder()
+ .nextReferralDate(nextReferralDate)
+ .build();
+ deleteAndNotify(message, REFERRAL_POST_TOO_RECENT_TEMPLATE_KEY, templateModel);
+ return DefaultListenerResult.PROCESSED;
+ }
+
+ if(foundReferrals.size() > maxReferralLinksPerPost) {
+ log.info("More referral links ({}) than allowed ({}) in message {} in server {} by user {}.",
+ foundReferrals.size(), maxReferralLinksPerPost, message.getIdLong(), serverId, authorId);
+ foundReferrals = foundReferrals.subList(0, maxReferralLinksPerPost.intValue());
+ }
+
+ ReferralPostModel postModel = ReferralPostModel
+ .builder()
+ .referrals(foundReferrals)
+ .postingMember(message.getMember())
+ .build();
+ ServerUser serverUser = ServerUser.fromMember(message.getMember());
+ CompletableFutureList sendFutures = new CompletableFutureList<>(channelService
+ .sendEmbedTemplateInMessageChannelList(REFERRAL_POST_EMBED_TEMPLATE_KEY, postModel, message.getChannel()));
+ CompletableFuture deletionFuture = messageService.deleteMessage(message);
+ CompletableFuture.allOf(sendFutures.getMainFuture(), deletionFuture)
+ .thenAccept(unused -> self.updateReferralStateInDatabase(serverUser))
+ .exceptionally(throwable -> {
+ log.error("Failed to delete or persist referral message from user {} in server {}.", authorId, serverId, throwable);
+ return null;
+ });
+ }
+ }
+ return DefaultListenerResult.IGNORED;
+ }
+
+ @Transactional
+ public void updateReferralStateInDatabase(ServerUser serverUser) {
+ referralServiceBean.updateDbState(serverUser);
+ }
+
+ private void deleteAndNotify(Message message, String usedTemplate, Object usedModel) {
+ CompletableFutureList futures = new CompletableFutureList<>(channelService
+ .sendEmbedTemplateInMessageChannelList(usedTemplate, usedModel, message.getChannel()));
+ futures.getMainFuture().thenAccept(unused ->
+ scheduledExecutorService.schedule(() ->
+ futures.getObjects().forEach(createdMessage -> messageService.deleteMessage(createdMessage)),
+ deleteDelaySeconds, TimeUnit.SECONDS));
+ futures.getMainFuture().exceptionally(throwable -> {
+ log.error("Failed to send denial about setups with template {} message {} in channel {} in server {} by {}.",
+ usedTemplate, message.getIdLong(), message.getChannel().getIdLong(), message.getGuild().getIdLong(), message.getAuthor().getIdLong());
+ return null;
+ });
+ messageService.deleteMessage(message).exceptionally(deletionErrorConsumer(message));
+ }
+
+ private Function deletionErrorConsumer(Message message) {
+ return throwable -> {
+ log.error("Failed to delete setups message {} in channel {} in server {} by {}.",
+ message.getIdLong(), message.getChannel().getIdLong(), message.getGuild().getIdLong(), message.getAuthor().getIdLong());
+ return null;
+ };
+ }
+
+ @Override
+ public FeatureDefinition getFeature() {
+ return ReferralFeatureDefinition.REFERRAL;
+ }
+}
diff --git a/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/model/ReferralType.java b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/model/ReferralType.java
new file mode 100644
index 0000000..66df4a0
--- /dev/null
+++ b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/model/ReferralType.java
@@ -0,0 +1,14 @@
+package dev.sheldan.oneplus.bot.modules.referral.model;
+
+import lombok.Getter;
+
+@Getter
+public enum ReferralType {
+ SMARTPHONE("smartphone"), ACCESSORIES("accessories"), SMARTPHONE_INDIA("smartphoneIndia");
+
+ private String key;
+
+ ReferralType(String key) {
+ this.key = key;
+ }
+}
diff --git a/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/model/database/ReferralUserInAServer.java b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/model/database/ReferralUserInAServer.java
new file mode 100644
index 0000000..af24f99
--- /dev/null
+++ b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/model/database/ReferralUserInAServer.java
@@ -0,0 +1,44 @@
+package dev.sheldan.oneplus.bot.modules.referral.model.database;
+
+import dev.sheldan.abstracto.core.models.database.AServer;
+import dev.sheldan.abstracto.core.models.database.AUserInAServer;
+import lombok.*;
+
+import javax.persistence.*;
+import java.time.Instant;
+
+@Builder
+@Entity
+@NoArgsConstructor
+@AllArgsConstructor
+@Table(name = "referral_user_in_server")
+@Getter
+@Setter
+@EqualsAndHashCode
+public class ReferralUserInAServer {
+
+ @Id
+ @Column(name = "id")
+ private Long id;
+
+ /**
+ * The {@link AUserInAServer user} which is represented by this object
+ */
+ @OneToOne(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE})
+ @PrimaryKeyJoinColumn
+ private AUserInAServer user;
+
+ @ManyToOne(fetch = FetchType.LAZY)
+ @JoinColumn(name = "server_id", nullable = false)
+ private AServer server;
+
+ @Column(name = "last_referral_post")
+ private Instant lastReferralPost;
+
+ @Column(name = "created")
+ private Instant created;
+
+ @Column(name = "updated")
+ private Instant updated;
+
+}
diff --git a/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/model/template/Referral.java b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/model/template/Referral.java
new file mode 100644
index 0000000..f49957e
--- /dev/null
+++ b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/model/template/Referral.java
@@ -0,0 +1,15 @@
+package dev.sheldan.oneplus.bot.modules.referral.model.template;
+
+import dev.sheldan.oneplus.bot.modules.referral.model.ReferralType;
+import lombok.Builder;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@Builder
+public class Referral {
+ private String referralLink;
+ private String referralIdentifier;
+ private ReferralType type;
+}
diff --git a/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/model/template/ReferralPostModel.java b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/model/template/ReferralPostModel.java
new file mode 100644
index 0000000..f5f18dd
--- /dev/null
+++ b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/model/template/ReferralPostModel.java
@@ -0,0 +1,16 @@
+package dev.sheldan.oneplus.bot.modules.referral.model.template;
+
+import lombok.Builder;
+import lombok.Getter;
+import lombok.Setter;
+import net.dv8tion.jda.api.entities.Member;
+
+import java.util.List;
+
+@Getter
+@Setter
+@Builder
+public class ReferralPostModel {
+ private Member postingMember;
+ private List referrals;
+}
diff --git a/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/model/template/ReferralTooRecentModel.java b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/model/template/ReferralTooRecentModel.java
new file mode 100644
index 0000000..654e0d4
--- /dev/null
+++ b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/model/template/ReferralTooRecentModel.java
@@ -0,0 +1,14 @@
+package dev.sheldan.oneplus.bot.modules.referral.model.template;
+
+import lombok.Builder;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.time.Instant;
+
+@Getter
+@Setter
+@Builder
+public class ReferralTooRecentModel {
+ private Instant nextReferralDate;
+}
diff --git a/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/repository/ReferralUserInAServerRepository.java b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/repository/ReferralUserInAServerRepository.java
new file mode 100644
index 0000000..4e4a490
--- /dev/null
+++ b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/repository/ReferralUserInAServerRepository.java
@@ -0,0 +1,12 @@
+package dev.sheldan.oneplus.bot.modules.referral.repository;
+
+import dev.sheldan.oneplus.bot.modules.referral.model.database.ReferralUserInAServer;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+import java.util.Optional;
+
+@Repository
+public interface ReferralUserInAServerRepository extends JpaRepository {
+ Optional findByServer_IdAndUser_UserReference_Id(Long serverId, Long userId);
+}
diff --git a/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/service/ReferralServiceBean.java b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/service/ReferralServiceBean.java
new file mode 100644
index 0000000..1dbc4ff
--- /dev/null
+++ b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/service/ReferralServiceBean.java
@@ -0,0 +1,77 @@
+package dev.sheldan.oneplus.bot.modules.referral.service;
+
+import dev.sheldan.abstracto.core.models.ServerUser;
+import dev.sheldan.oneplus.bot.modules.referral.model.ReferralType;
+import dev.sheldan.oneplus.bot.modules.referral.model.database.ReferralUserInAServer;
+import dev.sheldan.oneplus.bot.modules.referral.model.template.Referral;
+import dev.sheldan.oneplus.bot.modules.referral.service.management.ReferralUserManagementServiceBean;
+import net.dv8tion.jda.api.entities.Member;
+import net.dv8tion.jda.api.entities.Message;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.time.Instant;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+@Component
+public class ReferralServiceBean {
+
+ @Value("${oneplus.bot.referral.referralRepostDays}")
+ private Long repostDurationDays;
+
+ @Autowired
+ private ReferralUserManagementServiceBean referralUserManagementServiceBean;
+
+ private final Pattern referralPattern = Pattern.compile("(?https?://(?:www\\.)?oneplus\\.(?:[a-z]{1,63})[^\\s]*invite(?:#(?[^\\s]+)|.+=([^\\s&]+)))");
+
+ public List getReferralsFromMessage(Message message) {
+ List referrals = new ArrayList<>();
+ Matcher matcher = referralPattern.matcher(message.getContentRaw());
+ while(matcher.find()) {
+ String fullUrl = matcher.group("whole");
+ String referralIdentifier = matcher.group("identifier");
+ Referral referral = Referral
+ .builder()
+ .referralLink(fullUrl)
+ .type(getType(referralIdentifier, fullUrl))
+ .referralIdentifier(referralIdentifier)
+ .build();
+ referrals.add(referral);
+ }
+ return referrals;
+ }
+
+ private ReferralType getType(String identifier, String fullUrl) {
+ if(identifier.length() < 20) {
+ return ReferralType.SMARTPHONE;
+ } else if(fullUrl.contains(".in")) {
+ return ReferralType.SMARTPHONE_INDIA;
+ } else {
+ return ReferralType.ACCESSORIES;
+ }
+ }
+
+ public void updateDbState(ServerUser serverUser) {
+ Optional userOptional = referralUserManagementServiceBean.getReferralFromDb(serverUser);
+ if(userOptional.isPresent()) {
+ userOptional.get().setLastReferralPost(Instant.now());
+ } else {
+ referralUserManagementServiceBean.createReferralUser(serverUser);
+ }
+ }
+
+ public Instant getNextReferralDate(Member member) {
+ ServerUser serverUser = ServerUser.fromMember(member);
+ Optional userOptional = referralUserManagementServiceBean.getReferralFromDb(serverUser);
+ return userOptional.map(referralUserInAServer -> referralUserInAServer
+ .getLastReferralPost()
+ .plus(repostDurationDays, ChronoUnit.DAYS))
+ .orElse(Instant.now());
+ }
+}
diff --git a/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/service/management/ReferralUserManagementServiceBean.java b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/service/management/ReferralUserManagementServiceBean.java
new file mode 100644
index 0000000..cf30b1c
--- /dev/null
+++ b/application/oneplus-bot-modules/referral/src/main/java/dev/sheldan/oneplus/bot/modules/referral/service/management/ReferralUserManagementServiceBean.java
@@ -0,0 +1,38 @@
+package dev.sheldan.oneplus.bot.modules.referral.service.management;
+
+import dev.sheldan.abstracto.core.models.ServerUser;
+import dev.sheldan.abstracto.core.models.database.AUserInAServer;
+import dev.sheldan.abstracto.core.service.management.UserInServerManagementService;
+import dev.sheldan.oneplus.bot.modules.referral.model.database.ReferralUserInAServer;
+import dev.sheldan.oneplus.bot.modules.referral.repository.ReferralUserInAServerRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.time.Instant;
+import java.util.Optional;
+
+@Component
+public class ReferralUserManagementServiceBean {
+
+ @Autowired
+ private ReferralUserInAServerRepository repository;
+
+ @Autowired
+ private UserInServerManagementService userInServerManagementService;
+
+ public Optional getReferralFromDb(ServerUser serverUser) {
+ return repository.findByServer_IdAndUser_UserReference_Id(serverUser.getServerId(), serverUser.getUserId());
+ }
+
+ public ReferralUserInAServer createReferralUser(ServerUser serverUser) {
+ AUserInAServer userInAServer = userInServerManagementService.loadOrCreateUser(serverUser);
+ ReferralUserInAServer user = ReferralUserInAServer
+ .builder()
+ .user(userInAServer)
+ .id(userInAServer.getUserInServerId())
+ .lastReferralPost(Instant.now())
+ .server(userInAServer.getServerReference())
+ .build();
+ return repository.save(user);
+ }
+}
diff --git a/application/oneplus-bot-modules/referral/src/main/resources/migrations/1.3.11-referral/collection.xml b/application/oneplus-bot-modules/referral/src/main/resources/migrations/1.3.11-referral/collection.xml
new file mode 100644
index 0000000..d0415fc
--- /dev/null
+++ b/application/oneplus-bot-modules/referral/src/main/resources/migrations/1.3.11-referral/collection.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/application/oneplus-bot-modules/setups/src/main/resources/migrations/setups-changeLog.xml b/application/oneplus-bot-modules/referral/src/main/resources/migrations/1.3.11-referral/referral-seedData/data.xml
similarity index 87%
rename from application/oneplus-bot-modules/setups/src/main/resources/migrations/setups-changeLog.xml
rename to application/oneplus-bot-modules/referral/src/main/resources/migrations/1.3.11-referral/referral-seedData/data.xml
index 256d4dc..c3e39a0 100644
--- a/application/oneplus-bot-modules/setups/src/main/resources/migrations/setups-changeLog.xml
+++ b/application/oneplus-bot-modules/referral/src/main/resources/migrations/1.3.11-referral/referral-seedData/data.xml
@@ -6,5 +6,5 @@
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog dbchangelog.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext dbchangelog.xsd
http://www.liquibase.org/xml/ns/pro dbchangelog.xsd" >
-
+
\ No newline at end of file
diff --git a/application/oneplus-bot-modules/referral/src/main/resources/migrations/1.3.11-referral/referral-seedData/feature.xml b/application/oneplus-bot-modules/referral/src/main/resources/migrations/1.3.11-referral/referral-seedData/feature.xml
new file mode 100644
index 0000000..02b7077
--- /dev/null
+++ b/application/oneplus-bot-modules/referral/src/main/resources/migrations/1.3.11-referral/referral-seedData/feature.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/application/oneplus-bot-modules/referral/src/main/resources/migrations/1.3.11-referral/referral-tables/referral_user_in_server.xml b/application/oneplus-bot-modules/referral/src/main/resources/migrations/1.3.11-referral/referral-tables/referral_user_in_server.xml
new file mode 100644
index 0000000..fe118b0
--- /dev/null
+++ b/application/oneplus-bot-modules/referral/src/main/resources/migrations/1.3.11-referral/referral-tables/referral_user_in_server.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DROP TRIGGER IF EXISTS referral_user_in_server_update_trigger ON referral_user_in_server;
+ CREATE TRIGGER referral_user_in_server_update_trigger BEFORE UPDATE ON referral_user_in_server FOR EACH ROW EXECUTE PROCEDURE update_trigger_procedure();
+
+
+ DROP TRIGGER IF EXISTS referral_user_in_server_insert_trigger ON referral_user_in_server;
+ CREATE TRIGGER referral_user_in_server_insert_trigger BEFORE INSERT ON referral_user_in_server FOR EACH ROW EXECUTE PROCEDURE insert_trigger_procedure();
+
+
+
+
\ No newline at end of file
diff --git a/application/oneplus-bot-modules/referral/src/main/resources/migrations/1.3.11-referral/referral-tables/tables.xml b/application/oneplus-bot-modules/referral/src/main/resources/migrations/1.3.11-referral/referral-tables/tables.xml
new file mode 100644
index 0000000..f240e6f
--- /dev/null
+++ b/application/oneplus-bot-modules/referral/src/main/resources/migrations/1.3.11-referral/referral-tables/tables.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/application/oneplus-bot-modules/setups/src/main/resources/migrations/dbchangelog.xsd b/application/oneplus-bot-modules/referral/src/main/resources/migrations/dbchangelog.xsd
similarity index 100%
rename from application/oneplus-bot-modules/setups/src/main/resources/migrations/dbchangelog.xsd
rename to application/oneplus-bot-modules/referral/src/main/resources/migrations/dbchangelog.xsd
diff --git a/application/oneplus-bot-modules/referral/src/main/resources/migrations/referral-changeLog.xml b/application/oneplus-bot-modules/referral/src/main/resources/migrations/referral-changeLog.xml
new file mode 100644
index 0000000..9e0313c
--- /dev/null
+++ b/application/oneplus-bot-modules/referral/src/main/resources/migrations/referral-changeLog.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/application/oneplus-bot-modules/referral/src/main/resources/referral.properties b/application/oneplus-bot-modules/referral/src/main/resources/referral.properties
new file mode 100644
index 0000000..6a89710
--- /dev/null
+++ b/application/oneplus-bot-modules/referral/src/main/resources/referral.properties
@@ -0,0 +1,8 @@
+abstracto.postTargets.referral.name=referral
+
+abstracto.featureFlags.referral.featureName=referral
+abstracto.featureFlags.referral.enabled=false
+
+oneplus.bot.referral.maxReferralCount=2
+oneplus.bot.referral.deleteDelaySeconds=7
+oneplus.bot.referral.referralRepostDays=14
\ No newline at end of file
diff --git a/application/oneplus-bot-modules/setups/pom.xml b/application/oneplus-bot-modules/setup/pom.xml
similarity index 97%
rename from application/oneplus-bot-modules/setups/pom.xml
rename to application/oneplus-bot-modules/setup/pom.xml
index f2167f2..182d861 100644
--- a/application/oneplus-bot-modules/setups/pom.xml
+++ b/application/oneplus-bot-modules/setup/pom.xml
@@ -9,7 +9,7 @@
4.0.0
- setups
+ setup
diff --git a/application/oneplus-bot-modules/setup/src/main/assembly/liquibase.xml b/application/oneplus-bot-modules/setup/src/main/assembly/liquibase.xml
new file mode 100644
index 0000000..8b4774f
--- /dev/null
+++ b/application/oneplus-bot-modules/setup/src/main/assembly/liquibase.xml
@@ -0,0 +1,18 @@
+
+ liquibase
+
+ zip
+
+ false
+
+
+ .
+ ${project.basedir}/src/main/resources/migrations
+
+ **/*
+
+
+
+
\ No newline at end of file
diff --git a/application/oneplus-bot-modules/setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/config/SetupsBeanConfig.java b/application/oneplus-bot-modules/setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/config/SetupBeanConfig.java
similarity index 73%
rename from application/oneplus-bot-modules/setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/config/SetupsBeanConfig.java
rename to application/oneplus-bot-modules/setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/config/SetupBeanConfig.java
index 51f3572..5c45b24 100644
--- a/application/oneplus-bot-modules/setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/config/SetupsBeanConfig.java
+++ b/application/oneplus-bot-modules/setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/config/SetupBeanConfig.java
@@ -1,4 +1,4 @@
-package dev.sheldan.oneplus.bot.modules.setups.config;
+package dev.sheldan.oneplus.bot.modules.setup.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -7,8 +7,8 @@ import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
@Configuration
-public class SetupsBeanConfig {
- @Bean(value = "setupsDelayedExecutor")
+public class SetupBeanConfig {
+ @Bean(value = "setupDelayedExecutor")
public ScheduledExecutorService getDelayedExecutor() {
return Executors.newSingleThreadScheduledExecutor();
}
diff --git a/application/oneplus-bot-modules/setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/config/SetupsFeature.java b/application/oneplus-bot-modules/setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/config/SetupFeatureConfig.java
similarity index 57%
rename from application/oneplus-bot-modules/setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/config/SetupsFeature.java
rename to application/oneplus-bot-modules/setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/config/SetupFeatureConfig.java
index 0ce8eb6..14ef4a3 100644
--- a/application/oneplus-bot-modules/setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/config/SetupsFeature.java
+++ b/application/oneplus-bot-modules/setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/config/SetupFeatureConfig.java
@@ -1,4 +1,4 @@
-package dev.sheldan.oneplus.bot.modules.setups.config;
+package dev.sheldan.oneplus.bot.modules.setup.config;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
@@ -8,23 +8,23 @@ import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.List;
-import static dev.sheldan.oneplus.bot.modules.setups.listener.SetupsListener.SETUPS_UPVOTE_EMOTE_KEY;
+import static dev.sheldan.oneplus.bot.modules.setup.listener.SetupListener.SETUP_UPVOTE_EMOTE_KEY;
@Component
-public class SetupsFeature implements FeatureConfig {
+public class SetupFeatureConfig implements FeatureConfig {
@Override
public FeatureDefinition getFeature() {
- return SetupsFeatureDefinition.SETUPS;
+ return SetupFeatureDefinition.SETUP;
}
@Override
public List getRequiredPostTargets() {
- return Arrays.asList(SetupsPostTarget.SETUPS);
+ return Arrays.asList(SetupPostTarget.SETUP);
}
@Override
public List getRequiredEmotes() {
- return Arrays.asList(SETUPS_UPVOTE_EMOTE_KEY);
+ return Arrays.asList(SETUP_UPVOTE_EMOTE_KEY);
}
}
diff --git a/application/oneplus-bot-modules/setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/config/SetupFeatureDefinition.java b/application/oneplus-bot-modules/setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/config/SetupFeatureDefinition.java
new file mode 100644
index 0000000..6eb3606
--- /dev/null
+++ b/application/oneplus-bot-modules/setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/config/SetupFeatureDefinition.java
@@ -0,0 +1,15 @@
+package dev.sheldan.oneplus.bot.modules.setup.config;
+
+import dev.sheldan.abstracto.core.config.FeatureDefinition;
+import lombok.Getter;
+
+@Getter
+public enum SetupFeatureDefinition implements FeatureDefinition {
+ SETUP("setup");
+
+ private String key;
+
+ SetupFeatureDefinition(String key) {
+ this.key = key;
+ }
+}
\ No newline at end of file
diff --git a/application/oneplus-bot-modules/setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/config/SetupPostTarget.java b/application/oneplus-bot-modules/setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/config/SetupPostTarget.java
new file mode 100644
index 0000000..e120ebc
--- /dev/null
+++ b/application/oneplus-bot-modules/setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/config/SetupPostTarget.java
@@ -0,0 +1,15 @@
+package dev.sheldan.oneplus.bot.modules.setup.config;
+
+import dev.sheldan.abstracto.core.config.PostTargetEnum;
+import lombok.Getter;
+
+@Getter
+public enum SetupPostTarget implements PostTargetEnum {
+ SETUP("setup");
+
+ private String key;
+
+ SetupPostTarget(String key) {
+ this.key = key;
+ }
+}
diff --git a/application/oneplus-bot-modules/setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/config/SetupsProperties.java b/application/oneplus-bot-modules/setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/config/SetupProperties.java
similarity index 51%
rename from application/oneplus-bot-modules/setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/config/SetupsProperties.java
rename to application/oneplus-bot-modules/setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/config/SetupProperties.java
index d12bb09..0864bfd 100644
--- a/application/oneplus-bot-modules/setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/config/SetupsProperties.java
+++ b/application/oneplus-bot-modules/setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/config/SetupProperties.java
@@ -1,10 +1,10 @@
-package dev.sheldan.oneplus.bot.modules.setups.config;
+package dev.sheldan.oneplus.bot.modules.setup.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
@Configuration
-@PropertySource("classpath:setups.properties")
-public class SetupsProperties {
+@PropertySource("classpath:setup.properties")
+public class SetupProperties {
}
diff --git a/application/oneplus-bot-modules/setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/listener/SetupsListener.java b/application/oneplus-bot-modules/setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/listener/SetupListener.java
similarity index 62%
rename from application/oneplus-bot-modules/setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/listener/SetupsListener.java
rename to application/oneplus-bot-modules/setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/listener/SetupListener.java
index ee94d9f..aa90ed9 100644
--- a/application/oneplus-bot-modules/setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/listener/SetupsListener.java
+++ b/application/oneplus-bot-modules/setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/listener/SetupListener.java
@@ -1,4 +1,4 @@
-package dev.sheldan.oneplus.bot.modules.setups.listener;
+package dev.sheldan.oneplus.bot.modules.setup.listener;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.listener.DefaultListenerResult;
@@ -8,9 +8,9 @@ import dev.sheldan.abstracto.core.models.listener.MessageReceivedModel;
import dev.sheldan.abstracto.core.service.MessageService;
import dev.sheldan.abstracto.core.service.ReactionService;
import dev.sheldan.abstracto.core.service.management.PostTargetManagement;
-import dev.sheldan.oneplus.bot.modules.setups.config.SetupsFeatureDefinition;
-import dev.sheldan.oneplus.bot.modules.setups.config.SetupsPostTarget;
-import dev.sheldan.oneplus.bot.modules.setups.service.SetupsService;
+import dev.sheldan.oneplus.bot.modules.setup.config.SetupFeatureDefinition;
+import dev.sheldan.oneplus.bot.modules.setup.config.SetupPostTarget;
+import dev.sheldan.oneplus.bot.modules.setup.service.SetupServiceBean;
import lombok.extern.slf4j.Slf4j;
import net.dv8tion.jda.api.entities.Message;
import org.springframework.beans.factory.annotation.Autowired;
@@ -24,19 +24,19 @@ import java.util.concurrent.TimeUnit;
@Component
@Slf4j
-public class SetupsListener implements AsyncMessageReceivedListener {
+public class SetupListener implements AsyncMessageReceivedListener {
@Autowired
private PostTargetManagement postTargetManagement;
@Autowired
- private SetupsService setupsService;
+ private SetupServiceBean setupServiceBean;
- @Qualifier("setupsDelayedExecutor")
+ @Qualifier("setupDelayedExecutor")
@Autowired
private ScheduledExecutorService scheduledExecutorService;
- @Value("${abstracto.setups.deletionDelaySeconds}")
+ @Value("${oneplus.bot.setup.deletionDelaySeconds}")
private Long deletionDelay;
@Autowired
@@ -45,43 +45,47 @@ public class SetupsListener implements AsyncMessageReceivedListener {
@Autowired
private ReactionService reactionService;
- public static final String SETUPS_UPVOTE_EMOTE_KEY = "setupsUpvote";
+ public static final String SETUP_UPVOTE_EMOTE_KEY = "setupUpvote";
@Override
public DefaultListenerResult execute(MessageReceivedModel model) {
- Optional setupsPostTargetOptional = postTargetManagement.getPostTargetOptional(SetupsPostTarget.SETUPS, model.getServerId());
- if(setupsPostTargetOptional.isPresent()) {
- PostTarget setupsTarget = setupsPostTargetOptional.get();
+ Long serverId = model.getServerId();
+ Optional setupPostTargetOptional = postTargetManagement.getPostTargetOptional(SetupPostTarget.SETUP, serverId);
+ if(setupPostTargetOptional.isPresent()) {
+ PostTarget setupTarget = setupPostTargetOptional.get();
Message originalMessage = model.getMessage();
- if(originalMessage.getChannel().getIdLong() == setupsTarget.getChannelReference().getId()) {
- Long serverId = model.getServerId();
- boolean currentlyInvalid = setupsService.currentlyInvalid(originalMessage);
+ if(originalMessage.getChannel().getIdLong() == setupTarget.getChannelReference().getId()) {
+ if(!originalMessage.isFromGuild() || originalMessage.isWebhookMessage() || originalMessage.getType().isSystem()) {
+ messageService.deleteMessage(originalMessage);
+ return DefaultListenerResult.IGNORED;
+ }
+ boolean currentlyInvalid = setupServiceBean.currentlyInvalid(originalMessage);
if(currentlyInvalid) {
- if(setupsService.mightContainEmbed(originalMessage)) {
+ if(setupServiceBean.mightContainEmbed(originalMessage)) {
log.info("Setup message did not contain embeds not attachments, but a link - waiting for embeds on message {}" +
" in channel {} in guild {} by user {}.", originalMessage.getIdLong(), originalMessage.getChannel().getIdLong(),
originalMessage.getGuild().getIdLong(), originalMessage.getAuthor().getIdLong());
scheduledExecutorService.schedule(() -> {
messageService.loadMessage(originalMessage).thenAccept(loadedMessage -> {
- if(setupsService.currentlyInvalid(loadedMessage)) {
- log.info("Message did not contain attachments nor embeds after a delay - deleting setups message {}.", loadedMessage.getIdLong());
+ if(setupServiceBean.currentlyInvalid(loadedMessage)) {
+ log.info("Message did not contain attachments nor embeds after a delay - deleting setup message {}.", loadedMessage.getIdLong());
messageService.deleteMessage(loadedMessage);
} else {
log.info("Message contained embeds/attachments after a delay - message was accepted {}.", loadedMessage.getIdLong());
- reactionService.addReactionToMessage(SETUPS_UPVOTE_EMOTE_KEY, serverId, loadedMessage);
+ reactionService.addReactionToMessage(SETUP_UPVOTE_EMOTE_KEY, serverId, loadedMessage);
}
});
}, deletionDelay, TimeUnit.SECONDS);
} else {
log.info("Did not find any attachments nor embeds and no link to lead to any embeds - deleting setup message {} in channel {} in server {}" +
- "by user {} for setups.", originalMessage.getIdLong(), originalMessage.getChannel().getIdLong(), originalMessage.getGuild().getIdLong(),
+ "by user {} for setup.", originalMessage.getIdLong(), originalMessage.getChannel().getIdLong(), originalMessage.getGuild().getIdLong(),
originalMessage.getAuthor().getIdLong());
messageService.deleteMessage(originalMessage);
}
} else {
- log.info("Accepting setups message {} in channel {} in guild {} from user {}.", originalMessage.getIdLong(),
+ log.info("Accepting setup message {} in channel {} in guild {} from user {}.", originalMessage.getIdLong(),
originalMessage.getChannel().getIdLong(), originalMessage.getGuild().getIdLong(), originalMessage.getAuthor().getIdLong());
- reactionService.addReactionToMessage(SETUPS_UPVOTE_EMOTE_KEY, serverId, originalMessage);
+ reactionService.addReactionToMessage(SETUP_UPVOTE_EMOTE_KEY, serverId, originalMessage);
}
}
}
@@ -90,6 +94,6 @@ public class SetupsListener implements AsyncMessageReceivedListener {
@Override
public FeatureDefinition getFeature() {
- return SetupsFeatureDefinition.SETUPS;
+ return SetupFeatureDefinition.SETUP;
}
}
diff --git a/application/oneplus-bot-modules/setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/service/SetupsService.java b/application/oneplus-bot-modules/setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/service/SetupServiceBean.java
similarity index 92%
rename from application/oneplus-bot-modules/setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/service/SetupsService.java
rename to application/oneplus-bot-modules/setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/service/SetupServiceBean.java
index 8a40115..e8d1878 100644
--- a/application/oneplus-bot-modules/setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/service/SetupsService.java
+++ b/application/oneplus-bot-modules/setup/src/main/java/dev/sheldan/oneplus/bot/modules/setup/service/SetupServiceBean.java
@@ -1,4 +1,4 @@
-package dev.sheldan.oneplus.bot.modules.setups.service;
+package dev.sheldan.oneplus.bot.modules.setup.service;
import net.dv8tion.jda.api.entities.EmbedType;
import net.dv8tion.jda.api.entities.Message;
@@ -8,7 +8,7 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Component
-public class SetupsService {
+public class SetupServiceBean {
private static final Pattern URL_REGEX = Pattern.compile("((https?|ftp)://|(www|ftp)\\.)?[a-z0-9-]+(\\.[a-z0-9-]+)+([/?].*)?");
diff --git a/application/oneplus-bot-modules/setups/src/main/resources/migrations/1.3.11-setups/collection.xml b/application/oneplus-bot-modules/setup/src/main/resources/migrations/1.3.11-setup/collection.xml
similarity index 88%
rename from application/oneplus-bot-modules/setups/src/main/resources/migrations/1.3.11-setups/collection.xml
rename to application/oneplus-bot-modules/setup/src/main/resources/migrations/1.3.11-setup/collection.xml
index bc9fce9..d11616f 100644
--- a/application/oneplus-bot-modules/setups/src/main/resources/migrations/1.3.11-setups/collection.xml
+++ b/application/oneplus-bot-modules/setup/src/main/resources/migrations/1.3.11-setup/collection.xml
@@ -6,5 +6,5 @@
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog dbchangelog.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext dbchangelog.xsd
http://www.liquibase.org/xml/ns/pro dbchangelog.xsd" >
-
+
\ No newline at end of file
diff --git a/application/oneplus-bot-modules/setups/src/main/resources/migrations/1.3.11-setups/setups-seedData/data.xml b/application/oneplus-bot-modules/setup/src/main/resources/migrations/1.3.11-setup/setup-seedData/data.xml
similarity index 100%
rename from application/oneplus-bot-modules/setups/src/main/resources/migrations/1.3.11-setups/setups-seedData/data.xml
rename to application/oneplus-bot-modules/setup/src/main/resources/migrations/1.3.11-setup/setup-seedData/data.xml
diff --git a/application/oneplus-bot-modules/setups/src/main/resources/migrations/1.3.11-setups/setups-seedData/default_emote.xml b/application/oneplus-bot-modules/setup/src/main/resources/migrations/1.3.11-setup/setup-seedData/default_emote.xml
similarity index 85%
rename from application/oneplus-bot-modules/setups/src/main/resources/migrations/1.3.11-setups/setups-seedData/default_emote.xml
rename to application/oneplus-bot-modules/setup/src/main/resources/migrations/1.3.11-setup/setup-seedData/default_emote.xml
index 5b9eec3..dfe6435 100644
--- a/application/oneplus-bot-modules/setups/src/main/resources/migrations/1.3.11-setups/setups-seedData/default_emote.xml
+++ b/application/oneplus-bot-modules/setup/src/main/resources/migrations/1.3.11-setup/setup-seedData/default_emote.xml
@@ -6,9 +6,9 @@
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog dbchangelog.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext dbchangelog.xsd
http://www.liquibase.org/xml/ns/pro dbchangelog.xsd" >
-
+
-
+
diff --git a/application/oneplus-bot-modules/setups/src/main/resources/migrations/1.3.11-setups/setups-seedData/feature.xml b/application/oneplus-bot-modules/setup/src/main/resources/migrations/1.3.11-setup/setup-seedData/feature.xml
similarity index 85%
rename from application/oneplus-bot-modules/setups/src/main/resources/migrations/1.3.11-setups/setups-seedData/feature.xml
rename to application/oneplus-bot-modules/setup/src/main/resources/migrations/1.3.11-setup/setup-seedData/feature.xml
index a234f83..9be03ec 100644
--- a/application/oneplus-bot-modules/setups/src/main/resources/migrations/1.3.11-setups/setups-seedData/feature.xml
+++ b/application/oneplus-bot-modules/setup/src/main/resources/migrations/1.3.11-setup/setup-seedData/feature.xml
@@ -6,9 +6,9 @@
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog dbchangelog.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext dbchangelog.xsd
http://www.liquibase.org/xml/ns/pro dbchangelog.xsd" >
-
+
-
+
\ No newline at end of file
diff --git a/application/oneplus-bot-modules/setup/src/main/resources/migrations/dbchangelog.xsd b/application/oneplus-bot-modules/setup/src/main/resources/migrations/dbchangelog.xsd
new file mode 100644
index 0000000..83483a5
--- /dev/null
+++ b/application/oneplus-bot-modules/setup/src/main/resources/migrations/dbchangelog.xsd
@@ -0,0 +1,1386 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension to standard XSD boolean type to allow ${} parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension to standard XSD integer type to allow ${} parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ onChangeLogPreconditionOnSqlOutput determines what should
+ happen when evaluating this precondition in updateSQL mode. TEST: Run
+ precondition, FAIL: Fail precondition, IGNORE: Skip precondition check
+ [DEFAULT]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Used with valueClobFile to specify file encoding explicitly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true for a cycling sequence, false for a non-cycling sequence.
+ Default is false.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/application/oneplus-bot-modules/setup/src/main/resources/migrations/setup-changeLog.xml b/application/oneplus-bot-modules/setup/src/main/resources/migrations/setup-changeLog.xml
new file mode 100644
index 0000000..3e538ea
--- /dev/null
+++ b/application/oneplus-bot-modules/setup/src/main/resources/migrations/setup-changeLog.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/application/oneplus-bot-modules/setup/src/main/resources/setup.properties b/application/oneplus-bot-modules/setup/src/main/resources/setup.properties
new file mode 100644
index 0000000..2ffd5d7
--- /dev/null
+++ b/application/oneplus-bot-modules/setup/src/main/resources/setup.properties
@@ -0,0 +1,6 @@
+abstracto.postTargets.setup.name=setup
+
+abstracto.featureFlags.setup.featureName=setup
+abstracto.featureFlags.setup.enabled=false
+
+oneplus.bot.setup.deletionDelaySeconds=3
\ No newline at end of file
diff --git a/application/oneplus-bot-modules/setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/config/SetupsFeatureDefinition.java b/application/oneplus-bot-modules/setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/config/SetupsFeatureDefinition.java
deleted file mode 100644
index 6f07831..0000000
--- a/application/oneplus-bot-modules/setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/config/SetupsFeatureDefinition.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package dev.sheldan.oneplus.bot.modules.setups.config;
-
-import dev.sheldan.abstracto.core.config.FeatureDefinition;
-import lombok.Getter;
-
-@Getter
-public enum SetupsFeatureDefinition implements FeatureDefinition {
- SETUPS("setups");
-
- private String key;
-
- SetupsFeatureDefinition(String key) {
- this.key = key;
- }
-}
\ No newline at end of file
diff --git a/application/oneplus-bot-modules/setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/config/SetupsPostTarget.java b/application/oneplus-bot-modules/setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/config/SetupsPostTarget.java
deleted file mode 100644
index 300dde3..0000000
--- a/application/oneplus-bot-modules/setups/src/main/java/dev/sheldan/oneplus/bot/modules/setups/config/SetupsPostTarget.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package dev.sheldan.oneplus.bot.modules.setups.config;
-
-import dev.sheldan.abstracto.core.config.PostTargetEnum;
-import lombok.Getter;
-
-@Getter
-public enum SetupsPostTarget implements PostTargetEnum {
- SETUPS("setups");
-
- private String key;
-
- SetupsPostTarget(String key) {
- this.key = key;
- }
-}
diff --git a/application/oneplus-bot-modules/setups/src/main/resources/setups.properties b/application/oneplus-bot-modules/setups/src/main/resources/setups.properties
deleted file mode 100644
index 557fee2..0000000
--- a/application/oneplus-bot-modules/setups/src/main/resources/setups.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-abstracto.postTargets.setups.name=setups
-
-abstracto.featureFlags.setups.featureName=setups
-abstracto.featureFlags.setups.enabled=false
-
-abstracto.setups.deletionDelaySeconds=3
\ No newline at end of file
diff --git a/deployment/image-packaging/pom.xml b/deployment/image-packaging/pom.xml
index 1907c8e..3a582e4 100644
--- a/deployment/image-packaging/pom.xml
+++ b/deployment/image-packaging/pom.xml
@@ -159,6 +159,16 @@
news.zip
+
+ dev.sheldan.oneplus.bot.templates.modules
+ referral-templates
+ ${project.version}
+ zip
+ true
+ ${file.basedir}/deployment/template-artifacts/
+ referral.zip
+
+
dev.sheldan.abstracto-templates.translations
@@ -268,7 +278,7 @@
dev.sheldan.oneplus.bot.templates.translations
- starboard-custom
+ starboard-custom-translations
${project.version}
zip
true
@@ -289,12 +299,22 @@
dev.sheldan.oneplus.bot.templates.translations
- setups-translations
+ setup-translations
${project.version}
zip
true
${file.basedir}/deployment/translation-artifacts/
- setups.zip
+ setup.zip
+
+
+
+ dev.sheldan.oneplus.bot.templates.translations
+ referral-translations
+ ${project.version}
+ zip
+ true
+ ${file.basedir}/deployment/translation-artifacts/
+ referral.zip
@@ -456,13 +476,24 @@
dev.sheldan.oneplus.bot.application.modules
- setups
+ setup
${project.version}
liquibase
zip
true
${file.basedir}/deployment/liquibase-artifacts/
- setups.zip
+ setup.zip
+
+
+
+ dev.sheldan.oneplus.bot.application.modules
+ referral
+ ${project.version}
+ liquibase
+ zip
+ true
+ ${file.basedir}/deployment/liquibase-artifacts/
+ referral.zip
diff --git a/deployment/image-packaging/src/main/docker/deployment/config/artifact_versions.json b/deployment/image-packaging/src/main/docker/deployment/config/artifact_versions.json
index 8b5e5e5..50a8c6e 100644
--- a/deployment/image-packaging/src/main/docker/deployment/config/artifact_versions.json
+++ b/deployment/image-packaging/src/main/docker/deployment/config/artifact_versions.json
@@ -3,11 +3,11 @@
"suggestion", "invite-filter",
"starboard-custom",
"overrides-templates-webservices", "overrides-templates-core", "overrides-templates-logging",
- "news"],
+ "news", "referral"],
"translation_artifacts": ["utility", "core", "entertainment", "starboard", "link-embed", "webservices", "suggestion",
"remind", "logging", "invite-filter",
"starboard-custom",
- "news", "setups"],
+ "news", "setup", "referral"],
"liquibase_artifacts": [
{ "zip": "scheduling", "file": "scheduling-changeLog.xml" },
{ "zip": "core", "file": "core-changeLog.xml" },
@@ -20,7 +20,8 @@
{ "zip": "logging", "file": "logging-changeLog.xml"},
{ "zip": "suggestion", "file": "suggestion-changeLog.xml"},
{ "zip": "invite-filter", "file": "inviteFilter-changeLog.xml"},
- { "zip": "setups", "file": "setups-changeLog.xml"},
+ { "zip": "setup", "file": "setup-changeLog.xml"},
+ { "zip": "referral", "file": "referral-changeLog.xml"},
{ "zip": "starboard-custom", "file": "starboard-custom-changeLog.xml"},
{ "zip": "news", "file": "news-changeLog.xml"}
]
diff --git a/pom.xml b/pom.xml
index c857e8d..311d6dd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,8 +19,8 @@
1.8
- 1.2.10
- 1.2.6
+ 1.2.11
+ 1.2.7
diff --git a/templates/oneplus-bot-modules-templates/pom.xml b/templates/oneplus-bot-modules-templates/pom.xml
index baa0e9c..46feb74 100644
--- a/templates/oneplus-bot-modules-templates/pom.xml
+++ b/templates/oneplus-bot-modules-templates/pom.xml
@@ -12,8 +12,9 @@
pom
1.3.11-SNAPSHOT
- starboard-custom
+ starboard-custom-templates
news-templates
+ referral-templates
diff --git a/templates/oneplus-bot-modules-templates/referral-templates/pom.xml b/templates/oneplus-bot-modules-templates/referral-templates/pom.xml
new file mode 100644
index 0000000..f0181e4
--- /dev/null
+++ b/templates/oneplus-bot-modules-templates/referral-templates/pom.xml
@@ -0,0 +1,38 @@
+
+
+
+ oneplus-bot-modules-templates
+ dev.sheldan.oneplus.bot.templates.modules
+ 1.3.11-SNAPSHOT
+
+ 4.0.0
+
+ referral-templates
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+ package
+
+ single
+
+
+ referral-templates-${project.version}
+ false
+
+ src/main/assembly/assembly.xml
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/templates/oneplus-bot-modules-templates/starboard-custom/src/main/assembly/assembly.xml b/templates/oneplus-bot-modules-templates/referral-templates/src/main/assembly/assembly.xml
similarity index 100%
rename from templates/oneplus-bot-modules-templates/starboard-custom/src/main/assembly/assembly.xml
rename to templates/oneplus-bot-modules-templates/referral-templates/src/main/assembly/assembly.xml
diff --git a/templates/oneplus-bot-modules-templates/referral-templates/src/main/resources/en_US/listener/referralListener/referralListener_no_referral_link_found_embed_en_US.ftl b/templates/oneplus-bot-modules-templates/referral-templates/src/main/resources/en_US/listener/referralListener/referralListener_no_referral_link_found_embed_en_US.ftl
new file mode 100644
index 0000000..a8635d8
--- /dev/null
+++ b/templates/oneplus-bot-modules-templates/referral-templates/src/main/resources/en_US/listener/referralListener/referralListener_no_referral_link_found_embed_en_US.ftl
@@ -0,0 +1,3 @@
+{
+ "additionalMessage": "<@safe_include "no_referral_link_found"/>"
+}
\ No newline at end of file
diff --git a/templates/oneplus-bot-modules-templates/referral-templates/src/main/resources/en_US/listener/referralListener/referralListener_referral_post_embed_en_US.ftl b/templates/oneplus-bot-modules-templates/referral-templates/src/main/resources/en_US/listener/referralListener/referralListener_referral_post_embed_en_US.ftl
new file mode 100644
index 0000000..602dc6d
--- /dev/null
+++ b/templates/oneplus-bot-modules-templates/referral-templates/src/main/resources/en_US/listener/referralListener/referralListener_referral_post_embed_en_US.ftl
@@ -0,0 +1,17 @@
+{
+ <#include "abstracto_color">,
+ <#include "member_author">
+ <#assign member=postingMember>
+ <@member_author member=member/>,
+ <#include "full_member_info">
+ "description": "<@safe_include "referralListener_referral_post_description"/>",
+ "fields": [
+ <#list referrals as referral><#assign referral=referral>
+ {
+ "name": "<@safe_include "referral_link_type_${referral.type.key}"/>",
+ "value": "[${referral.referralIdentifier?json_string}](${referral.referralLink?json_string})"
+ }
+ <#sep>,
+ #list>
+ ]
+}
\ No newline at end of file
diff --git a/templates/oneplus-bot-modules-templates/referral-templates/src/main/resources/en_US/listener/referralListener/referralListener_too_recent_post_embed_en_US.ftl b/templates/oneplus-bot-modules-templates/referral-templates/src/main/resources/en_US/listener/referralListener/referralListener_too_recent_post_embed_en_US.ftl
new file mode 100644
index 0000000..5de2510
--- /dev/null
+++ b/templates/oneplus-bot-modules-templates/referral-templates/src/main/resources/en_US/listener/referralListener/referralListener_too_recent_post_embed_en_US.ftl
@@ -0,0 +1,5 @@
+{
+ <#include "abstracto_color">,
+ "description": "<@safe_include "too_recent_referral_post"/>",
+ "timeStamp": "${nextReferralDate}"
+}
\ No newline at end of file
diff --git a/templates/oneplus-bot-modules-templates/starboard-custom/pom.xml b/templates/oneplus-bot-modules-templates/starboard-custom-templates/pom.xml
similarity index 100%
rename from templates/oneplus-bot-modules-templates/starboard-custom/pom.xml
rename to templates/oneplus-bot-modules-templates/starboard-custom-templates/pom.xml
diff --git a/templates/translations/setups-translations/src/main/assembly/assembly.xml b/templates/oneplus-bot-modules-templates/starboard-custom-templates/src/main/assembly/assembly.xml
similarity index 100%
rename from templates/translations/setups-translations/src/main/assembly/assembly.xml
rename to templates/oneplus-bot-modules-templates/starboard-custom-templates/src/main/assembly/assembly.xml
diff --git a/templates/oneplus-bot-modules-templates/starboard-custom/src/main/resources/en_US/listener/starboardNotification/starboard_post_created_notification_embed_en_US.ftl b/templates/oneplus-bot-modules-templates/starboard-custom-templates/src/main/resources/en_US/listener/starboardNotification/starboard_post_created_notification_embed_en_US.ftl
similarity index 100%
rename from templates/oneplus-bot-modules-templates/starboard-custom/src/main/resources/en_US/listener/starboardNotification/starboard_post_created_notification_embed_en_US.ftl
rename to templates/oneplus-bot-modules-templates/starboard-custom-templates/src/main/resources/en_US/listener/starboardNotification/starboard_post_created_notification_embed_en_US.ftl
diff --git a/templates/oneplus-bot-modules-templates/starboard-custom/src/main/resources/en_US/listener/starboardNotification/starboard_post_deleted_notification_embed_en_US.ftl b/templates/oneplus-bot-modules-templates/starboard-custom-templates/src/main/resources/en_US/listener/starboardNotification/starboard_post_deleted_notification_embed_en_US.ftl
similarity index 100%
rename from templates/oneplus-bot-modules-templates/starboard-custom/src/main/resources/en_US/listener/starboardNotification/starboard_post_deleted_notification_embed_en_US.ftl
rename to templates/oneplus-bot-modules-templates/starboard-custom-templates/src/main/resources/en_US/listener/starboardNotification/starboard_post_deleted_notification_embed_en_US.ftl
diff --git a/templates/translations/pom.xml b/templates/translations/pom.xml
index 5a06b36..f5bc131 100644
--- a/templates/translations/pom.xml
+++ b/templates/translations/pom.xml
@@ -13,6 +13,7 @@
starboard-custom-translations
news-translations
- setups-translations
+ setup-translations
+ referral-translations
\ No newline at end of file
diff --git a/templates/translations/referral-translations/pom.xml b/templates/translations/referral-translations/pom.xml
new file mode 100644
index 0000000..d596c20
--- /dev/null
+++ b/templates/translations/referral-translations/pom.xml
@@ -0,0 +1,39 @@
+
+
+
+ translations
+ dev.sheldan.oneplus.bot.templates.translations
+ 1.3.11-SNAPSHOT
+
+ 4.0.0
+
+ referral-translations
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+ package
+
+ single
+
+
+ referral-translations-${project.version}
+ false
+
+ src/main/assembly/assembly.xml
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/templates/translations/referral-translations/src/main/assembly/assembly.xml b/templates/translations/referral-translations/src/main/assembly/assembly.xml
new file mode 100644
index 0000000..aca1e51
--- /dev/null
+++ b/templates/translations/referral-translations/src/main/assembly/assembly.xml
@@ -0,0 +1,15 @@
+
+ zip
+ false
+
+ zip
+
+
+
+ .
+ ${project.basedir}/src/main/resources
+
+
+
\ No newline at end of file
diff --git a/templates/translations/referral-translations/src/main/resources/en_US/config/feature_referral_en_US.ftl b/templates/translations/referral-translations/src/main/resources/en_US/config/feature_referral_en_US.ftl
new file mode 100644
index 0000000..16f778a
--- /dev/null
+++ b/templates/translations/referral-translations/src/main/resources/en_US/config/feature_referral_en_US.ftl
@@ -0,0 +1 @@
+Referral
\ No newline at end of file
diff --git a/templates/translations/referral-translations/src/main/resources/en_US/config/feature_setup_posttarget_referral_en_US.ftl b/templates/translations/referral-translations/src/main/resources/en_US/config/feature_setup_posttarget_referral_en_US.ftl
new file mode 100644
index 0000000..85f7c99
--- /dev/null
+++ b/templates/translations/referral-translations/src/main/resources/en_US/config/feature_setup_posttarget_referral_en_US.ftl
@@ -0,0 +1 @@
+The channel in which the referral codes should be handled in. Currently: ${currentTarget}
\ No newline at end of file
diff --git a/templates/translations/referral-translations/src/main/resources/en_US/config/referral_link_type_accessories_en_US.ftl b/templates/translations/referral-translations/src/main/resources/en_US/config/referral_link_type_accessories_en_US.ftl
new file mode 100644
index 0000000..5413be1
--- /dev/null
+++ b/templates/translations/referral-translations/src/main/resources/en_US/config/referral_link_type_accessories_en_US.ftl
@@ -0,0 +1 @@
+Accessories
\ No newline at end of file
diff --git a/templates/translations/referral-translations/src/main/resources/en_US/config/referral_link_type_smartphoneIndia_en_US.ftl b/templates/translations/referral-translations/src/main/resources/en_US/config/referral_link_type_smartphoneIndia_en_US.ftl
new file mode 100644
index 0000000..ce721f4
--- /dev/null
+++ b/templates/translations/referral-translations/src/main/resources/en_US/config/referral_link_type_smartphoneIndia_en_US.ftl
@@ -0,0 +1 @@
+Smartphone (India)
\ No newline at end of file
diff --git a/templates/translations/referral-translations/src/main/resources/en_US/config/referral_link_type_smartphone_en_US.ftl b/templates/translations/referral-translations/src/main/resources/en_US/config/referral_link_type_smartphone_en_US.ftl
new file mode 100644
index 0000000..73463dc
--- /dev/null
+++ b/templates/translations/referral-translations/src/main/resources/en_US/config/referral_link_type_smartphone_en_US.ftl
@@ -0,0 +1 @@
+Smartphone
\ No newline at end of file
diff --git a/templates/translations/referral-translations/src/main/resources/en_US/listener/no_referral_link_found_en_US.ftl b/templates/translations/referral-translations/src/main/resources/en_US/listener/no_referral_link_found_en_US.ftl
new file mode 100644
index 0000000..a5652e7
--- /dev/null
+++ b/templates/translations/referral-translations/src/main/resources/en_US/listener/no_referral_link_found_en_US.ftl
@@ -0,0 +1 @@
+No referral link found.
\ No newline at end of file
diff --git a/templates/translations/referral-translations/src/main/resources/en_US/listener/referralListener_referral_post_description_en_US.ftl b/templates/translations/referral-translations/src/main/resources/en_US/listener/referralListener_referral_post_description_en_US.ftl
new file mode 100644
index 0000000..807ba33
--- /dev/null
+++ b/templates/translations/referral-translations/src/main/resources/en_US/listener/referralListener_referral_post_description_en_US.ftl
@@ -0,0 +1 @@
+Sent by <@full_member_info member=member/>
\ No newline at end of file
diff --git a/templates/translations/referral-translations/src/main/resources/en_US/listener/too_recent_referral_post_en_US.ftl b/templates/translations/referral-translations/src/main/resources/en_US/listener/too_recent_referral_post_en_US.ftl
new file mode 100644
index 0000000..63f6d72
--- /dev/null
+++ b/templates/translations/referral-translations/src/main/resources/en_US/listener/too_recent_referral_post_en_US.ftl
@@ -0,0 +1 @@
+The last referral post was too recent. See the footer for the next time you can retry
\ No newline at end of file
diff --git a/templates/translations/setups-translations/pom.xml b/templates/translations/setup-translations/pom.xml
similarity index 90%
rename from templates/translations/setups-translations/pom.xml
rename to templates/translations/setup-translations/pom.xml
index 9f46702..8e0586d 100644
--- a/templates/translations/setups-translations/pom.xml
+++ b/templates/translations/setup-translations/pom.xml
@@ -9,7 +9,7 @@
4.0.0
- setups-translations
+ setup-translations
@@ -23,7 +23,7 @@
single
- setups-translations-${project.version}
+ setup-translations-${project.version}
false
src/main/assembly/assembly.xml
diff --git a/templates/translations/setup-translations/src/main/assembly/assembly.xml b/templates/translations/setup-translations/src/main/assembly/assembly.xml
new file mode 100644
index 0000000..aca1e51
--- /dev/null
+++ b/templates/translations/setup-translations/src/main/assembly/assembly.xml
@@ -0,0 +1,15 @@
+
+ zip
+ false
+
+ zip
+
+
+
+ .
+ ${project.basedir}/src/main/resources
+
+
+
\ No newline at end of file
diff --git a/templates/translations/setup-translations/src/main/resources/en_US/config/feature_setup_en_US.ftl b/templates/translations/setup-translations/src/main/resources/en_US/config/feature_setup_en_US.ftl
new file mode 100644
index 0000000..54fee71
--- /dev/null
+++ b/templates/translations/setup-translations/src/main/resources/en_US/config/feature_setup_en_US.ftl
@@ -0,0 +1 @@
+Setup
\ No newline at end of file
diff --git a/templates/translations/setups-translations/src/main/resources/en_US/config/feature_setup_posttarget_setups_en_US.ftl b/templates/translations/setup-translations/src/main/resources/en_US/config/feature_setup_posttarget_setup_en_US.ftl
similarity index 100%
rename from templates/translations/setups-translations/src/main/resources/en_US/config/feature_setup_posttarget_setups_en_US.ftl
rename to templates/translations/setup-translations/src/main/resources/en_US/config/feature_setup_posttarget_setup_en_US.ftl
diff --git a/templates/translations/setups-translations/src/main/resources/en_US/config/feature_setups_en_US.ftl b/templates/translations/setups-translations/src/main/resources/en_US/config/feature_setups_en_US.ftl
deleted file mode 100644
index 3c29d26..0000000
--- a/templates/translations/setups-translations/src/main/resources/en_US/config/feature_setups_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Setups
\ No newline at end of file
diff --git a/templates/translations/starboard-custom-translations/pom.xml b/templates/translations/starboard-custom-translations/pom.xml
index d32c12a..9b42f75 100644
--- a/templates/translations/starboard-custom-translations/pom.xml
+++ b/templates/translations/starboard-custom-translations/pom.xml
@@ -7,7 +7,7 @@
4.0.0
- starboard-custom
+ starboard-custom-translations
pom