From 51775b454e9a31b44651f5d13c28cfaecf4dd772 Mon Sep 17 00:00:00 2001
From: Sheldan <5037282+Sheldan@users.noreply.github.com>
Date: Thu, 23 Dec 2021 23:44:45 +0100
Subject: [PATCH] [OPB-41] adding seasonal lights effect
---
application/executable/pom.xml | 6 +
application/oneplus-bot-modules/pom.xml | 1 +
.../oneplus-bot-modules/seasonal/pom.xml | 41 +
.../seasonal/src/main/assembly/liquibase.xml | 18 +
...easonalEntertainmentFeatureDefinition.java | 24 +
.../config/SeasonalFeatureDefinition.java | 15 +
.../seasonal/config/SeasonalProperties.java | 10 +
.../lights/command/AddRoleToLights.java | 58 +
.../lights/command/RemoveRoleFromLights.java | 58 +
.../seasonal/lights/command/SwitchLights.java | 55 +
.../lights/config/LightsColorConfig.java | 17 +
.../lights/config/LightsFeatureConfig.java | 16 +
.../lights/models/LightsRoleColor.java | 18 +
.../lights/models/database/LightsRole.java | 31 +
.../repository/LightsRoleRepository.java | 13 +
.../lights/service/LightsRoleServiceBean.java | 81 +
.../LightsRoleServiceManagementBean.java | 37 +
.../resources/migrations/1.5.9/collection.xml | 11 +
.../migrations/1.5.9/seedData/command.xml | 28 +
.../migrations/1.5.9/seedData/data.xml | 11 +
.../migrations/1.5.9/seedData/feature.xml | 14 +
.../migrations/1.5.9/tables/lights_role.xml | 44 +
.../migrations/1.5.9/tables/tables.xml | 10 +
.../main/resources/migrations/dbchangelog.xsd | 1386 +++++++++++++++++
.../migrations/seasonal-changeLog.xml | 10 +
.../src/main/resources/seasonal.properties | 30 +
deployment/image-packaging/pom.xml | 21 +
.../deployment/config/artifact_versions.json | 5 +-
.../translations/module-translations/pom.xml | 1 +
.../seasonal-translations/pom.xml | 38 +
.../src/main/assembly/assembly.xml | 15 +
.../addRoleToLights_description_en_US.ftl | 1 +
.../help/addRoleToLights_long_help_en_US.ftl | 1 +
.../addRoleToLights_parameter_role_en_US.ftl | 1 +
...removeRoleFromLights_description_en_US.ftl | 1 +
.../removeRoleFromLights_long_help_en_US.ftl | 1 +
...oveRoleFromLights_parameter_role_en_US.ftl | 1 +
.../help/switchLights_description_en_US.ftl | 1 +
.../help/switchLights_long_help_en_US.ftl | 1 +
.../lights/config/feature_lights_en_US.ftl | 1 +
40 files changed, 2130 insertions(+), 2 deletions(-)
create mode 100644 application/oneplus-bot-modules/seasonal/pom.xml
create mode 100644 application/oneplus-bot-modules/seasonal/src/main/assembly/liquibase.xml
create mode 100644 application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/config/SeasonalEntertainmentFeatureDefinition.java
create mode 100644 application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/config/SeasonalFeatureDefinition.java
create mode 100644 application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/config/SeasonalProperties.java
create mode 100644 application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/lights/command/AddRoleToLights.java
create mode 100644 application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/lights/command/RemoveRoleFromLights.java
create mode 100644 application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/lights/command/SwitchLights.java
create mode 100644 application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/lights/config/LightsColorConfig.java
create mode 100644 application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/lights/config/LightsFeatureConfig.java
create mode 100644 application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/lights/models/LightsRoleColor.java
create mode 100644 application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/lights/models/database/LightsRole.java
create mode 100644 application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/lights/repository/LightsRoleRepository.java
create mode 100644 application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/lights/service/LightsRoleServiceBean.java
create mode 100644 application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/lights/service/management/LightsRoleServiceManagementBean.java
create mode 100644 application/oneplus-bot-modules/seasonal/src/main/resources/migrations/1.5.9/collection.xml
create mode 100644 application/oneplus-bot-modules/seasonal/src/main/resources/migrations/1.5.9/seedData/command.xml
create mode 100644 application/oneplus-bot-modules/seasonal/src/main/resources/migrations/1.5.9/seedData/data.xml
create mode 100644 application/oneplus-bot-modules/seasonal/src/main/resources/migrations/1.5.9/seedData/feature.xml
create mode 100644 application/oneplus-bot-modules/seasonal/src/main/resources/migrations/1.5.9/tables/lights_role.xml
create mode 100644 application/oneplus-bot-modules/seasonal/src/main/resources/migrations/1.5.9/tables/tables.xml
create mode 100644 application/oneplus-bot-modules/seasonal/src/main/resources/migrations/dbchangelog.xsd
create mode 100644 application/oneplus-bot-modules/seasonal/src/main/resources/migrations/seasonal-changeLog.xml
create mode 100644 application/oneplus-bot-modules/seasonal/src/main/resources/seasonal.properties
create mode 100644 templates/translations/module-translations/seasonal-translations/pom.xml
create mode 100644 templates/translations/module-translations/seasonal-translations/src/main/assembly/assembly.xml
create mode 100644 templates/translations/module-translations/seasonal-translations/src/main/resources/en_US/lights/commands/addRoleToLights/help/addRoleToLights_description_en_US.ftl
create mode 100644 templates/translations/module-translations/seasonal-translations/src/main/resources/en_US/lights/commands/addRoleToLights/help/addRoleToLights_long_help_en_US.ftl
create mode 100644 templates/translations/module-translations/seasonal-translations/src/main/resources/en_US/lights/commands/addRoleToLights/help/addRoleToLights_parameter_role_en_US.ftl
create mode 100644 templates/translations/module-translations/seasonal-translations/src/main/resources/en_US/lights/commands/removeRoleFromLights/help/removeRoleFromLights_description_en_US.ftl
create mode 100644 templates/translations/module-translations/seasonal-translations/src/main/resources/en_US/lights/commands/removeRoleFromLights/help/removeRoleFromLights_long_help_en_US.ftl
create mode 100644 templates/translations/module-translations/seasonal-translations/src/main/resources/en_US/lights/commands/removeRoleFromLights/help/removeRoleFromLights_parameter_role_en_US.ftl
create mode 100644 templates/translations/module-translations/seasonal-translations/src/main/resources/en_US/lights/commands/switchLights/help/switchLights_description_en_US.ftl
create mode 100644 templates/translations/module-translations/seasonal-translations/src/main/resources/en_US/lights/commands/switchLights/help/switchLights_long_help_en_US.ftl
create mode 100644 templates/translations/module-translations/seasonal-translations/src/main/resources/en_US/lights/config/feature_lights_en_US.ftl
diff --git a/application/executable/pom.xml b/application/executable/pom.xml
index 5db131c..35f08dd 100644
--- a/application/executable/pom.xml
+++ b/application/executable/pom.xml
@@ -191,6 +191,12 @@
${project.version}
+
+ dev.sheldan.oneplus.bot.application.modules
+ seasonal
+ ${project.version}
+
+
\ No newline at end of file
diff --git a/application/oneplus-bot-modules/pom.xml b/application/oneplus-bot-modules/pom.xml
index 701f078..7131f57 100644
--- a/application/oneplus-bot-modules/pom.xml
+++ b/application/oneplus-bot-modules/pom.xml
@@ -15,6 +15,7 @@
setup
referral
faq
+ seasonal
diff --git a/application/oneplus-bot-modules/seasonal/pom.xml b/application/oneplus-bot-modules/seasonal/pom.xml
new file mode 100644
index 0000000..3fda049
--- /dev/null
+++ b/application/oneplus-bot-modules/seasonal/pom.xml
@@ -0,0 +1,41 @@
+
+
+
+ dev.sheldan.oneplus.bot.application.modules
+ oneplus-bot-modules
+ 1.5.9-SNAPSHOT
+
+ 4.0.0
+
+ seasonal
+
+
+ 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/seasonal/src/main/assembly/liquibase.xml b/application/oneplus-bot-modules/seasonal/src/main/assembly/liquibase.xml
new file mode 100644
index 0000000..8b4774f
--- /dev/null
+++ b/application/oneplus-bot-modules/seasonal/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/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/config/SeasonalEntertainmentFeatureDefinition.java b/application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/config/SeasonalEntertainmentFeatureDefinition.java
new file mode 100644
index 0000000..2696f0f
--- /dev/null
+++ b/application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/config/SeasonalEntertainmentFeatureDefinition.java
@@ -0,0 +1,24 @@
+package dev.sheldan.oneplus.bot.modules.seasonal.config;
+
+import dev.sheldan.abstracto.core.command.config.ModuleDefinition;
+import dev.sheldan.abstracto.core.command.config.ModuleInfo;
+import org.springframework.stereotype.Component;
+
+@Component
+public class SeasonalEntertainmentFeatureDefinition implements ModuleDefinition {
+ public static final String ENTERTAINMENT = "entertainment";
+
+ @Override
+ public ModuleInfo getInfo() {
+ return ModuleInfo
+ .builder()
+ .name(ENTERTAINMENT)
+ .templated(true)
+ .build();
+ }
+
+ @Override
+ public String getParentModule() {
+ return "default";
+ }
+}
diff --git a/application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/config/SeasonalFeatureDefinition.java b/application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/config/SeasonalFeatureDefinition.java
new file mode 100644
index 0000000..81befa1
--- /dev/null
+++ b/application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/config/SeasonalFeatureDefinition.java
@@ -0,0 +1,15 @@
+package dev.sheldan.oneplus.bot.modules.seasonal.config;
+
+import dev.sheldan.abstracto.core.config.FeatureDefinition;
+import lombok.Getter;
+
+@Getter
+public enum SeasonalFeatureDefinition implements FeatureDefinition {
+ LIGHTS("lights");
+
+ private String key;
+
+ SeasonalFeatureDefinition(String key) {
+ this.key = key;
+ }
+}
diff --git a/application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/config/SeasonalProperties.java b/application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/config/SeasonalProperties.java
new file mode 100644
index 0000000..885e613
--- /dev/null
+++ b/application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/config/SeasonalProperties.java
@@ -0,0 +1,10 @@
+package dev.sheldan.oneplus.bot.modules.seasonal.config;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.PropertySource;
+
+@Configuration
+@PropertySource("classpath:seasonal.properties")
+public class SeasonalProperties {
+
+}
diff --git a/application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/lights/command/AddRoleToLights.java b/application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/lights/command/AddRoleToLights.java
new file mode 100644
index 0000000..5af4fd8
--- /dev/null
+++ b/application/oneplus-bot-modules/seasonal/src/main/java/dev/sheldan/oneplus/bot/modules/seasonal/lights/command/AddRoleToLights.java
@@ -0,0 +1,58 @@
+package dev.sheldan.oneplus.bot.modules.seasonal.lights.command;
+
+import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand;
+import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
+import dev.sheldan.abstracto.core.command.config.HelpInfo;
+import dev.sheldan.abstracto.core.command.config.Parameter;
+import dev.sheldan.abstracto.core.command.execution.CommandContext;
+import dev.sheldan.abstracto.core.command.execution.CommandResult;
+import dev.sheldan.abstracto.core.config.FeatureDefinition;
+import dev.sheldan.abstracto.core.exception.EntityGuildMismatchException;
+import dev.sheldan.oneplus.bot.modules.seasonal.config.SeasonalEntertainmentFeatureDefinition;
+import dev.sheldan.oneplus.bot.modules.seasonal.config.SeasonalFeatureDefinition;
+import dev.sheldan.oneplus.bot.modules.seasonal.lights.service.LightsRoleServiceBean;
+import net.dv8tion.jda.api.entities.Role;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Component
+public class AddRoleToLights extends AbstractConditionableCommand {
+
+ @Autowired
+ private LightsRoleServiceBean lightsMemberServiceBean;
+
+ @Override
+ public CommandResult execute(CommandContext commandContext) {
+ List