diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 55eb49d..c460cf5 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -34,5 +34,5 @@ jobs:
env:
REGISTRY_PREFIX: docker.pkg.github.com/sheldan/oneplusbot/
VERSION: ${{ env.version }}
- ABSTRACTO_VERSION: 1.3.0
+ ABSTRACTO_VERSION: 1.3.1
ABSTRACTO_REGISTRY_PREFIX: docker.pkg.github.com/sheldan/abstracto/
\ No newline at end of file
diff --git a/application/executable/pom.xml b/application/executable/pom.xml
index 2dc96ac..d3c04ca 100644
--- a/application/executable/pom.xml
+++ b/application/executable/pom.xml
@@ -105,6 +105,21 @@
modmail-impl
+
+ dev.sheldan.abstracto.modules
+ assignable-roles-impl
+
+
+
+ dev.sheldan.abstracto.modules
+ voice-channel-context-impl
+
+
+
+ dev.sheldan.abstracto.modules
+ dynamic-activity-impl
+
+
dev.sheldan.abstracto.modules
logging-impl
diff --git a/application/oneplus-bot-customizations/dynamic-activity-custom/pom.xml b/application/oneplus-bot-customizations/dynamic-activity-custom/pom.xml
new file mode 100644
index 0000000..0742e35
--- /dev/null
+++ b/application/oneplus-bot-customizations/dynamic-activity-custom/pom.xml
@@ -0,0 +1,35 @@
+
+
+
+ dev.sheldan.oneplus.bot.application.custom
+ oneplus-bot-customizations
+ 1.5.1-SNAPSHOT
+
+ 4.0.0
+
+ dynamic-activity-custom
+
+
+
+
+ maven-assembly-plugin
+
+
+ src/main/assembly/liquibase.xml
+
+
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/application/oneplus-bot-customizations/dynamic-activity-custom/src/main/assembly/liquibase.xml b/application/oneplus-bot-customizations/dynamic-activity-custom/src/main/assembly/liquibase.xml
new file mode 100644
index 0000000..8b4774f
--- /dev/null
+++ b/application/oneplus-bot-customizations/dynamic-activity-custom/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-customizations/dynamic-activity-custom/src/main/resources/migrations/1.5.1/collection.xml b/application/oneplus-bot-customizations/dynamic-activity-custom/src/main/resources/migrations/1.5.1/collection.xml
new file mode 100644
index 0000000..121b5aa
--- /dev/null
+++ b/application/oneplus-bot-customizations/dynamic-activity-custom/src/main/resources/migrations/1.5.1/collection.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/application/oneplus-bot-customizations/dynamic-activity-custom/src/main/resources/migrations/1.5.1/seedData/activity.xml b/application/oneplus-bot-customizations/dynamic-activity-custom/src/main/resources/migrations/1.5.1/seedData/activity.xml
new file mode 100644
index 0000000..1be5a82
--- /dev/null
+++ b/application/oneplus-bot-customizations/dynamic-activity-custom/src/main/resources/migrations/1.5.1/seedData/activity.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/application/oneplus-bot-customizations/dynamic-activity-custom/src/main/resources/migrations/1.5.1/seedData/data.xml b/application/oneplus-bot-customizations/dynamic-activity-custom/src/main/resources/migrations/1.5.1/seedData/data.xml
new file mode 100644
index 0000000..e5c662c
--- /dev/null
+++ b/application/oneplus-bot-customizations/dynamic-activity-custom/src/main/resources/migrations/1.5.1/seedData/data.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/application/oneplus-bot-customizations/dynamic-activity-custom/src/main/resources/migrations/dbchangelog.xsd b/application/oneplus-bot-customizations/dynamic-activity-custom/src/main/resources/migrations/dbchangelog.xsd
new file mode 100644
index 0000000..83483a5
--- /dev/null
+++ b/application/oneplus-bot-customizations/dynamic-activity-custom/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-customizations/dynamic-activity-custom/src/main/resources/migrations/dynamicActivity-custom-changeLog.xml b/application/oneplus-bot-customizations/dynamic-activity-custom/src/main/resources/migrations/dynamicActivity-custom-changeLog.xml
new file mode 100644
index 0000000..d476caa
--- /dev/null
+++ b/application/oneplus-bot-customizations/dynamic-activity-custom/src/main/resources/migrations/dynamicActivity-custom-changeLog.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/application/oneplus-bot-customizations/pom.xml b/application/oneplus-bot-customizations/pom.xml
index 6f20df8..50723b3 100644
--- a/application/oneplus-bot-customizations/pom.xml
+++ b/application/oneplus-bot-customizations/pom.xml
@@ -13,5 +13,6 @@
starboard-custom
+ dynamic-activity-custom
\ No newline at end of file
diff --git a/deployment/docker-compose/src/main/resources/.env b/deployment/docker-compose/src/main/resources/.env
index 2f4287f..e51c24a 100644
--- a/deployment/docker-compose/src/main/resources/.env
+++ b/deployment/docker-compose/src/main/resources/.env
@@ -26,4 +26,4 @@ PGADMIN_DEFAULT_EMAIL=sheldan@sheldan.dev
PGADMIN_DEFAULT_PASSWORD=admin
TOKEN=
YOUTUBE_API_KEY=
-ONEPLUS_BOT_VERSION=1.4.5
+ONEPLUS_BOT_VERSION=1.5.1
diff --git a/deployment/image-packaging/pom.xml b/deployment/image-packaging/pom.xml
index 31b83c7..95c088f 100644
--- a/deployment/image-packaging/pom.xml
+++ b/deployment/image-packaging/pom.xml
@@ -63,6 +63,25 @@
experience-tracking.zip
+
+ dev.sheldan.abstracto-templates.templates
+ assignable-roles
+ ${abstracto.templates.version}
+ zip
+ true
+ ${file.basedir}/deployment/template-artifacts/
+ assignable-roles.zip
+
+
+
+ dev.sheldan.abstracto-templates.templates
+ voice-channel-context
+ ${abstracto.templates.version}
+ zip
+ true
+ ${file.basedir}/deployment/template-artifacts/
+ voice-channel-context.zip
+
dev.sheldan.abstracto-templates.templates
@@ -253,6 +272,26 @@
modmail.zip
+
+ dev.sheldan.abstracto-templates.translations
+ assignable-roles
+ ${abstracto.templates.version}
+ zip
+ true
+ ${file.basedir}/deployment/translation-artifacts/
+ assignable-roles.zip
+
+
+
+ dev.sheldan.abstracto-templates.translations
+ voice-channel-context
+ ${abstracto.templates.version}
+ zip
+ true
+ ${file.basedir}/deployment/translation-artifacts/
+ voice-channel-context.zip
+
+
dev.sheldan.abstracto-templates.translations
utility
@@ -403,6 +442,16 @@
starboard-custom.zip
+
+ dev.sheldan.oneplus.bot.templates.translations
+ dynamic-activity-custom-translations
+ ${project.version}
+ zip
+ true
+ ${file.basedir}/deployment/translation-artifacts/
+ dynamic-activity-custom-translations.zip
+
+
dev.sheldan.oneplus.bot.templates.translations
@@ -467,6 +516,39 @@
core.zip
+
+ dev.sheldan.abstracto.modules
+ assignable-roles-impl
+ ${abstracto.version}
+ liquibase
+ zip
+ true
+ ${file.basedir}/deployment/liquibase-artifacts/
+ assignable-roles.zip
+
+
+
+ dev.sheldan.abstracto.modules
+ voice-channel-context-impl
+ ${abstracto.version}
+ liquibase
+ zip
+ true
+ ${file.basedir}/deployment/liquibase-artifacts/
+ voice-channel-context.zip
+
+
+
+ dev.sheldan.abstracto.modules
+ dynamic-activity-impl
+ ${abstracto.version}
+ liquibase
+ zip
+ true
+ ${file.basedir}/deployment/liquibase-artifacts/
+ dynamic-activity.zip
+
+
dev.sheldan.abstracto.modules
utility-impl
@@ -645,6 +727,17 @@
starboard-custom.zip
+
+ dev.sheldan.oneplus.bot.application.custom
+ dynamic-activity-custom
+ ${project.version}
+ liquibase
+ zip
+ true
+ ${file.basedir}/deployment/liquibase-artifacts/
+ dynamic-activity-custom.zip
+
+
dev.sheldan.oneplus.bot.application.modules
news
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 2e5c43a..1af5557 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
@@ -1,13 +1,15 @@
{
"template_artifacts": ["utility", "core", "entertainment", "starboard", "link-embed", "webservices", "remind", "logging",
- "suggestion", "invite-filter", "profanity-filter", "statistic", "experience-tracking", "moderation", "modmail",
+ "suggestion", "invite-filter", "profanity-filter", "statistic", "experience-tracking", "moderation", "modmail", "assignable-roles",
+ "voice-channel-context",
"starboard-custom",
"overrides-templates-webservices", "overrides-templates-core", "overrides-templates-logging", "overrides-templates-statistic",
"overrides-templates-modmail", "overrides-templates-moderation",
"news", "referral", "faq"],
"translation_artifacts": ["utility", "core", "entertainment", "starboard", "link-embed", "webservices", "suggestion",
- "remind", "logging", "invite-filter", "profanity-filter", "statistic", "experience-tracking", "moderation", "modmail",
- "starboard-custom",
+ "remind", "logging", "invite-filter", "profanity-filter", "statistic", "experience-tracking", "moderation", "modmail", "assignable-roles",
+ "voice-channel-context",
+ "starboard-custom", "dynamic-activity-custom-translations",
"overrides-translation-moderation",
"news", "setup", "referral", "faq"],
"liquibase_artifacts": [
@@ -27,9 +29,13 @@
{ "zip": "experience-tracking", "file": "experience-changeLog.xml"},
{ "zip": "moderation", "file": "moderation-changeLog.xml"},
{ "zip": "modmail", "file": "modMail-changeLog.xml"},
+ { "zip": "assignable-roles", "file": "assignableRoles-changeLog.xml"},
+ { "zip": "voice-channel-context", "file": "voiceChannelContext-changeLog.xml"},
+ { "zip": "dynamic-activity", "file": "dynamicActivity-changeLog.xml"},
{ "zip": "setup", "file": "setup-changeLog.xml"},
{ "zip": "referral", "file": "referral-changeLog.xml"},
{ "zip": "starboard-custom", "file": "starboard-custom-changeLog.xml"},
+ { "zip": "dynamic-activity-custom", "file": "dynamicActivity-custom-changeLog.xml"},
{ "zip": "news", "file": "news-changeLog.xml"},
{ "zip": "faq", "file": "faq-changeLog.xml"}
]
diff --git a/pom.xml b/pom.xml
index 80d9c77..752e46e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -18,9 +18,9 @@
1.8
1.8
-
- 1.3.0
- 1.2.14
+
+ 1.3.1
+ 1.2.15
diff --git a/templates/translations/dynamic-activity-custom-translations/pom.xml b/templates/translations/dynamic-activity-custom-translations/pom.xml
new file mode 100644
index 0000000..43034d9
--- /dev/null
+++ b/templates/translations/dynamic-activity-custom-translations/pom.xml
@@ -0,0 +1,37 @@
+
+
+
+ dev.sheldan.oneplus.bot.templates.translations
+ translations
+ 1.5.1-SNAPSHOT
+
+ 4.0.0
+
+ dynamic-activity-custom-translations
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+ package
+
+ single
+
+
+ dynamic-activity-custom-translations-${project.version}
+ false
+
+ src/main/assembly/assembly.xml
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/templates/translations/dynamic-activity-custom-translations/src/main/assembly/assembly.xml b/templates/translations/dynamic-activity-custom-translations/src/main/assembly/assembly.xml
new file mode 100644
index 0000000..aca1e51
--- /dev/null
+++ b/templates/translations/dynamic-activity-custom-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/dynamic-activity-custom-translations/src/main/resources/en_US/dynamicActivity/dynamic_activity_fans_en_US.ftl b/templates/translations/dynamic-activity-custom-translations/src/main/resources/en_US/dynamicActivity/dynamic_activity_fans_en_US.ftl
new file mode 100644
index 0000000..d330297
--- /dev/null
+++ b/templates/translations/dynamic-activity-custom-translations/src/main/resources/en_US/dynamicActivity/dynamic_activity_fans_en_US.ftl
@@ -0,0 +1 @@
+Made with the Fans™
\ No newline at end of file
diff --git a/templates/translations/dynamic-activity-custom-translations/src/main/resources/en_US/dynamicActivity/dynamic_activity_help_en_US.ftl b/templates/translations/dynamic-activity-custom-translations/src/main/resources/en_US/dynamicActivity/dynamic_activity_help_en_US.ftl
new file mode 100644
index 0000000..cf5694f
--- /dev/null
+++ b/templates/translations/dynamic-activity-custom-translations/src/main/resources/en_US/dynamicActivity/dynamic_activity_help_en_US.ftl
@@ -0,0 +1 @@
+Use ;help
\ No newline at end of file
diff --git a/templates/translations/dynamic-activity-custom-translations/src/main/resources/en_US/dynamicActivity/dynamic_activity_modmail_en_US.ftl b/templates/translations/dynamic-activity-custom-translations/src/main/resources/en_US/dynamicActivity/dynamic_activity_modmail_en_US.ftl
new file mode 100644
index 0000000..a813911
--- /dev/null
+++ b/templates/translations/dynamic-activity-custom-translations/src/main/resources/en_US/dynamicActivity/dynamic_activity_modmail_en_US.ftl
@@ -0,0 +1 @@
+DM to contact mods
\ No newline at end of file
diff --git a/templates/translations/pom.xml b/templates/translations/pom.xml
index dfbb72b..e62afd5 100644
--- a/templates/translations/pom.xml
+++ b/templates/translations/pom.xml
@@ -16,5 +16,6 @@
setup-translations
referral-translations
faq-translations
+ dynamic-activity-custom-translations
\ No newline at end of file