From 9374dfb912a6defdb1eea62785638ad1a3618fb2 Mon Sep 17 00:00:00 2001
From: Sheldan <5037282+Sheldan@users.noreply.github.com>
Date: Wed, 1 Jul 2020 20:44:21 +0200
Subject: [PATCH] added liquibase for setup of databases and initial values
fixed some table names to be singular migrated templates to separate
repository added seed data to initial version in liquibase migrations instead
of property files (post targets, emotes etc) and created some default tables
containing those default values added separate artifacts to be used
containing only the liquibase config added shell script as a wrapper for
ansible deployment, to handle an environment variable defining whether or not
the deployment should be executed added logback scan period added licenses
for ansible, liquibase, docker and docker-compose
---
.github/workflows/release.yml | 2 +-
README.md | 2 +-
.../experience-tracking-impl/pom.xml | 23 +
.../src/main/assembly/liquibase.xml | 18 +
.../experience/config/ExperienceConfig.java | 33 -
.../config/ExperienceConfigListener.java | 9 +-
.../ExperienceDefaultConfigListener.java | 32 -
.../config/ExperienceLevelLoader.java | 30 -
.../config/ExperienceProperties.java | 9 -
.../src/main/resources/experience.properties | 16 -
.../migrations/1.0-experience/collection.xml | 11 +
.../experience-seedData/command.xml | 81 +
.../experience-seedData/data.xml | 16 +
.../experience-seedData/default_config.xml | 28 +
.../default_feature_flag.xml | 18 +
.../experience-seedData/experience_job.xml | 19 +
.../experience-seedData/experience_level.xml | 417 +++++
.../experience-seedData/feature.xml | 16 +
.../experience-seedData/module.xml | 16 +
.../disabled_experience_roles.xml | 24 +
.../experience-tables/experience_level.xml | 19 +
.../experience-tables/experience_role.xml | 37 +
.../experience-tables/tables.xml | 13 +
.../experience-tables/user_experience.xml | 32 +
.../resources/migrations/dbchangelog-3.8.xsd | 1377 +++++++++++++++++
.../migrations/experience-changeLog.xml | 10 +
.../leaderboard_post_embed_en_US.ftl | 21 -
..._disabled_experience_roles_embed_en_US.ftl | 21 -
.../commands/rank/rank_post_embed_en_US.ftl | 38 -
.../user_sync_status_message_embed_en_US.ftl | 3 -
.../config/ExperienceConfigListenerTest.java | 57 -
.../ExperienceDefaultConfigListenerTest.java | 54 -
.../moderation/moderation-impl/pom.xml | 23 +
.../src/main/assembly/liquibase.xml | 18 +
.../moderation/config/ModerationConfig.java | 10 -
.../ModerationDefaultConfigListener.java | 26 -
.../listener/WarnDecayConfigListener.java | 8 +-
.../migrations/1.0-moderation/collection.xml | 11 +
.../moderation-seedData/command.xml | 134 ++
.../moderation-seedData/data.xml | 17 +
.../moderation-seedData/default_config.xml | 19 +
.../default_feature_flag.xml | 48 +
.../default_posttarget.xml | 48 +
.../moderation-seedData/feature.xml | 36 +
.../moderation-seedData/module.xml | 16 +
.../moderation-seedData/un_mute_job.xml | 18 +
.../moderation-seedData/warn_decay_job.xml | 19 +
.../1.0-moderation/moderation-tables/mute.xml | 51 +
.../moderation-tables/mute_role.xml | 35 +
.../moderation-tables/tables.xml | 13 +
.../moderation-tables/user_note.xml | 26 +
.../moderation-tables/warning.xml | 36 +
.../resources/migrations/dbchangelog-3.8.xsd | 1377 +++++++++++++++++
.../migrations/moderation-changeLog.xml | 10 +
.../src/main/resources/moderation.properties | 23 -
.../command/ban/ban_log_embed_en_US.ftl | 32 -
.../command/banId_log_embed_en_US.ftl | 28 -
.../command/kick/kick_log_embed_en_US.ftl | 32 -
.../user_notes_response_embed_en_US.ftl | 31 -
.../command/mute/mute_log_embed_en_US.ftl | 44 -
.../command/mute/unmute_log_embed_en_US.ftl | 55 -
.../myWarnings_response_embed_en_US.ftl | 14 -
.../purge/purge_status_update_en_US.ftl | 1 -
.../command/slowMode/slowmode_log_en_US.ftl | 1 -
.../unMute_has_no_active_mute_en_US.ftl | 1 -
.../command/warn/warn_log_embed_en_US.ftl | 41 -
.../warnings_response_paginator_en_US.ftl | 7 -
.../warnings/warnings_warn_entry_en_US.ftl | 11 -
.../no_message_found_exception_en_US.ftl | 1 -
.../note_not_found_exception_en_US.ftl | 1 -
...message_deleted_attachment_embed_en_US.ftl | 12 -
.../message_deleted_embed_en_US.ftl | 22 -
.../message_edited_embed_en_US.ftl | 26 -
.../warnDecay/warn_decay_log_embed_en_US.ftl | 15 -
.../moderation/models/database/Mute.java | 2 +-
.../moderation/models/database/UserNote.java | 2 +-
.../modmail/modmail-impl/pom.xml | 23 +-
.../src/main/assembly/liquibase.xml | 18 +
.../ModMailDefaultConfigListener.java | 33 -
.../main/resources/config/modmail.properties | 5 -
.../migrations/1.0-modmail/collection.xml | 11 +
.../1.0-modmail/modMail-seedData/command.xml | 82 +
.../1.0-modmail/modMail-seedData/data.xml | 16 +
.../modMail-seedData/default_config.xml | 18 +
.../modMail-seedData/default_emote.xml | 17 +
.../modMail-seedData/default_feature_flag.xml | 19 +
.../modMail-seedData/default_posttarget.xml | 17 +
.../1.0-modmail/modMail-seedData/feature.xml | 16 +
.../1.0-modmail/modMail-seedData/module.xml | 16 +
.../modMail-tables/modmail_messages.xml | 31 +
.../modMail-tables/modmail_roles.xml | 30 +
.../modMail-tables/modmail_subscriber.xml | 31 +
.../modMail-tables/modmail_threads.xml | 38 +
.../1.0-modmail/modMail-tables/tables.xml | 13 +
.../resources/migrations/dbchangelog-3.8.xsd | 1377 +++++++++++++++++
.../migrations/modMail-changeLog.xml | 10 +
...mail_thread_already_exists_embed_en_US.ftl | 18 -
.../modmail_category_not_setup_en_US.ftl | 1 -
...tion_cannot_delete_channel_embed_en_US.ftl | 12 -
...eption_cannot_message_user_embed_en_US.ftl | 12 -
..._to_create_mod_mail_thread_embed_en_US.ftl | 12 -
.../modmail_exception_generic_embed_en_US.ftl | 12 -
...on_post_target_not_defined_embed_en_US.ftl | 12 -
...tup_category_not_valid_exception_en_US.ftl | 1 -
.../modmail_modal_server_choice_en_US.ftl | 5 -
...odmail_no_server_available_embed_en_US.ftl | 8 -
...dmail_notification_message_embed_en_US.ftl | 19 -
.../modmail_user_message_embed_en_US.ftl | 23 -
.../modmail_close_header_embed_en_US.ftl | 15 -
...dmail_close_logged_message_embed_en_US.ftl | 21 -
...dmail_closing_user_message_embed_en_US.ftl | 8 -
.../modmail_staff_message_embed_en_US.ftl | 20 -
.../modmail_thread_header_embed_en_US.ftl | 15 -
.../setup_modmail_category_action_en_US.ftl | 1 -
.../setup_modmail_category_message_en_US.ftl | 1 -
.../modmail/config/ModMailProperties.java | 9 -
.../models/database/ModMailThread.java | 2 +-
.../database/ModMailThreadSubscriber.java | 4 +-
.../utility/utility-impl/pom.xml | 24 +
.../src/main/assembly/liquibase.xml | 18 +
.../utility/config/StarboardConfig.java | 17 -
.../config/StarboardConfigListener.java | 14 +-
.../StarboardDefaultConfigListener.java | 29 -
.../utility/config/UtilityConfig.java | 10 -
.../utility/service/StarboardServiceBean.java | 11 +-
.../StarboardFeatureValidatorService.java | 9 +-
.../migrations/1.0-utility/collection.xml | 11 +
.../1.0-utility/utility-seedData/command.xml | 92 ++
.../1.0-utility/utility-seedData/data.xml | 16 +
.../utility-seedData/default_config.xml | 38 +
.../utility-seedData/default_emote.xml | 67 +
.../utility-seedData/default_feature_flag.xml | 42 +
.../utility-seedData/default_posttarget.xml | 20 +
.../1.0-utility/utility-seedData/feature.xml | 32 +
.../utility-seedData/reminder_job.xml | 18 +
.../utility-tables/embedded_message.xml | 54 +
.../1.0-utility/utility-tables/reminder.xml | 43 +
.../1.0-utility/utility-tables/starboard.xml | 42 +
.../utility-tables/starboard_post.xml | 28 +
.../1.0-utility/utility-tables/suggestion.xml | 35 +
.../1.0-utility/utility-tables/tables.xml | 14 +
.../resources/migrations/dbchangelog-3.8.xsd | 1377 +++++++++++++++++
.../migrations/utility-changeLog.xml | 10 +
.../remind/remind_reminder_embed_en_US.ftl | 27 -
.../remind/remind_response_embed_en_US.ftl | 15 -
.../reminders_response_embed_en_US.ftl | 24 -
...verinfo_embed_emotes_field_title_en_US.ftl | 1 -
.../serverinfo_response_embed_en_US.ftl | 43 -
.../showAvatar_response_embed_en_US.ftl | 24 -
.../showEmote/showEmote_response_en_US.ftl | 1 -
.../starStats_response_embed_en_US.ftl | 53 -
.../suggest/suggest_log_embed_en_US.ftl | 35 -
.../userInfo_response_embed_en_US.ftl | 49 -
.../embed/message_embed_embed_en_US.ftl | 34 -
.../starboard/starboard_post_embed_en_US.ftl | 49 -
.../src/main/resources/utility.properties | 32 -
.../config/StarboardConfigListenerTest.java | 21 +-
.../StarboardDefaultConfigListenerTest.java | 47 -
.../service/StarboardServiceBeanTest.java | 17 +-
.../StarboardFeatureValidatorServiceTest.java | 20 +-
abstracto-application/bundle/pom.xml | 8 +-
abstracto-application/core/core-impl/pom.xml | 25 +
.../core-impl/src/main/assembly/liquibase.xml | 18 +
.../core/command/config/CommandConfig.java | 10 -
.../config/CommandCreationListener.java | 52 -
.../command/repository/CommandRepository.java | 5 +-
.../core/command/service/CommandManager.java | 10 +-
.../CommandManagementServiceBean.java | 12 +-
.../abstracto/core/commands/utility/Echo.java | 3 +-
.../abstracto/core/commands/utility/Ping.java | 3 +-
.../core/config/DynamicKeyLoader.java | 41 -
.../core/config/FeatureConfigLoader.java | 21 -
.../core/config/FeatureListener.java | 26 -
.../listener/CoreDefaultConfigListener.java | 26 -
.../listener/CoreServiceConfigListener.java | 8 +-
.../core/listener/FeatureFlagListener.java | 26 +-
.../core/listener/LockStartupListener.java | 21 -
.../repository/DefaultEmoteRepository.java | 10 +
.../DefaultFeatureFlagRepository.java | 9 +
.../DefaultPostTargetRepository.java | 9 +
.../core/repository/LockRepository.java | 2 +-
.../core/service/EmoteServiceBean.java | 6 +-
.../core/service/LockServiceBean.java | 16 +-
.../core/service/PostTargetServiceBean.java | 14 +-
.../DefaultEmoteManagementServiceBean.java | 31 +
...faultFeatureFlagManagementServiceBean.java | 26 +
...efaultPostTargetManagementServiceBean.java | 26 +
.../EmoteManagementServiceBean.java | 5 +-
.../management/PostTargetManagementBean.java | 7 +-
.../src/main/resources/abstracto.properties | 6 -
.../src/main/resources/commands.properties | 3 -
.../resources/config/application.properties | 2 +-
.../core-impl/src/main/resources/logback.xml | 2 +-
.../migrations/1.0-core/collection.xml | 11 +
.../1.0-core/core-seedData/command.xml | 179 +++
.../1.0-core/core-seedData/data.xml | 16 +
.../1.0-core/core-seedData/default_config.xml | 18 +
.../1.0-core/core-seedData/default_emote.xml | 32 +
.../core-seedData/default_feature_flag.xml | 18 +
.../1.0-core/core-seedData/feature.xml | 16 +
.../1.0-core/core-seedData/lock.xml | 14 +
.../1.0-core/core-seedData/module.xml | 28 +
.../1.0-core/core-tables/channel.xml | 25 +
.../1.0-core/core-tables/channel_group.xml | 60 +
.../1.0-core/core-tables/command.xml | 83 +
.../1.0-core/core-tables/default_config.xml | 22 +
.../1.0-core/core-tables/default_emote.xml | 20 +
.../core-tables/default_feature_flag.xml | 28 +
.../core-tables/default_post_target.xml | 19 +
.../migrations/1.0-core/core-tables/emote.xml | 29 +
.../1.0-core/core-tables/feature.xml | 19 +
.../1.0-core/core-tables/feature_flag.xml | 33 +
.../1.0-core/core-tables/feature_mode.xml | 25 +
.../migrations/1.0-core/core-tables/lock.xml | 16 +
.../1.0-core/core-tables/module.xml | 19 +
.../1.0-core/core-tables/post_target.xml | 31 +
.../migrations/1.0-core/core-tables/role.xml | 25 +
.../1.0-core/core-tables/server.xml | 18 +
.../1.0-core/core-tables/system_config.xml | 28 +
.../1.0-core/core-tables/tables.xml | 27 +
.../migrations/1.0-core/core-tables/users.xml | 40 +
.../resources/migrations/core-changeLog.xml | 10 +
.../resources/migrations/dbchangelog-3.8.xsd | 1377 +++++++++++++++++
.../disable_features_response_en_US.ftl | 1 -
.../coreCommands/echo/echo_response_en_US.ftl | 1 -
.../enable/enable_features_response_en_US.ftl | 1 -
.../features_response_embed_en_US.ftl | 15 -
...p_command_details_response_embed_en_US.ftl | 51 -
...lp_module_details_response_embed_en_US.ftl | 23 -
...p_module_overview_response_embed_en_US.ftl | 19 -
...listChannelGroups_response_embed_en_US.ftl | 24 -
.../coreCommands/ping/ping_response_en_US.ftl | 1 -
.../posttarget_invalid_target_en_US.ftl | 1 -
.../posttarget_show_targets_embed_en_US.ftl | 19 -
.../setup_cancellation_notification_en_US.ftl | 1 -
.../setup_completion_notification_en_US.ftl | 1 -
.../setup/setup_confirmation_en_US.ftl | 5 -
.../setup/setup_initial_message_en_US.ftl | 1 -
.../setup/setup_post_target_action_en_US.ftl | 1 -
.../setup/setup_post_target_message_en_US.ftl | 1 -
.../setup_system_config_action_en_US.ftl | 1 -
.../setup_system_config_message_en_US.ftl | 1 -
.../templates/coreEvents/user_join_en_US.ftl | 1 -
.../templates/coreEvents/user_leave_en_US.ftl | 1 -
.../category_not_found_exception_en_US.ftl | 1 -
.../channel_group_exists_exception_en_US.ftl | 1 -
...hannel_group_not_found_exception_en_US.ftl | 1 -
.../channel_not_found_exception_en_US.ftl | 1 -
.../exceptions/command_not_found_en_US.ftl | 1 -
.../command_not_found_exception_en_US.ftl | 1 -
.../config_key_not_found_exception_en_US.ftl | 1 -
...er_in_server_not_found_exception_en_US.ftl | 1 -
.../exceptions/could_not_find_role_en_US.ftl | 1 -
...on_invalid_time_format_exception_en_US.ftl | 1 -
.../emote_not_defined_exception_en_US.ftl | 1 -
.../emote_not_found_exception_en_US.ftl | 1 -
.../feature_disabled_message_en_US.ftl | 1 -
...feature_mode_not_correct_message_en_US.ftl | 1 -
.../feature_mode_not_found_en_US.ftl | 1 -
.../exceptions/feature_not_found_en_US.ftl | 1 -
.../guild_not_found_exception_en_US.ftl | 1 -
.../exceptions/immune_role_en_US.ftl | 1 -
.../exceptions/incorrect_parameters_en_US.ftl | 1 -
.../insufficient_parameters_en_US.ftl | 1 -
.../exceptions/insufficient_role_en_US.ftl | 1 -
.../member_not_found_exception_en_US.ftl | 1 -
.../no_feature_command_found_en_US.ftl | 1 -
.../exceptions/parameter_too_long_en_US.ftl | 1 -
.../post_target_not_found_en_US.ftl | 1 -
.../post_target_not_valid_en_US.ftl | 1 -
.../role_not_found_in_db_exception_en_US.ftl | 1 -
...ole_not_found_in_guild_exception_en_US.ftl | 1 -
...up_no_channel_provided_exception_en_US.ftl | 1 -
.../exceptions/setup_step_exception_en_US.ftl | 1 -
.../general/config_key_not_setup_en_US.ftl | 1 -
.../general/emote_not_setup_en_US.ftl | 1 -
.../feature_not_setup_message_en_US.ftl | 6 -
.../general/post_target_not_setup_en_US.ftl | 1 -
.../exception/CommandNotFoundException.java | 3 +
.../command/models/database/ACommand.java | 17 +
.../models/database/ACommandInAServer.java | 2 +-
.../core/command/models/database/AModule.java | 17 +
.../management/CommandManagementService.java | 3 +
.../config/FeaturePropertiesConfig.java | 13 -
.../core/models/database/AChannel.java | 2 -
.../core/models/database/ADefaultConfig.java | 2 +-
.../core/models/database/AFeature.java | 17 +
.../core/models/database/AFeatureMode.java | 2 +-
.../core/models/database/AServer.java | 7 +-
.../abstracto/core/models/database/AUser.java | 2 +-
.../core/models/database/DefaultEmote.java | 64 +
.../models/database/DefaultFeatureFlag.java | 73 +
.../models/database/DefaultPostTarget.java | 45 +
.../abstracto/core/service/LockService.java | 1 -
.../DefaultEmoteManagementService.java | 11 +
.../DefaultFeatureFlagManagementService.java | 10 +
.../DefaultPostTargetManagementService.java | 10 +
abstracto-application/coverage/pom.xml | 5 -
abstracto-application/installer/pom.xml | 60 +
.../installer/src/main/docker/Dockerfile | 37 +
.../installer/src/main/docker/docker.xml | 28 +
.../ansible/group_vars/all/python.yml | 1 +
.../src/main/resources/ansible/playbook.yaml | 8 +
.../roles/database/files/deploy_templates.py | 35 +
.../database/tasks/deploy_artifacts.yaml | 10 +
.../tasks/deploy_liquibase_change_log.yaml | 46 +
.../tasks/deploy_template_artifact.yaml | 35 +
.../ansible/roles/database/tasks/main.yaml | 23 +
.../templates/liquibase.properties.j2 | 6 +
.../ansible/roles/database/vars/main.yaml | 19 +
.../src/main/resources/wrapper/deploy.sh | 17 +
abstracto-application/pom.xml | 2 +-
.../scheduling/scheduling-impl/pom.xml | 22 +
.../src/main/assembly/liquibase.xml | 18 +
.../scheduling/config/JobConfigLoader.java | 20 -
.../factory/SchedulerJobConverter.java | 26 -
.../model/SchedulerJobProperties.java | 39 -
.../service/SchedulerStartupService.java | 18 +-
.../migrations/1.0-scheduling/collection.xml | 10 +
.../scheduling-tables/qrtz_blob_triggers.xml | 27 +
.../scheduling-tables/qrtz_calendars.xml | 22 +
.../scheduling-tables/qrtz_cron_triggers.xml | 29 +
.../scheduling-tables/qrtz_fired_triggers.xml | 85 +
.../scheduling-tables/qrtz_job_details.xml | 52 +
.../scheduling-tables/qrtz_locks.xml | 19 +
.../qrtz_paused_trigger_grps.xml | 19 +
.../qrtz_scheduler_state.xml | 25 +
.../qrtz_simple_triggers.xml | 36 +
.../qrtz_simprop_triggers.xml | 38 +
.../scheduling-tables/qrtz_triggers.xml | 133 ++
.../scheduling-tables/scheduler_job.xml | 26 +
.../scheduling-tables/tables.xml | 21 +
.../resources/migrations/dbchangelog-3.8.xsd | 1377 +++++++++++++++++
.../migrations/scheduling-changeLog.xml | 10 +
abstracto-application/template-config/pom.xml | 17 -
.../addToChannelGroup_description_en_US.ftl | 1 -
.../help/addToChannelGroup_example_en_US.ftl | 1 -
.../addToChannelGroup_long_help_en_US.ftl | 1 -
...ToChannelGroup_parameter_channel_en_US.ftl | 1 -
...addToChannelGroup_parameter_name_en_US.ftl | 1 -
.../help/addToChannelGroup_usage_en_US.ftl | 1 -
.../allow/help/allow_description_en_US.ftl | 1 -
.../allow/help/allow_long_help_en_US.ftl | 1 -
.../help/allow_parameter_component_en_US.ftl | 1 -
.../commands/allow/help/allow_usage_en_US.ftl | 1 -
.../help/allowRole_description_en_US.ftl | 1 -
.../help/allowRole_example_en_US.ftl | 1 -
.../help/allowRole_long_help_en_US.ftl | 4 -
.../allowRole_parameter_component_en_US.ftl | 1 -
.../help/allowRole_parameter_role_en_US.ftl | 1 -
.../allowRole/help/allowRole_usage_en_US.ftl | 1 -
.../help/clearCache_description_en_US.ftl | 1 -
.../help/clearCache_long_help_en_US.ftl | 1 -
.../help/clearCache_usage_en_US.ftl | 1 -
.../createChannelGroup_description_en_US.ftl | 1 -
.../createChannelGroup_long_help_en_US.ftl | 1 -
...reateChannelGroup_parameter_name_en_US.ftl | 1 -
.../help/createChannelGroup_usage_en_US.ftl | 1 -
.../deleteChannelGroup_description_en_US.ftl | 1 -
.../deleteChannelGroup_long_help_en_US.ftl | 1 -
...eleteChannelGroup_parameter_name_en_US.ftl | 1 -
.../help/deleteChannelGroup_usage_en_US.ftl | 1 -
.../help/disAllowRole_description_en_US.ftl | 1 -
.../help/disAllowRole_example_en_US.ftl | 1 -
.../help/disAllowRole_long_help_en_US.ftl | 5 -
...disAllowRole_parameter_component_en_US.ftl | 1 -
.../disAllowRole_parameter_role_en_US.ftl | 1 -
.../help/disAllowRole_usage_en_US.ftl | 1 -
.../disable_available_features_en_US.ftl | 1 -
.../help/disable_description_en_US.ftl | 1 -
.../disable/help/disable_example_en_US.ftl | 1 -
.../disable/help/disable_long_help_en_US.ftl | 3 -
.../disable_parameter_featureName_en_US.ftl | 1 -
.../disable/help/disable_usage_en_US.ftl | 1 -
.../help/disableCommand_description_en_US.ftl | 1 -
.../help/disableCommand_example_en_US.ftl | 1 -
.../help/disableCommand_long_help_en_US.ftl | 2 -
...mmand_parameter_channelGroupName_en_US.ftl | 1 -
...bleCommand_parameter_commandName_en_US.ftl | 1 -
.../help/disableCommand_usage_en_US.ftl | 1 -
.../echo/help/echo_description_en_US.ftl | 1 -
.../echo/help/echo_long_help_en_US.ftl | 1 -
.../echo/help/echo_parameter_input_en_US.ftl | 1 -
.../commands/echo/help/echo_usage_en_US.ftl | 1 -
.../enable_available_features_en_US.ftl | 1 -
.../enable/help/enable_description_en_US.ftl | 1 -
.../enable/help/enable_example_en_US.ftl | 1 -
.../enable/help/enable_long_help_en_US.ftl | 2 -
.../enable_parameter_featureName_en_US.ftl | 1 -
.../enable/help/enable_usage_en_US.ftl | 1 -
.../help/enableCommand_description_en_US.ftl | 1 -
.../help/enableCommand_example_en_US.ftl | 1 -
.../help/enableCommand_long_help_en_US.ftl | 2 -
...mmand_parameter_channelGroupName_en_US.ftl | 1 -
...bleCommand_parameter_commandName_en_US.ftl | 1 -
.../help/enableCommand_usage_en_US.ftl | 1 -
.../features/help/feature_embed_key_en_US.ftl | 1 -
.../help/features_description_en_US.ftl | 1 -
.../help/features_embed_title_en_US.ftl | 1 -
.../help/features_long_help_en_US.ftl | 1 -
.../features/help/features_usage_en_US.ftl | 1 -
...lp_command_embed_command_aliases_en_US.ftl | 1 -
...ommand_embed_command_description_en_US.ftl | 1 -
...mand_embed_command_detailed_help_en_US.ftl | 1 -
...lp_command_embed_command_example_en_US.ftl | 1 -
...mand_embed_command_executable_by_en_US.ftl | 1 -
...bed_command_executable_by_nobody_en_US.ftl | 1 -
...elp_command_embed_command_immune_en_US.ftl | 1 -
...ommand_embed_command_immune_none_en_US.ftl | 1 -
.../help_command_embed_command_name_en_US.ftl | 1 -
...mand_embed_command_no_parameters_en_US.ftl | 1 -
...and_embed_command_not_restricted_en_US.ftl | 1 -
...p_command_embed_command_optional_en_US.ftl | 1 -
...command_embed_command_parameters_en_US.ftl | 1 -
...mmand_embed_command_restrictions_en_US.ftl | 1 -
...help_command_embed_command_usage_en_US.ftl | 1 -
.../help_command_embed_or_en_US.ftl | 1 -
.../help_command_embed_title_en_US.ftl | 1 -
.../help/help/help_description_en_US.ftl | 1 -
.../help/help/help_long_help_en_US.ftl | 4 -
.../help/help/help_parameter_name_en_US.ftl | 1 -
.../commands/help/help/help_usage_en_US.ftl | 1 -
.../help_command_embed_hint_footer_en_US.ftl | 1 -
.../help_module_embed_commands_en_US.ftl | 1 -
..._module_embed_module_description_en_US.ftl | 1 -
.../help_module_embed_module_name_en_US.ftl | 1 -
.../help_module_embed_sub_modules_en_US.ftl | 1 -
.../help_module_embed_title_en_US.ftl | 1 -
.../help_modules_embed_footer_hint_en_US.ftl | 1 -
.../help_modules_embed_title_en_US.ftl | 1 -
.../listChannelGroups_description_en_US.ftl | 1 -
.../listChannelGroups_long_help_en_US.ftl | 1 -
.../help/listChannelGroups_usage_en_US.ftl | 1 -
.../listChannelGroups_embed_title_en_US.ftl | 1 -
...stChannelGroups_no_channel_group_en_US.ftl | 1 -
.../help/makeAffected_description_en_US.ftl | 1 -
.../help/makeAffected_example_en_US.ftl | 1 -
.../help/makeAffected_long_help_en_US.ftl | 5 -
...makeAffected_parameter_component_en_US.ftl | 1 -
.../makeAffected_parameter_role_en_US.ftl | 1 -
.../help/makeAffected_usage_en_US.ftl | 1 -
.../help/makeImmune_description_en_US.ftl | 1 -
.../help/makeImmune_example_en_US.ftl | 1 -
.../help/makeImmune_long_help_en_US.ftl | 5 -
.../makeImmune_parameter_component_en_US.ftl | 1 -
.../help/makeImmune_parameter_role_en_US.ftl | 1 -
.../help/makeImmune_usage_en_US.ftl | 1 -
.../ping/help/ping_description_en_US.ftl | 1 -
.../ping/help/ping_latency_response_en_US.ftl | 1 -
.../ping/help/ping_long_help_en_US.ftl | 1 -
.../commands/ping/help/ping_usage_en_US.ftl | 1 -
.../help/posttarget_description_en_US.ftl | 1 -
.../help/posttarget_example_en_US.ftl | 1 -
.../help/posttarget_long_help_en_US.ftl | 3 -
.../posttarget_parameter_channel_en_US.ftl | 1 -
.../help/posttarget_parameter_name_en_US.ftl | 1 -
.../help/posttarget_usage_en_US.ftl | 1 -
...osttarget_available_post_targets_en_US.ftl | 1 -
.../posttarget_embed_title_en_US.ftl | 1 -
...get_invalid_post_target_response_en_US.ftl | 1 -
.../posttarget_no_channel_en_US.ftl | 1 -
...posttarget_no_post_targets_found_en_US.ftl | 1 -
.../posttarget_post_target_text_en_US.ftl | 1 -
...moveFromChannelGroup_description_en_US.ftl | 1 -
.../removeFromChannelGroup_example_en_US.ftl | 1 -
...removeFromChannelGroup_long_help_en_US.ftl | 1 -
...omChannelGroup_parameter_channel_en_US.ftl | 1 -
...eFromChannelGroup_parameter_name_en_US.ftl | 1 -
.../removeFromChannelGroup_usage_en_US.ftl | 1 -
.../help/restrict_description_en_US.ftl | 1 -
.../help/restrict_long_help_en_US.ftl | 3 -
.../restrict_parameter_component_en_US.ftl | 1 -
.../restrict/help/restrict_usage_en_US.ftl | 1 -
.../help/setConfig_description_en_US.ftl | 1 -
.../help/setConfig_example_en_US.ftl | 1 -
.../help/setConfig_long_help_en_US.ftl | 1 -
.../help/setConfig_parameter_key_en_US.ftl | 1 -
.../help/setConfig_parameter_value_en_US.ftl | 1 -
.../setConfig/help/setConfig_usage_en_US.ftl | 1 -
.../help/setEmote_description_en_US.ftl | 1 -
.../help/setEmote_long_help_en_US.ftl | 1 -
.../setEmote_parameter_emoteKey_en_US.ftl | 1 -
.../help/setEmote_parameter_emote_en_US.ftl | 1 -
.../setEmote/help/setEmote_usage_en_US.ftl | 1 -
.../help/setMode_description_en_US.ftl | 1 -
.../setMode/help/setMode_example_en_US.ftl | 1 -
.../setMode/help/setMode_long_help_en_US.ftl | 1 -
.../help/setMode_parameter_feature_en_US.ftl | 1 -
.../help/setMode_parameter_newMode_en_US.ftl | 1 -
.../setMode/help/setMode_usage_en_US.ftl | 1 -
.../help/setPrefix_description_en_US.ftl | 1 -
.../help/setPrefix_long_help_en_US.ftl | 2 -
.../help/setPrefix_parameter_prefix_en_US.ftl | 1 -
.../setPrefix/help/setPrefix_usage_en_US.ftl | 1 -
.../setup/help/setup_description_en_US.ftl | 1 -
.../setup/help/setup_long_help_en_US.ftl | 2 -
.../help/setup_parameter_feature_en_US.ftl | 1 -
.../commands/setup/help/setup_usage_en_US.ftl | 1 -
.../setup_cancellation_message_en_US.ftl | 1 -
.../setup/setup_completion_message_en_US.ftl | 1 -
.../setup/setup_confirmation_title_en_US.ftl | 1 -
.../setup_initial_message_display_en_US.ftl | 1 -
.../en_US/core/config/core_feature_en_US.ftl | 1 -
.../core/config/setup_config_cat_en_US.ftl | 1 -
.../setup_configuration_timeout_en_US.ftl | 1 -
...setup_post_target_action_display_en_US.ftl | 1 -
...setup_post_target_no_channel_set_en_US.ftl | 1 -
...tup_system_config_action_display_en_US.ftl | 1 -
...ategory_not_found_exception_text_en_US.ftl | 1 -
...nnel_group_exists_exception_text_en_US.ftl | 1 -
...l_group_not_found_exception_text_en_US.ftl | 1 -
...channel_not_found_exception_text_en_US.ftl | 1 -
...command_not_found_exception_text_en_US.ftl | 1 -
.../command_not_found_text_en_US.ftl | 1 -
...fig_key_not_found_exception_text_en_US.ftl | 1 -
..._server_not_found_exception_text_en_US.ftl | 1 -
.../could_not_find_role_text_en_US.ftl | 1 -
...valid_time_format_exception_text_en_US.ftl | 1 -
...emote_not_defined_exception_text_en_US.ftl | 1 -
.../emote_not_found_exception_text_en_US.ftl | 1 -
.../exception/feature_disabled_text_en_US.ftl | 1 -
.../feature_mode_not_correct_text_en_US.ftl | 1 -
.../feature_mode_not_found_text_en_US.ftl | 1 -
.../feature_not_found_text_en_US.ftl | 1 -
.../guild_not_found_exception_text_en_US.ftl | 1 -
.../core/exception/immune_role_text_en_US.ftl | 1 -
.../incorrect_parameters_text_en_US.ftl | 1 -
.../insufficient_parameters_text_en_US.ftl | 1 -
.../insufficient_role_text_en_US.ftl | 1 -
...member_not_foound_exception_text_en_US.ftl | 1 -
.../no_feature_command_found_text_en_US.ftl | 1 -
.../parameter_too_long_text_en_US.ftl | 1 -
.../post_target_not_found_text_en_US.ftl | 1 -
.../post_target_not_valid_text_en_US.ftl | 1 -
...e_not_found_in_db_exception_text_en_US.ftl | 1 -
...ot_found_in_guild_exception_text_en_US.ftl | 1 -
..._channel_provided_exception_text_en_US.ftl | 1 -
.../setup_step_exception_message_en_US.ftl | 1 -
.../config_key_not_setup_text_en_US.ftl | 1 -
.../en_US/core/general/duration_day_en_US.ftl | 1 -
.../core/general/duration_days_en_US.ftl | 1 -
.../core/general/duration_hour_en_US.ftl | 1 -
.../core/general/duration_hours_en_US.ftl | 1 -
.../core/general/duration_minute_en_US.ftl | 1 -
.../core/general/duration_minutes_en_US.ftl | 1 -
.../core/general/duration_second_en_US.ftl | 1 -
.../core/general/duration_seconds_en_US.ftl | 1 -
.../general/embed_page_count_page_en_US.ftl | 1 -
.../emote_key_not_setup_text_en_US.ftl | 1 -
.../feature_not_setup_message_text_en_US.ftl | 1 -
.../post_target_not_setup_text_en_US.ftl | 1 -
.../core/general/user_left_server_en_US.ftl | 1 -
.../disableExpForRole_description_en_US.ftl | 1 -
.../disableExpForRole_long_help_en_US.ftl | 2 -
...disableExpForRole_parameter_role_en_US.ftl | 1 -
.../help/disableExpForRole_usage_en_US.ftl | 1 -
.../help/disableExpGain_description_en_US.ftl | 1 -
.../help/disableExpGain_long_help_en_US.ftl | 1 -
.../disableExpGain_parameter_user_en_US.ftl | 1 -
.../help/disableExpGain_usage_en_US.ftl | 1 -
.../enableExpForRole_description_en_US.ftl | 1 -
.../help/enableExpForRole_long_help_en_US.ftl | 1 -
.../enableExpForRole_parameter_role_en_US.ftl | 1 -
.../help/enableExpForRole_usage_en_US.ftl | 1 -
.../help/enableExpGain_description_en_US.ftl | 1 -
.../help/enableExpGain_long_help_en_US.ftl | 1 -
.../enableExpGain_parameter_user_en_US.ftl | 1 -
.../help/enableExpGain_usage_en_US.ftl | 1 -
.../help/expScale_description_en_US.ftl | 1 -
.../help/expScale_long_help_en_US.ftl | 2 -
.../help/expScale_parameter_scale_en_US.ftl | 1 -
.../expScale/help/expScale_usage_en_US.ftl | 1 -
.../help/leaderboard_description_en_US.ftl | 1 -
.../help/leaderboard_long_help_en_US.ftl | 3 -
.../help/leaderboard_parameter_page_en_US.ftl | 1 -
.../help/leaderboard_usage_en_US.ftl | 1 -
.../leaderboard_experience_column_en_US.ftl | 1 -
.../leaderboard_level_column_en_US.ftl | 1 -
.../leaderboard_messages_column_en_US.ftl | 1 -
.../leaderboard_name_column_en_US.ftl | 1 -
.../leaderboard_rank_column_en_US.ftl | 1 -
...abledExperienceRoles_description_en_US.ftl | 1 -
...isabledExperienceRoles_long_help_en_US.ftl | 1 -
...istDisabledExperienceRoles_usage_en_US.ftl | 1 -
..._experience_roles_embed_no_roles_en_US.ftl | 1 -
...led_experience_roles_embed_title_en_US.ftl | 1 -
.../rank/help/rank_description_en_US.ftl | 1 -
.../rank/help/rank_long_help_en_US.ftl | 1 -
.../commands/rank/help/rank_usage_en_US.ftl | 1 -
.../rank/rank_level_field_title_en_US.ftl | 1 -
.../rank/rank_messages_field_title_en_US.ftl | 1 -
.../rank/rank_rank_field_title_en_US.ftl | 1 -
.../rank_to_next_level_field_title_en_US.ftl | 1 -
.../rank/rank_xp_field_title_en_US.ftl | 1 -
.../help/setExpRole_description_en_US.ftl | 1 -
.../help/setExpRole_example_en_US.ftl | 1 -
.../help/setExpRole_long_help_en_US.ftl | 2 -
.../help/setExpRole_parameter_level_en_US.ftl | 1 -
.../help/setExpRole_parameter_role_en_US.ftl | 1 -
.../help/setExpRole_usage_en_US.ftl | 1 -
.../help/syncExpRoles_description_en_US.ftl | 1 -
.../help/syncExpRoles_long_help_en_US.ftl | 3 -
.../help/syncExpRoles_usage_en_US.ftl | 1 -
...yncExpRoles_updating_users_label_en_US.ftl | 1 -
.../help/unSetExpRole_description_en_US.ftl | 1 -
.../help/unSetExpRole_long_help_en_US.ftl | 3 -
.../unSetExpRole_parameter_role_en_US.ftl | 1 -
.../help/unSetExpRole_usage_en_US.ftl | 1 -
.../config/experience_feature_en_US.ftl | 1 -
.../setup_config_expMultiplier_en_US.ftl | 1 -
.../config/setup_config_maxExp_en_US.ftl | 1 -
.../config/setup_config_minExp_en_US.ftl | 1 -
.../commands/ban/ban_default_reason_en_US.ftl | 1 -
.../ban_log_banned_user_field_title_en_US.ftl | 1 -
...ban_log_banning_user_field_title_en_US.ftl | 1 -
.../ban_log_jump_link_field_title_en_US.ftl | 1 -
.../ban/ban_log_reason_field_title_en_US.ftl | 1 -
.../commands/ban/ban_log_title_en_US.ftl | 1 -
.../commands/ban/ban_notification_en_US.ftl | 1 -
.../ban/help/ban_description_en_US.ftl | 1 -
.../commands/ban/help/ban_example_en_US.ftl | 1 -
.../commands/ban/help/ban_long_help_en_US.ftl | 1 -
.../ban/help/ban_parameter_reason_en_US.ftl | 1 -
.../ban/help/ban_parameter_user_en_US.ftl | 1 -
.../commands/ban/help/ban_usage_en_US.ftl | 1 -
.../banId/help/banId_description_en_US.ftl | 1 -
.../banId/help/banId_example_en_US.ftl | 1 -
.../banId/help/banId_long_help_en_US.ftl | 1 -
.../help/banId_parameter_reason_en_US.ftl | 1 -
.../banId/help/banId_parameter_user_en_US.ftl | 1 -
.../commands/banId/help/banId_usage_en_US.ftl | 1 -
.../decayAllWarnings_description_en_US.ftl | 1 -
.../help/decayAllWarnings_long_help_en_US.ftl | 1 -
...ayAllWarnings_parameter_writeLog_en_US.ftl | 1 -
.../help/decayAllWarnings_usage_en_US.ftl | 1 -
.../help/decayWarnings_description_en_US.ftl | 1 -
.../help/decayWarnings_long_help_en_US.ftl | 1 -
.../help/decayWarnings_usage_en_US.ftl | 1 -
.../help/deleteWarning_description_en_US.ftl | 1 -
.../help/deleteWarning_long_help_en_US.ftl | 1 -
.../deleteWarning_parameter_warnId_en_US.ftl | 1 -
.../help/deleteWarning_usage_en_US.ftl | 1 -
.../kick/help/kick_description_en_US.ftl | 1 -
.../commands/kick/help/kick_example_en_US.ftl | 1 -
.../kick/help/kick_long_help_en_US.ftl | 1 -
.../kick/help/kick_parameter_reason_en_US.ftl | 1 -
.../kick/help/kick_parameter_user_en_US.ftl | 1 -
.../commands/kick/help/kick_usage_en_US.ftl | 1 -
.../kick/kick_default_reason_en_US.ftl | 1 -
.../kick_log_jump_link_field_title_en_US.ftl | 1 -
...kick_log_kicked_user_field_title_en_US.ftl | 1 -
...ick_log_kicking_user_field_title_en_US.ftl | 1 -
.../kick_log_reason_field_title_en_US.ftl | 1 -
.../commands/kick/kick_log_title_en_US.ftl | 1 -
.../commands/kick/kick_notification_en_US.ftl | 1 -
.../mute/help/mute_description_en_US.ftl | 1 -
.../commands/mute/help/mute_example_en_US.ftl | 1 -
.../mute/help/mute_long_help_en_US.ftl | 10 -
.../help/mute_parameter_duration_en_US.ftl | 1 -
.../mute/help/mute_parameter_reason_en_US.ftl | 1 -
.../mute/help/mute_parameter_user_en_US.ftl | 1 -
.../commands/mute/help/mute_usage_en_US.ftl | 1 -
...te_log_mute_duration_field_title_en_US.ftl | 1 -
.../mute/mute_log_mute_id_footer_en_US.ftl | 1 -
...te_log_mute_location_field_title_en_US.ftl | 1 -
...mute_log_mute_reason_field_title_en_US.ftl | 1 -
...mute_log_muted_until_field_title_en_US.ftl | 1 -
.../mute_log_muted_user_field_title_en_US.ftl | 1 -
...mute_log_muting_user_field_title_en_US.ftl | 1 -
.../commands/mute/mute_log_title_en_US.ftl | 1 -
.../commands/mute/mute_notification_en_US.ftl | 1 -
...Mute_log_muted_since_field_title_en_US.ftl | 1 -
.../commands/mute/unMute_log_title_en_US.ftl | 1 -
...ute_log_unmuted_user_field_title_en_US.ftl | 1 -
.../help/myWarnings_description_en_US.ftl | 1 -
.../help/myWarnings_long_help_en_US.ftl | 1 -
.../help/myWarnings_usage_en_US.ftl | 1 -
...ngs_with_decay_embed_description_en_US.ftl | 1 -
.../purge/help/purge_description_en_US.ftl | 1 -
.../purge/help/purge_long_help_en_US.ftl | 6 -
.../help/purge_parameter_amount_en_US.ftl | 1 -
.../help/purge_parameter_member_en_US.ftl | 1 -
.../commands/purge/help/purge_usage_en_US.ftl | 1 -
.../purge_status_update_message_en_US.ftl | 1 -
.../help/setMuteRole_description_en_US.ftl | 1 -
.../help/setMuteRole_long_help_en_US.ftl | 2 -
.../help/setMuteRole_parameter_role_en_US.ftl | 1 -
.../help/setMuteRole_usage_en_US.ftl | 1 -
.../slowMode/help/slowMode_example_en_US.ftl | 1 -
.../help/slowMode_parameter_channel_en_US.ftl | 1 -
.../slowMode_parameter_duration_en_US.ftl | 1 -
.../help/slowmode_description_en_US.ftl | 1 -
.../help/slowmode_long_help_en_US.ftl | 8 -
.../slowMode/help/slowmode_usage_en_US.ftl | 1 -
.../unMute/help/unMute_description_en_US.ftl | 1 -
.../unMute/help/unMute_long_help_en_US.ftl | 1 -
.../help/unMute_parameter_user_en_US.ftl | 1 -
.../unMute/help/unMute_usage_en_US.ftl | 1 -
...nMute_has_no_active_mute_message_en_US.ftl | 1 -
.../help/userNotes_description_en_US.ftl | 1 -
.../help/userNotes_long_help_en_US.ftl | 1 -
.../help/userNotes_parameter_user_en_US.ftl | 1 -
.../userNotes/help/userNotes_usage_en_US.ftl | 1 -
.../user_notes_embed_title_en_US.ftl | 1 -
.../user_notes_embed_user_title_en_US.ftl | 1 -
.../userNotes/user_notes_no_notes_en_US.ftl | 1 -
.../userNotes/user_notes_note_entry_en_US.ftl | 1 -
.../warn/help/warn_description_en_US.ftl | 1 -
.../commands/warn/help/warn_example_en_US.ftl | 1 -
.../warn/help/warn_long_help_en_US.ftl | 1 -
.../warn/help/warn_parameter_reason_en_US.ftl | 1 -
.../warn/help/warn_parameter_user_en_US.ftl | 1 -
.../commands/warn/help/warn_usage_en_US.ftl | 1 -
.../warn/warn_default_reason_en_US.ftl | 1 -
.../commands/warn/warn_log_title_en_US.ftl | 1 -
.../warn/warn_log_warn_id_footer_en_US.ftl | 1 -
...rn_log_warn_location_field_title_en_US.ftl | 1 -
...warn_log_warn_reason_field_title_en_US.ftl | 1 -
...warn_log_warned_user_field_title_en_US.ftl | 1 -
...arn_log_warning_user_field_title_en_US.ftl | 1 -
.../commands/warn/warn_notification_en_US.ftl | 1 -
.../help/warnings_description_en_US.ftl | 1 -
.../help/warnings_long_help_en_US.ftl | 2 -
.../help/warnings_parameter_user_en_US.ftl | 1 -
.../warnings/help/warnings_usage_en_US.ftl | 1 -
.../warnings/warnings_header_text_en_US.ftl | 1 -
.../warnings_warn_entry_text_en_US.ftl | 1 -
.../warnings_warn_is_decayed_en_US.ftl | 1 -
.../config/logging_feature_en_US.ftl | 1 -
.../config/moderation_feature_en_US.ftl | 1 -
.../config/muting_feature_en_US.ftl | 1 -
.../config/setup_config_decayDays_en_US.ftl | 1 -
.../config/setup_posttarget_banLog_en_US.ftl | 1 -
.../setup_posttarget_decayLog_en_US.ftl | 1 -
.../setup_posttarget_deleteLog_en_US.ftl | 1 -
.../config/setup_posttarget_editLog_en_US.ftl | 1 -
.../config/setup_posttarget_joinLog_en_US.ftl | 1 -
.../config/setup_posttarget_kickLog_en_US.ftl | 1 -
.../setup_posttarget_leaveLog_en_US.ftl | 1 -
.../config/setup_posttarget_muteLog_en_US.ftl | 1 -
.../config/setup_posttarget_warnLog_en_US.ftl | 1 -
.../config/userNotes_feature_en_US.ftl | 1 -
.../config/warnDecay_feature_en_US.ftl | 1 -
.../config/warnings_feature_en_US.ftl | 1 -
..._message_found_exception_message_en_US.ftl | 1 -
...note_not_found_exception_message_en_US.ftl | 1 -
.../job/warnDecay_log_no_warnings_en_US.ftl | 1 -
.../job/warnDecay_log_warn_entry_en_US.ftl | 1 -
.../moderation/job/warnDecay_title_en_US.ftl | 1 -
...messageDeleted_attachment_footer_en_US.ftl | 1 -
...ted_attachment_link_display_text_en_US.ftl | 1 -
...eted_attachment_link_field_title_en_US.ftl | 1 -
.../messageDeleted_description_text_en_US.ftl | 1 -
...Deleted_message_link_field_title_en_US.ftl | 1 -
...ted_original_message_field_title_en_US.ftl | 1 -
.../messageEdited_description_text_en_US.ftl | 1 -
.../messageEdited_link_field_title_en_US.ftl | 1 -
...geEdited_new_message_field_title_en_US.ftl | 1 -
...ted_original_message_field_title_en_US.ftl | 1 -
.../message_embed_embed_description_en_US.ftl | 1 -
.../message_embed_embed_embeds_name_en_US.ftl | 1 -
.../message_embed_embed_image_url_en_US.ftl | 1 -
...mbed_embed_quoted_by_field_title_en_US.ftl | 1 -
...mbed_embed_quoted_by_field_value_en_US.ftl | 1 -
.../user_joined/user_joined_text_en_US.ftl | 1 -
.../user_left/user_left_text_en_US.ftl | 1 -
.../modmail_anonymous_message_note_en_US.ftl | 1 -
...dmail_closing_notification_title_en_US.ftl | 1 -
.../modmail_close_default_note_en_US.ftl | 1 -
...closing_user_message_description_en_US.ftl | 1 -
.../help/anonReply_description_en_US.ftl | 1 -
.../help/anonReply_long_help_en_US.ftl | 3 -
.../help/anonReply_parameter_text_en_US.ftl | 1 -
.../anonReply/help/anonReply_usage_en_US.ftl | 1 -
.../close/close_closing_description_en_US.ftl | 1 -
...se_failed_to_delete_text_channel_en_US.ftl | 1 -
.../close/help/close_description_en_US.ftl | 1 -
.../close/help/close_long_help_en_US.ftl | 1 -
.../close/help/close_parameter_note_en_US.ftl | 1 -
.../commands/close/help/close_usage_en_US.ftl | 1 -
.../help/closeNoLog_description_en_US.ftl | 1 -
.../help/closeNoLog_long_help_en_US.ftl | 1 -
.../help/closeNoLog_usage_en_US.ftl | 1 -
.../help/closeSilently_description_en_US.ftl | 1 -
.../help/closeSilently_long_help_en_US.ftl | 1 -
.../closeSilently_parameter_note_en_US.ftl | 1 -
.../help/closeSilently_usage_en_US.ftl | 1 -
.../help/contact_description_en_US.ftl | 1 -
.../contact/help/contact_long_help_en_US.ftl | 1 -
.../help/contact_parameter_user_en_US.ftl | 1 -
.../contact/help/contact_usage_en_US.ftl | 1 -
...thread_link_content_display_text_en_US.ftl | 1 -
...existing_thread_link_field_title_en_US.ftl | 1 -
.../modmail_thread_already_exists_en_US.ftl | 1 -
.../removeModMailRole_description_en_US.ftl | 1 -
.../removeModMailRole_long_help_en_US.ftl | 2 -
...removeModMailRole_parameter_role_en_US.ftl | 1 -
.../removeModMailRole_usage_en_US.ftl | 1 -
.../reply/help/reply_description_en_US.ftl | 1 -
...ption_cannot_send_message_to_use_en_US.ftl | 1 -
.../reply/help/reply_long_help_en_US.ftl | 1 -
.../reply/help/reply_parameter_text_en_US.ftl | 1 -
.../commands/reply/help/reply_usage_en_US.ftl | 1 -
.../setModMailCategory_description_en_US.ftl | 1 -
.../setModMailCategory_long_help_en_US.ftl | 1 -
...ailCategory_parameter_categoryId_en_US.ftl | 1 -
.../help/setModMailCategory_usage_en_US.ftl | 1 -
.../help/setModMailRole_description_en_US.ftl | 1 -
.../help/setModMailRole_long_help_en_US.ftl | 2 -
.../setModMailRole_parameter_role_en_US.ftl | 1 -
.../help/setModMailRole_usage_en_US.ftl | 1 -
.../help/subscribe_description_en_US.ftl | 1 -
.../help/subscribe_long_help_en_US.ftl | 1 -
.../subscribe/help/subscribe_usage_en_US.ftl | 1 -
.../help/unSubscribe_description_en_US.ftl | 1 -
.../help/unSubscribe_long_help_en_US.ftl | 1 -
.../help/unSubscribe_usage_en_US.ftl | 1 -
.../modmail/config/modmail_feature_en_US.ftl | 1 -
.../config/modmail_help_module_info_en_US.ftl | 1 -
.../config/modmail_logging_feature_en_US.ftl | 1 -
.../setup_config_modMailClosingText_en_US.ftl | 1 -
..._modmail_category_action_display_en_US.ftl | 1 -
...modmail_category_message_display_en_US.ftl | 1 -
...ail_category_message_no_category_en_US.ftl | 1 -
.../setup_posttarget_modmailLog_en_US.ftl | 1 -
.../setup_posttarget_modmailPing_en_US.ftl | 1 -
...ail_already_subscribed_exception_en_US.ftl | 1 -
...nd_modmail_thread_exception_text_en_US.ftl | 1 -
...failed_to_create_mod_mail_thread_en_US.ftl | 1 -
...odmail_failed_to_forward_message_en_US.ftl | 1 -
.../exception/modmail_generic_error_en_US.ftl | 1 -
.../modmail_no_server_available_en_US.ftl | 1 -
.../modmail_not_in_modmail_thread_en_US.ftl | 1 -
...modmail_not_subscribed_exception_en_US.ftl | 1 -
.../modmail_post_target_error_en_US.ftl | 1 -
...gory_not_valid_exception_message_en_US.ftl | 1 -
.../modmail_category_not_setup_text_en_US.ftl | 1 -
..._chooser_server_list_description_en_US.ftl | 2 -
...notification_message_description_en_US.ftl | 1 -
...dmail_notification_message_title_en_US.ftl | 1 -
..._thread_header_embed_description_en_US.ftl | 3 -
.../modmail_thread_header_no_roles_en_US.ftl | 1 -
...dmail_thread_staff_message_title_en_US.ftl | 1 -
...odmail_thread_user_message_title_en_US.ftl | 1 -
.../accept/help/accept_description_en_US.ftl | 1 -
.../accept/help/accept_example_en_US.ftl | 1 -
.../accept/help/accept_long_help_en_US.ftl | 1 -
.../accept_parameter_suggestionId_en_US.ftl | 1 -
.../help/accept_parameter_text_en_US.ftl | 1 -
.../accept/help/accept_usage_en_US.ftl | 1 -
.../reject/help/reject_description_en_US.ftl | 1 -
.../reject/help/reject_example_en_US.ftl | 1 -
.../reject/help/reject_long_help_en_US.ftl | 1 -
.../reject_parameter_suggestionId_en_US.ftl | 1 -
.../help/reject_parameter_text_en_US.ftl | 1 -
.../reject/help/reject_usage_en_US.ftl | 1 -
.../remind/help/remind_description_en_US.ftl | 1 -
.../remind/help/remind_example_en_US.ftl | 1 -
.../remind/help/remind_long_help_en_US.ftl | 9 -
.../help/remind_parameter_duration_en_US.ftl | 1 -
.../remind_parameter_remindText_en_US.ftl | 1 -
.../remind/help/remind_usage_en_US.ftl | 1 -
.../remind_reminder_description_en_US.ftl | 1 -
...nd_reminder_duration_field_title_en_US.ftl | 1 -
...minder_link_content_display_text_en_US.ftl | 1 -
...remind_reminder_link_field_title_en_US.ftl | 1 -
...remind_reminder_note_field_title_en_US.ftl | 1 -
...emind_reminding_description_text_en_US.ftl | 1 -
.../help/reminders_description_en_US.ftl | 1 -
.../help/reminders_long_help_en_US.ftl | 1 -
.../reminders/help/reminders_usage_en_US.ftl | 1 -
.../reminders/reminders_due_on_en_US.ftl | 1 -
.../reminders_reminder_field_title_en_US.ftl | 1 -
.../reminders_reminders_embed_title_en_US.ftl | 1 -
.../help/serverInfo_description_en_US.ftl | 1 -
.../help/serverInfo_long_help_en_US.ftl | 1 -
.../help/serverInfo_usage_en_US.ftl | 1 -
...erinfo_embed_created_field_title_en_US.ftl | 1 -
...embed_emotes_field_title_message_en_US.ftl | 1 -
..._embed_emotes_title_total_emotes_en_US.ftl | 1 -
...rinfo_embed_features_field_title_en_US.ftl | 1 -
.../serverinfo_embed_id_field_title_en_US.ftl | 1 -
...erinfo_embed_members_field_title_en_US.ftl | 1 -
...rverinfo_embed_owner_field_title_en_US.ftl | 1 -
...nfo_embed_role_count_field_title_en_US.ftl | 1 -
.../serverinfo_embed_title_en_US.ftl | 1 -
.../help/showAvatar_description_en_US.ftl | 1 -
.../help/showAvatar_long_help_en_US.ftl | 2 -
.../showAvatar_parameter_member_en_US.ftl | 1 -
.../help/showAvatar_usage_en_US.ftl | 1 -
...response_embed_image_field_title_en_US.ftl | 1 -
..._embed_image_field_value_display_en_US.ftl | 1 -
..._response_embed_user_field_title_en_US.ftl | 1 -
.../help/showEmote_description_en_US.ftl | 1 -
.../help/showEmote_long_help_en_US.ftl | 1 -
.../help/showEmote_parameter_emote_en_US.ftl | 1 -
.../showEmote/help/showEmote_usage_en_US.ftl | 1 -
.../showEmote/showEmote_link_en_US.ftl | 1 -
.../showEmote/showEmote_name_en_US.ftl | 1 -
.../help/starStats_description_en_US.ftl | 1 -
.../help/starStats_long_help_en_US.ftl | 1 -
.../startStats/help/starStats_usage_en_US.ftl | 1 -
.../starStats_no_starred_messages_en_US.ftl | 1 -
.../starStats_receiver_entry_en_US.ftl | 1 -
...rStats_receiver_entry_left_guild_en_US.ftl | 1 -
.../starStats_response_title_en_US.ftl | 1 -
.../starStats_starred_entry_en_US.ftl | 1 -
.../starStats_starrer_entry_en_US.ftl | 1 -
...arStats_starrer_entry_left_guild_en_US.ftl | 1 -
...arStats_top_receiver_field_title_en_US.ftl | 1 -
...tarStats_top_starred_field_title_en_US.ftl | 1 -
...tarStats_top_starrer_field_title_en_US.ftl | 1 -
.../startStats_description_en_US.ftl | 1 -
.../help/suggest_description_en_US.ftl | 1 -
.../suggest/help/suggest_long_help_en_US.ftl | 2 -
.../help/suggest_parameter_text_en_US.ftl | 1 -
.../suggest/help/suggest_usage_en_US.ftl | 1 -
.../suggest/suggest_accepted_by_en_US.ftl | 1 -
.../suggest_link_display_value_en_US.ftl | 0
.../suggest_link_field_title_en_US.ftl | 0
.../suggest/suggest_rejected_by_en_US.ftl | 1 -
.../suggest_suggestion_id_footer_en_US.ftl | 1 -
.../help/unRemind_description_en_US.ftl | 1 -
.../help/unRemind_long_help_en_US.ftl | 1 -
.../unRemind_parameter_reminderId_en_US.ftl | 1 -
.../unRemind/help/unRemind_usage_en_US.ftl | 1 -
.../help/userInfo_description_en_US.ftl | 1 -
.../help/userInfo_long_help_en_US.ftl | 1 -
.../help/userInfo_parameter_member_en_US.ftl | 3 -
.../userInfo/help/userInfo_usage_en_US.ftl | 1 -
...ponse_embed_activity_field_title_en_US.ftl | 1 -
...fo_response_embed_id_field_title_en_US.ftl | 1 -
...esponse_embed_joined_field_title_en_US.ftl | 1 -
...ponse_embed_nickname_field_title_en_US.ftl | 1 -
...nse_embed_registered_field_title_en_US.ftl | 1 -
...esponse_embed_status_field_title_en_US.ftl | 1 -
.../config/link_embeds_feature_en_US.ftl | 1 -
.../utility/config/remind_feature_en_US.ftl | 1 -
.../setup_posttarget_starboard_en_US.ftl | 1 -
.../setup_posttarget_suggestions_en_US.ftl | 1 -
.../config/starboard_feature_en_US.ftl | 1 -
.../config/suggestion_feature_en_US.ftl | 1 -
.../utility/config/utility_feature_en_US.ftl | 1 -
...eminder_does_not_exist_exception_en_US.ftl | 1 -
...gestion_does_not_exist_exception_en_US.ftl | 1 -
...rd_post_embed_additional_message_en_US.ftl | 1 -
...starboard_post_embed_description_en_US.ftl | 1 -
...starboard_post_embed_embeds_name_en_US.ftl | 1 -
.../starboard_post_embed_image_url_en_US.ftl | 1 -
..._post_embed_original_field_title_en_US.ftl | 1 -
.../templating/templating-impl/pom.xml | 24 +-
.../src/main/assembly/liquibase.xml | 18 +
.../config/TemplateSeedDataLoader.java | 52 -
.../migrations/1.0-templating/collection.xml | 10 +
.../templating-tables/tables.xml | 10 +
.../templating-tables/template.xml | 21 +
.../resources/migrations/dbchangelog-3.8.xsd | 1377 +++++++++++++++++
.../migrations/templating-changeLog.xml | 10 +
.../builtins/duration_formatting_en_US.ftl | 1 -
.../embeds/builtins/emote_mention_en_US.ftl | 1 -
.../embeds/embed_page_count_en_US.ftl | 1 -
bundled-licenses/not-packaged/ansible/COPYING | 674 ++++++++
bundled-licenses/not-packaged/compose/LICENSE | 191 +++
bundled-licenses/not-packaged/docker/LICENSE | 201 +++
.../not-packaged/liquibase/LICENSE.txt | 202 +++
965 files changed, 15775 insertions(+), 2935 deletions(-)
create mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/assembly/liquibase.xml
delete mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/config/ExperienceConfig.java
delete mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/config/ExperienceDefaultConfigListener.java
delete mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/config/ExperienceLevelLoader.java
delete mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/config/ExperienceProperties.java
delete mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/experience.properties
create mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/collection.xml
create mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/command.xml
create mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/data.xml
create mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/default_config.xml
create mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/default_feature_flag.xml
create mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/experience_job.xml
create mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/experience_level.xml
create mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/feature.xml
create mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/module.xml
create mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-tables/disabled_experience_roles.xml
create mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-tables/experience_level.xml
create mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-tables/experience_role.xml
create mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-tables/tables.xml
create mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-tables/user_experience.xml
create mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/dbchangelog-3.8.xsd
create mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/experience-changeLog.xml
delete mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/templates/commands/leaderboard/leaderboard_post_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/templates/commands/listDisabledExperienceRoles/list_disabled_experience_roles_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/templates/commands/rank/rank_post_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/templates/commands/syncExpRoles/user_sync_status_message_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/test/java/dev/sheldan/abstracto/experience/config/ExperienceConfigListenerTest.java
delete mode 100644 abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/test/java/dev/sheldan/abstracto/experience/config/ExperienceDefaultConfigListenerTest.java
create mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/assembly/liquibase.xml
delete mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/config/ModerationConfig.java
delete mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/listener/ModerationDefaultConfigListener.java
create mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/collection.xml
create mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/command.xml
create mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/data.xml
create mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/default_config.xml
create mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/default_feature_flag.xml
create mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/default_posttarget.xml
create mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/feature.xml
create mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/module.xml
create mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/un_mute_job.xml
create mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/warn_decay_job.xml
create mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-tables/mute.xml
create mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-tables/mute_role.xml
create mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-tables/tables.xml
create mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-tables/user_note.xml
create mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-tables/warning.xml
create mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/dbchangelog-3.8.xsd
create mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/moderation-changeLog.xml
delete mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/moderation.properties
delete mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/ban/ban_log_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/banId_log_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/kick/kick_log_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/listNotes/user_notes_response_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/mute/mute_log_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/mute/unmute_log_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/myWarnings/myWarnings_response_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/purge/purge_status_update_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/slowMode/slowmode_log_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/unMute/unMute_has_no_active_mute_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/warn/warn_log_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/warnings/warnings_response_paginator_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/warnings/warnings_warn_entry_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/exception/no_message_found_exception_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/exception/note_not_found_exception_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/listener/message_deleted/message_deleted_attachment_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/listener/message_deleted/message_deleted_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/listener/message_edited/message_edited_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/scheduler/warnDecay/warn_decay_log_embed_en_US.ftl
create mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/assembly/liquibase.xml
delete mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/listener/ModMailDefaultConfigListener.java
delete mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/config/modmail.properties
create mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/collection.xml
create mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/command.xml
create mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/data.xml
create mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/default_config.xml
create mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/default_emote.xml
create mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/default_feature_flag.xml
create mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/default_posttarget.xml
create mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/feature.xml
create mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/module.xml
create mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-tables/modmail_messages.xml
create mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-tables/modmail_roles.xml
create mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-tables/modmail_subscriber.xml
create mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-tables/modmail_threads.xml
create mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-tables/tables.xml
create mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/dbchangelog-3.8.xsd
create mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/modMail-changeLog.xml
delete mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/command/contact/modmail_thread_already_exists_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_category_not_setup_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_exception_cannot_delete_channel_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_exception_cannot_message_user_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_exception_failed_to_create_mod_mail_thread_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_exception_generic_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_exception_post_target_not_defined_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/setup_category_not_valid_exception_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/listener/messageReceived/modmail_modal_server_choice_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/listener/messageReceived/modmail_no_server_available_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/listener/messageReceived/modmail_notification_message_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/listener/messageReceived/modmail_user_message_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/closing/logging/modmail_close_header_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/closing/logging/modmail_close_logged_message_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/closing/modmail_closing_user_message_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/modmail_staff_message_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/modmail_thread_header_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/setup/setup_modmail_category_action_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/setup/setup_modmail_category_message_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/config/ModMailProperties.java
create mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/assembly/liquibase.xml
delete mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/config/StarboardConfig.java
delete mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/config/StarboardDefaultConfigListener.java
delete mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/config/UtilityConfig.java
create mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/collection.xml
create mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/command.xml
create mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/data.xml
create mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/default_config.xml
create mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/default_emote.xml
create mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/default_feature_flag.xml
create mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/default_posttarget.xml
create mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/feature.xml
create mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/reminder_job.xml
create mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/embedded_message.xml
create mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/reminder.xml
create mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/starboard.xml
create mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/starboard_post.xml
create mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/suggestion.xml
create mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/tables.xml
create mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/dbchangelog-3.8.xsd
create mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/utility-changeLog.xml
delete mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/remind/remind_reminder_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/remind/remind_response_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/reminders/reminders_response_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/serverInfo/serverinfo_embed_emotes_field_title_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/serverInfo/serverinfo_response_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/showAvatar/showAvatar_response_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/showEmote/showEmote_response_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/starStats/starStats_response_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/suggest/suggest_log_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/userInfo/userInfo_response_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/listener/embed/message_embed_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/listener/starboard/starboard_post_embed_en_US.ftl
delete mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/utility.properties
delete mode 100644 abstracto-application/abstracto-modules/utility/utility-impl/src/test/java/dev/sheldan/abstracto/utility/config/StarboardDefaultConfigListenerTest.java
create mode 100644 abstracto-application/core/core-impl/src/main/assembly/liquibase.xml
delete mode 100644 abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/config/CommandConfig.java
delete mode 100644 abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/config/CommandCreationListener.java
delete mode 100644 abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/config/DynamicKeyLoader.java
delete mode 100644 abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/config/FeatureConfigLoader.java
delete mode 100644 abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/config/FeatureListener.java
delete mode 100644 abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/listener/CoreDefaultConfigListener.java
delete mode 100644 abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/listener/LockStartupListener.java
create mode 100644 abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/DefaultEmoteRepository.java
create mode 100644 abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/DefaultFeatureFlagRepository.java
create mode 100644 abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/DefaultPostTargetRepository.java
create mode 100644 abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultEmoteManagementServiceBean.java
create mode 100644 abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultFeatureFlagManagementServiceBean.java
create mode 100644 abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultPostTargetManagementServiceBean.java
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/commands.properties
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/collection.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/command.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/data.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/default_config.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/default_emote.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/default_feature_flag.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/feature.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/lock.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/module.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/channel.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/channel_group.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/command.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/default_config.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/default_emote.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/default_feature_flag.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/default_post_target.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/emote.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/feature.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/feature_flag.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/feature_mode.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/lock.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/module.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/post_target.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/role.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/server.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/system_config.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/tables.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/users.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/core-changeLog.xml
create mode 100644 abstracto-application/core/core-impl/src/main/resources/migrations/dbchangelog-3.8.xsd
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/disable/disable_features_response_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/echo/echo_response_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/enable/enable_features_response_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/features/features_response_embed_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/help/help_command_details_response_embed_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/help/help_module_details_response_embed_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/help/help_module_overview_response_embed_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/listChannelGroups/listChannelGroups_response_embed_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/ping/ping_response_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/posttarget/posttarget_invalid_target_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/posttarget/posttarget_show_targets_embed_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_cancellation_notification_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_completion_notification_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_confirmation_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_initial_message_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_post_target_action_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_post_target_message_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_system_config_action_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_system_config_message_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreEvents/user_join_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreEvents/user_leave_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/category_not_found_exception_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/channel_group_exists_exception_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/channel_group_not_found_exception_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/channel_not_found_exception_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/command_not_found_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/command_not_found_exception_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/config_key_not_found_exception_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/core_user_in_server_not_found_exception_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/could_not_find_role_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/duration_invalid_time_format_exception_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/emote_not_defined_exception_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/emote_not_found_exception_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/feature_disabled_message_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/feature_mode_not_correct_message_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/feature_mode_not_found_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/feature_not_found_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/guild_not_found_exception_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/immune_role_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/incorrect_parameters_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/insufficient_parameters_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/insufficient_role_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/member_not_found_exception_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/no_feature_command_found_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/parameter_too_long_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/post_target_not_found_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/post_target_not_valid_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/role_not_found_in_db_exception_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/role_not_found_in_guild_exception_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/setup_no_channel_provided_exception_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/setup_step_exception_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/general/config_key_not_setup_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/general/emote_not_setup_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/general/feature_not_setup_message_en_US.ftl
delete mode 100644 abstracto-application/core/core-impl/src/main/resources/seedData/templates/general/post_target_not_setup_en_US.ftl
delete mode 100644 abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/config/FeaturePropertiesConfig.java
create mode 100644 abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/DefaultEmote.java
create mode 100644 abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/DefaultFeatureFlag.java
create mode 100644 abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/DefaultPostTarget.java
create mode 100644 abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultEmoteManagementService.java
create mode 100644 abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultFeatureFlagManagementService.java
create mode 100644 abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultPostTargetManagementService.java
create mode 100644 abstracto-application/installer/pom.xml
create mode 100644 abstracto-application/installer/src/main/docker/Dockerfile
create mode 100644 abstracto-application/installer/src/main/docker/docker.xml
create mode 100644 abstracto-application/installer/src/main/resources/ansible/group_vars/all/python.yml
create mode 100644 abstracto-application/installer/src/main/resources/ansible/playbook.yaml
create mode 100644 abstracto-application/installer/src/main/resources/ansible/roles/database/files/deploy_templates.py
create mode 100644 abstracto-application/installer/src/main/resources/ansible/roles/database/tasks/deploy_artifacts.yaml
create mode 100644 abstracto-application/installer/src/main/resources/ansible/roles/database/tasks/deploy_liquibase_change_log.yaml
create mode 100644 abstracto-application/installer/src/main/resources/ansible/roles/database/tasks/deploy_template_artifact.yaml
create mode 100644 abstracto-application/installer/src/main/resources/ansible/roles/database/tasks/main.yaml
create mode 100644 abstracto-application/installer/src/main/resources/ansible/roles/database/templates/liquibase.properties.j2
create mode 100644 abstracto-application/installer/src/main/resources/ansible/roles/database/vars/main.yaml
create mode 100644 abstracto-application/installer/src/main/resources/wrapper/deploy.sh
create mode 100644 abstracto-application/scheduling/scheduling-impl/src/main/assembly/liquibase.xml
delete mode 100644 abstracto-application/scheduling/scheduling-impl/src/main/java/dev/sheldan/abstracto/scheduling/config/JobConfigLoader.java
delete mode 100644 abstracto-application/scheduling/scheduling-impl/src/main/java/dev/sheldan/abstracto/scheduling/factory/SchedulerJobConverter.java
delete mode 100644 abstracto-application/scheduling/scheduling-impl/src/main/java/dev/sheldan/abstracto/scheduling/model/SchedulerJobProperties.java
create mode 100644 abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/collection.xml
create mode 100644 abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_blob_triggers.xml
create mode 100644 abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_calendars.xml
create mode 100644 abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_cron_triggers.xml
create mode 100644 abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_fired_triggers.xml
create mode 100644 abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_job_details.xml
create mode 100644 abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_locks.xml
create mode 100644 abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_paused_trigger_grps.xml
create mode 100644 abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_scheduler_state.xml
create mode 100644 abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_simple_triggers.xml
create mode 100644 abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_simprop_triggers.xml
create mode 100644 abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_triggers.xml
create mode 100644 abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/scheduler_job.xml
create mode 100644 abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/tables.xml
create mode 100644 abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/dbchangelog-3.8.xsd
create mode 100644 abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/scheduling-changeLog.xml
delete mode 100644 abstracto-application/template-config/pom.xml
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_parameter_channel_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_parameter_name_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allow/help/allow_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allow/help/allow_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allow/help/allow_parameter_component_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allow/help/allow_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_parameter_component_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_parameter_role_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/clearCache/help/clearCache_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/clearCache/help/clearCache_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/clearCache/help/clearCache_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/createChannelGroup/help/createChannelGroup_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/createChannelGroup/help/createChannelGroup_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/createChannelGroup/help/createChannelGroup_parameter_name_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/createChannelGroup/help/createChannelGroup_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/deleteChannelGroup/help/deleteChannelGroup_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/deleteChannelGroup/help/deleteChannelGroup_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/deleteChannelGroup/help/deleteChannelGroup_parameter_name_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/deleteChannelGroup/help/deleteChannelGroup_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_parameter_component_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_parameter_role_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/disable_available_features_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/help/disable_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/help/disable_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/help/disable_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/help/disable_parameter_featureName_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/help/disable_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_parameter_channelGroupName_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_parameter_commandName_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/echo/help/echo_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/echo/help/echo_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/echo/help/echo_parameter_input_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/echo/help/echo_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/enable_available_features_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/help/enable_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/help/enable_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/help/enable_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/help/enable_parameter_featureName_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/help/enable_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_parameter_channelGroupName_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_parameter_commandName_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/features/help/feature_embed_key_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/features/help/features_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/features/help/features_embed_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/features/help/features_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/features/help/features_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_aliases_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_detailed_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_executable_by_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_executable_by_nobody_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_immune_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_immune_none_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_name_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_no_parameters_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_not_restricted_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_optional_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_parameters_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_restrictions_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_or_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/help/help_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/help/help_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/help/help_parameter_name_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/help/help_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_command_embed_hint_footer_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_module_embed_commands_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_module_embed_module_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_module_embed_module_name_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_module_embed_sub_modules_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_module_embed_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/modules_embed/help_modules_embed_footer_hint_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/modules_embed/help_modules_embed_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/listChannelGroups/help/listChannelGroups_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/listChannelGroups/help/listChannelGroups_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/listChannelGroups/help/listChannelGroups_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/listChannelGroups/listChannelGroups_embed_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/listChannelGroups/listChannelGroups_no_channel_group_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_parameter_component_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_parameter_role_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_parameter_component_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_parameter_role_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/ping/help/ping_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/ping/help/ping_latency_response_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/ping/help/ping_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/ping/help/ping_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_parameter_channel_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_parameter_name_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_available_post_targets_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_embed_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_invalid_post_target_response_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_no_channel_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_no_post_targets_found_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_post_target_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_parameter_channel_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_parameter_name_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/restrict/help/restrict_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/restrict/help/restrict_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/restrict/help/restrict_parameter_component_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/restrict/help/restrict_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_parameter_key_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_parameter_value_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setEmote/help/setEmote_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setEmote/help/setEmote_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setEmote/help/setEmote_parameter_emoteKey_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setEmote/help/setEmote_parameter_emote_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setEmote/help/setEmote_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_parameter_feature_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_parameter_newMode_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setPrefix/help/setPrefix_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setPrefix/help/setPrefix_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setPrefix/help/setPrefix_parameter_prefix_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setPrefix/help/setPrefix_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/help/setup_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/help/setup_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/help/setup_parameter_feature_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/help/setup_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/setup_cancellation_message_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/setup_completion_message_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/setup_confirmation_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/setup_initial_message_display_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/config/core_feature_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/config/setup_config_cat_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/config/setup_configuration_timeout_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/config/setup_post_target_action_display_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/config/setup_post_target_no_channel_set_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/config/setup_system_config_action_display_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/category_not_found_exception_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/channel_group_exists_exception_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/channel_group_not_found_exception_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/channel_not_found_exception_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/command_not_found_exception_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/command_not_found_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/config_key_not_found_exception_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/core_user_in_server_not_found_exception_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/could_not_find_role_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/duration_invalid_time_format_exception_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/emote_not_defined_exception_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/emote_not_found_exception_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/feature_disabled_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/feature_mode_not_correct_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/feature_mode_not_found_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/feature_not_found_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/guild_not_found_exception_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/immune_role_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/incorrect_parameters_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/insufficient_parameters_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/insufficient_role_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/member_not_foound_exception_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/no_feature_command_found_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/parameter_too_long_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/post_target_not_found_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/post_target_not_valid_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/role_not_found_in_db_exception_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/role_not_found_in_guild_exception_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/setup_no_channel_provided_exception_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/setup_step_exception_message_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/general/config_key_not_setup_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_day_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_days_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_hour_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_hours_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_minute_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_minutes_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_second_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_seconds_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/general/embed_page_count_page_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/general/emote_key_not_setup_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/general/feature_not_setup_message_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/general/post_target_not_setup_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/core/general/user_left_server_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpForRole/help/disableExpForRole_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpForRole/help/disableExpForRole_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpForRole/help/disableExpForRole_parameter_role_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpForRole/help/disableExpForRole_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpGain/help/disableExpGain_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpGain/help/disableExpGain_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpGain/help/disableExpGain_parameter_user_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpGain/help/disableExpGain_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpForRole/help/enableExpForRole_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpForRole/help/enableExpForRole_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpForRole/help/enableExpForRole_parameter_role_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpForRole/help/enableExpForRole_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpGain/help/enableExpGain_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpGain/help/enableExpGain_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpGain/help/enableExpGain_parameter_user_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpGain/help/enableExpGain_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/expScale/help/expScale_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/expScale/help/expScale_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/expScale/help/expScale_parameter_scale_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/expScale/help/expScale_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/help/leaderboard_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/help/leaderboard_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/help/leaderboard_parameter_page_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/help/leaderboard_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/leaderboard_experience_column_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/leaderboard_level_column_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/leaderboard_messages_column_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/leaderboard_name_column_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/leaderboard_rank_column_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/listDisabledExperienceRoles/help/listDisabledExperienceRoles_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/listDisabledExperienceRoles/help/listDisabledExperienceRoles_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/listDisabledExperienceRoles/help/listDisabledExperienceRoles_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/listDisabledExperienceRoles/list_disabled_experience_roles_embed_no_roles_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/listDisabledExperienceRoles/list_disabled_experience_roles_embed_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/help/rank_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/help/rank_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/help/rank_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/rank_level_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/rank_messages_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/rank_rank_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/rank_to_next_level_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/rank_xp_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_parameter_level_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_parameter_role_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/syncExpRoles/help/syncExpRoles_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/syncExpRoles/help/syncExpRoles_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/syncExpRoles/help/syncExpRoles_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/syncExpRoles/syncExpRoles_updating_users_label_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/unSetExpRole/help/unSetExpRole_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/unSetExpRole/help/unSetExpRole_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/unSetExpRole/help/unSetExpRole_parameter_role_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/unSetExpRole/help/unSetExpRole_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/config/experience_feature_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/config/setup_config_expMultiplier_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/config/setup_config_maxExp_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/experience/config/setup_config_minExp_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_default_reason_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_log_banned_user_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_log_banning_user_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_log_jump_link_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_log_reason_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_log_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_notification_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_parameter_reason_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_parameter_user_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_parameter_reason_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_parameter_user_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayAllWarnings/help/decayAllWarnings_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayAllWarnings/help/decayAllWarnings_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayAllWarnings/help/decayAllWarnings_parameter_writeLog_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayAllWarnings/help/decayAllWarnings_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayWarnings/help/decayWarnings_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayWarnings/help/decayWarnings_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayWarnings/help/decayWarnings_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/deleteWarning/help/deleteWarning_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/deleteWarning/help/deleteWarning_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/deleteWarning/help/deleteWarning_parameter_warnId_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/deleteWarning/help/deleteWarning_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_parameter_reason_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_parameter_user_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_default_reason_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_log_jump_link_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_log_kicked_user_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_log_kicking_user_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_log_reason_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_log_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_notification_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_parameter_duration_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_parameter_reason_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_parameter_user_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_mute_duration_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_mute_id_footer_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_mute_location_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_mute_reason_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_muted_until_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_muted_user_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_muting_user_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_notification_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/unMute_log_muted_since_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/unMute_log_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/unMute_log_unmuted_user_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/myWarnings/help/myWarnings_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/myWarnings/help/myWarnings_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/myWarnings/help/myWarnings_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/myWarnings/myWarnings_with_decay_embed_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/help/purge_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/help/purge_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/help/purge_parameter_amount_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/help/purge_parameter_member_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/help/purge_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/purge_status_update_message_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/setMuteRole/help/setMuteRole_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/setMuteRole/help/setMuteRole_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/setMuteRole/help/setMuteRole_parameter_role_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/setMuteRole/help/setMuteRole_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowMode_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowMode_parameter_channel_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowMode_parameter_duration_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowmode_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowmode_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowmode_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/unMute/help/unMute_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/unMute/help/unMute_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/unMute/help/unMute_parameter_user_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/unMute/help/unMute_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/unMute/unMute_has_no_active_mute_message_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/help/userNotes_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/help/userNotes_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/help/userNotes_parameter_user_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/help/userNotes_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/user_notes_embed_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/user_notes_embed_user_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/user_notes_no_notes_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/user_notes_note_entry_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_parameter_reason_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_parameter_user_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_default_reason_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_warn_id_footer_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_warn_location_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_warn_reason_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_warned_user_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_warning_user_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_notification_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/help/warnings_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/help/warnings_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/help/warnings_parameter_user_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/help/warnings_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/warnings_header_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/warnings_warn_entry_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/warnings_warn_is_decayed_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/logging_feature_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/moderation_feature_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/muting_feature_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_config_decayDays_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_banLog_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_decayLog_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_deleteLog_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_editLog_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_joinLog_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_kickLog_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_leaveLog_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_muteLog_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_warnLog_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/userNotes_feature_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/warnDecay_feature_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/warnings_feature_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/exception/no_message_found_exception_message_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/exception/note_not_found_exception_message_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/job/warnDecay_log_no_warnings_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/job/warnDecay_log_warn_entry_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/job/warnDecay_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_attachment_footer_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_attachment_link_display_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_attachment_link_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_description_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_message_link_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_original_message_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_edited/messageEdited_description_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_edited/messageEdited_link_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_edited/messageEdited_new_message_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_edited/messageEdited_original_message_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_embed/message_embed_embed_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_embed/message_embed_embed_embeds_name_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_embed/message_embed_embed_image_url_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_embed/message_embed_embed_quoted_by_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_embed/message_embed_embed_quoted_by_field_value_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/user_joined/user_joined_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/user_left/user_left_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/closing/logging/modmail_anonymous_message_note_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/closing/logging/modmail_closing_notification_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/closing/modmail_close_default_note_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/closing/modmail_closing_user_message_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/anonReply/help/anonReply_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/anonReply/help/anonReply_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/anonReply/help/anonReply_parameter_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/anonReply/help/anonReply_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/close_closing_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/close_failed_to_delete_text_channel_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/help/close_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/help/close_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/help/close_parameter_note_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/help/close_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeNoLog/help/closeNoLog_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeNoLog/help/closeNoLog_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeNoLog/help/closeNoLog_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeSilently/help/closeSilently_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeSilently/help/closeSilently_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeSilently/help/closeSilently_parameter_note_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeSilently/help/closeSilently_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/help/contact_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/help/contact_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/help/contact_parameter_user_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/help/contact_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/modmail_existing_thread_link_content_display_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/modmail_existing_thread_link_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/modmail_thread_already_exists_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/removeModMailRole.help/removeModMailRole_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/removeModMailRole.help/removeModMailRole_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/removeModMailRole.help/removeModMailRole_parameter_role_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/removeModMailRole.help/removeModMailRole_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/reply/help/reply_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/reply/help/reply_exception_cannot_send_message_to_use_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/reply/help/reply_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/reply/help/reply_parameter_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/reply/help/reply_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailCategory/help/setModMailCategory_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailCategory/help/setModMailCategory_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailCategory/help/setModMailCategory_parameter_categoryId_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailCategory/help/setModMailCategory_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailRole/help/setModMailRole_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailRole/help/setModMailRole_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailRole/help/setModMailRole_parameter_role_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailRole/help/setModMailRole_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/subscribe/help/subscribe_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/subscribe/help/subscribe_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/subscribe/help/subscribe_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/unSubscribe/help/unSubscribe_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/unSubscribe/help/unSubscribe_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/unSubscribe/help/unSubscribe_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/modmail_feature_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/modmail_help_module_info_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/modmail_logging_feature_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_config_modMailClosingText_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_modmail_category_action_display_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_modmail_category_message_display_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_modmail_category_message_no_category_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_posttarget_modmailLog_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_posttarget_modmailPing_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_already_subscribed_exception_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_cannot_find_modmail_thread_exception_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_failed_to_create_mod_mail_thread_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_failed_to_forward_message_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_generic_error_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_no_server_available_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_not_in_modmail_thread_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_not_subscribed_exception_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_post_target_error_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/setup_category_not_valid_exception_message_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/general/modmail_category_not_setup_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/listener/server_chooser/server_chooser_server_list_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/notification/modmail_notification_message_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/notification/modmail_notification_message_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/notification/modmail_thread_header_embed_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/notification/modmail_thread_header_no_roles_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/threadContent/modmail_thread_staff_message_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/modmail/threadContent/modmail_thread_user_message_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_parameter_suggestionId_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_parameter_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_parameter_suggestionId_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_parameter_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_example_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_parameter_duration_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_parameter_remindText_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminder_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminder_duration_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminder_link_content_display_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminder_link_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminder_note_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminding_description_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/help/reminders_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/help/reminders_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/help/reminders_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/reminders_due_on_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/reminders_reminder_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/reminders_reminders_embed_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/help/serverInfo_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/help/serverInfo_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/help/serverInfo_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_created_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_emotes_field_title_message_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_emotes_title_total_emotes_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_features_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_id_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_members_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_owner_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_role_count_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/help/showAvatar_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/help/showAvatar_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/help/showAvatar_parameter_member_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/help/showAvatar_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/showAvatar_response_embed_image_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/showAvatar_response_embed_image_field_value_display_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/showAvatar_response_embed_user_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/help/showEmote_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/help/showEmote_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/help/showEmote_parameter_emote_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/help/showEmote_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/showEmote_link_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/showEmote_name_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/help/starStats_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/help/starStats_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/help/starStats_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_no_starred_messages_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_receiver_entry_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_receiver_entry_left_guild_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_response_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_starred_entry_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_starrer_entry_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_starrer_entry_left_guild_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_top_receiver_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_top_starred_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_top_starrer_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/startStats_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/help/suggest_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/help/suggest_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/help/suggest_parameter_text_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/help/suggest_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/suggest_accepted_by_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/suggest_link_display_value_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/suggest_link_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/suggest_rejected_by_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/suggest_suggestion_id_footer_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/unRemind/help/unRemind_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/unRemind/help/unRemind_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/unRemind/help/unRemind_parameter_reminderId_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/unRemind/help/unRemind_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/help/userInfo_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/help/userInfo_long_help_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/help/userInfo_parameter_member_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/help/userInfo_usage_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_activity_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_id_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_joined_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_nickname_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_registered_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_status_field_title_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/link_embeds_feature_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/remind_feature_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/setup_posttarget_starboard_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/setup_posttarget_suggestions_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/starboard_feature_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/suggestion_feature_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/utility_feature_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/exception/reminder_does_not_exist_exception_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/exception/suggestion_does_not_exist_exception_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/listener/starboard_post/starboard_post_embed_additional_message_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/listener/starboard_post/starboard_post_embed_description_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/listener/starboard_post/starboard_post_embed_embeds_name_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/listener/starboard_post/starboard_post_embed_image_url_en_US.ftl
delete mode 100644 abstracto-application/template-config/src/main/resources/templates/en_US/utility/listener/starboard_post/starboard_post_embed_original_field_title_en_US.ftl
create mode 100644 abstracto-application/templating/templating-impl/src/main/assembly/liquibase.xml
delete mode 100644 abstracto-application/templating/templating-impl/src/main/java/dev/sheldan/abstracto/templating/config/TemplateSeedDataLoader.java
create mode 100644 abstracto-application/templating/templating-impl/src/main/resources/migrations/1.0-templating/collection.xml
create mode 100644 abstracto-application/templating/templating-impl/src/main/resources/migrations/1.0-templating/templating-tables/tables.xml
create mode 100644 abstracto-application/templating/templating-impl/src/main/resources/migrations/1.0-templating/templating-tables/template.xml
create mode 100644 abstracto-application/templating/templating-impl/src/main/resources/migrations/dbchangelog-3.8.xsd
create mode 100644 abstracto-application/templating/templating-impl/src/main/resources/migrations/templating-changeLog.xml
delete mode 100644 abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/builtins/duration_formatting_en_US.ftl
delete mode 100644 abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/builtins/emote_mention_en_US.ftl
delete mode 100644 abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/embed_page_count_en_US.ftl
create mode 100644 bundled-licenses/not-packaged/ansible/COPYING
create mode 100644 bundled-licenses/not-packaged/compose/LICENSE
create mode 100644 bundled-licenses/not-packaged/docker/LICENSE
create mode 100644 bundled-licenses/not-packaged/liquibase/LICENSE.txt
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 82fd02503..c5c4227c2 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -17,7 +17,7 @@ jobs:
id: version
run: echo "::set-output name=version::$(mvn --file abstracto-application/pom.xml -q -Dexec.executable="echo" -Dexec.args='${project.version}' --non-recursive exec:exec)"
- name: Publish to GitHub Packages
- run: mvn --file abstracto-application/pom.xml -B deploy -P documentation -Dmaven.wagon.http.pool=false -DskipTests=true
+ run: mvn --file abstracto-application/pom.xml -B deploy -P documentation,deployment-docker -Dmaven.wagon.http.pool=false -DskipTests=true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Install SSH Client
diff --git a/README.md b/README.md
index 6d4fb93d8..66030a63b 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@
[](https://github.com/Sheldan/abstracto/blob/master/LICENSE)
-Abastracto represents a framework to be used as a basis for a Discord bot. It uses [JDA](https://github.com/DV8FromTheWorld/JDA/) as an API wrapper underneath
+Abstracto represents a framework to be used as a basis for a Discord bot. It uses [JDA](https://github.com/DV8FromTheWorld/JDA/) as an API wrapper underneath
and provides an extensive tool set to create new commands and a wide range of commands out of the box.
This repository does not provide the full functionality in order to start a discord bot, because it requires a Main class.
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/pom.xml b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/pom.xml
index 3561f553e..0f9978a10 100644
--- a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/pom.xml
+++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/pom.xml
@@ -11,6 +11,28 @@
experience-tracking-impl
+
+
+
+ maven-assembly-plugin
+
+
+ src/main/assembly/liquibase.xml
+
+
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+
+
dev.sheldan.abstracto.modules
@@ -25,6 +47,7 @@
test-jar
test
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/assembly/liquibase.xml b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/assembly/liquibase.xml
new file mode 100644
index 000000000..8b4774fa0
--- /dev/null
+++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/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/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/config/ExperienceConfig.java b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/config/ExperienceConfig.java
deleted file mode 100644
index 1d94e1947..000000000
--- a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/config/ExperienceConfig.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package dev.sheldan.abstracto.experience.config;
-
-import lombok.Getter;
-import lombok.Setter;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.stereotype.Component;
-
-@Component
-@Getter
-@Setter
-@ConfigurationProperties(prefix = "abstracto.experience")
-public class ExperienceConfig {
- /**
- * The default min experience range from the properties file. This is used, when the bot joins a new guild.
- */
- private Integer minExp;
-
- /**
- * The default max experience range from the properties file. This is used, when the bot joins a new guild.
- */
- private Integer maxExp;
-
- /**
- * The default multiplier from the properties file. This is used, when the bot joins a new guild.
- */
- private Double expMultiplier;
-
- /**
- * The default maxLevel from the properties file. This configuration applies globally, as the amount of levels does not depend on the server.
- * This is only used once, when creating the {@link dev.sheldan.abstracto.experience.models.database.AExperienceLevel} once
- */
- private Integer maxLvl;
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/config/ExperienceConfigListener.java b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/config/ExperienceConfigListener.java
index 5263d3633..378cb8c15 100644
--- a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/config/ExperienceConfigListener.java
+++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/config/ExperienceConfigListener.java
@@ -3,6 +3,7 @@ package dev.sheldan.abstracto.experience.config;
import dev.sheldan.abstracto.core.listener.ServerConfigListener;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.service.management.ConfigManagementService;
+import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
import dev.sheldan.abstracto.experience.config.features.ExperienceFeatureConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -17,7 +18,7 @@ public class ExperienceConfigListener implements ServerConfigListener {
@Autowired
- private ExperienceConfig experienceConfig;
+ private DefaultConfigManagementService defaultConfigManagementService;
@Autowired
private ConfigManagementService service;
@@ -25,8 +26,8 @@ public class ExperienceConfigListener implements ServerConfigListener {
@Override
public void updateServerConfig(AServer server) {
log.info("Setting up experience configuration for server {}.", server.getId());
- service.createIfNotExists(server.getId(), ExperienceFeatureConfig.MIN_EXP_KEY, experienceConfig.getMinExp().longValue());
- service.createIfNotExists(server.getId(), ExperienceFeatureConfig.MAX_EXP_KEY, experienceConfig.getMaxExp().longValue());
- service.createIfNotExists(server.getId(), ExperienceFeatureConfig.EXP_MULTIPLIER_KEY, experienceConfig.getExpMultiplier());
+ service.createIfNotExists(server.getId(), ExperienceFeatureConfig.MIN_EXP_KEY, defaultConfigManagementService.getDefaultConfig(ExperienceFeatureConfig.MIN_EXP_KEY).getLongValue());
+ service.createIfNotExists(server.getId(), ExperienceFeatureConfig.MAX_EXP_KEY, defaultConfigManagementService.getDefaultConfig(ExperienceFeatureConfig.MAX_EXP_KEY).getLongValue());
+ service.createIfNotExists(server.getId(), ExperienceFeatureConfig.EXP_MULTIPLIER_KEY, defaultConfigManagementService.getDefaultConfig(ExperienceFeatureConfig.EXP_MULTIPLIER_KEY).getDoubleValue());
}
}
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/config/ExperienceDefaultConfigListener.java b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/config/ExperienceDefaultConfigListener.java
deleted file mode 100644
index 28b0f5c85..000000000
--- a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/config/ExperienceDefaultConfigListener.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package dev.sheldan.abstracto.experience.config;
-
-import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
-import dev.sheldan.abstracto.experience.config.features.ExperienceFeatureConfig;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.event.ContextRefreshedEvent;
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
-/**
- * Bean used to define the default values for the required configuration in the experience module.
- * This {@link dev.sheldan.abstracto.core.models.database.ADefaultConfig} is used, when a config key in a module is set to the default value
- * This service only creates a value if no one is previously there.
- */
-@Component
-public class ExperienceDefaultConfigListener {
-
- @Autowired
- private DefaultConfigManagementService defaultConfigManagementService;
-
- @Autowired
- private ExperienceConfig experienceConfig;
-
- @EventListener
- @Transactional
- public void handleContextRefreshEvent(ContextRefreshedEvent ctxStartEvt) {
- defaultConfigManagementService.createDefaultConfig(ExperienceFeatureConfig.MIN_EXP_KEY, experienceConfig.getMinExp().longValue());
- defaultConfigManagementService.createDefaultConfig(ExperienceFeatureConfig.MAX_EXP_KEY, experienceConfig.getMaxExp().longValue());
- defaultConfigManagementService.createDefaultConfig(ExperienceFeatureConfig.EXP_MULTIPLIER_KEY, experienceConfig.getExpMultiplier());
- }
-}
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/config/ExperienceLevelLoader.java b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/config/ExperienceLevelLoader.java
deleted file mode 100644
index 0fe17d9e6..000000000
--- a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/config/ExperienceLevelLoader.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package dev.sheldan.abstracto.experience.config;
-
-import dev.sheldan.abstracto.experience.service.ExperienceLevelService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.event.ContextRefreshedEvent;
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Component;
-
-/**
- * Component responsible to create the amount of {@link dev.sheldan.abstracto.experience.models.database.AExperienceLevel}
- * configured in the {@link ExperienceConfig}. This is executed when the application starts up.
- */
-@Component
-@Slf4j
-public class ExperienceLevelLoader {
-
- @Autowired
- private ExperienceConfig experienceConfig;
-
- @Autowired
- private ExperienceLevelService experienceLevelService;
-
- @EventListener
- public void handleContextRefreshEvent(ContextRefreshedEvent ctxStartEvt) {
- Integer maxLevel = experienceConfig.getMaxLvl();
- log.info("Creating experience levels up to level {}", maxLevel);
- experienceLevelService.createLevelsUntil(maxLevel);
- }
-}
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/config/ExperienceProperties.java b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/config/ExperienceProperties.java
deleted file mode 100644
index d567fb799..000000000
--- a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/java/dev/sheldan/abstracto/experience/config/ExperienceProperties.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package dev.sheldan.abstracto.experience.config;
-
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.PropertySource;
-
-@Configuration
-@PropertySource("classpath:experience.properties")
-public class ExperienceProperties {
-}
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/experience.properties b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/experience.properties
deleted file mode 100644
index 0d6a219c8..000000000
--- a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/experience.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-abstracto.scheduling.jobs.experienceJob.name=experienceJob
-abstracto.scheduling.jobs.experienceJob.group=experience
-abstracto.scheduling.jobs.experienceJob.clazz=dev.sheldan.abstracto.experience.job.ExperiencePersistingJob
-abstracto.scheduling.jobs.experienceJob.standAlone=true
-abstracto.scheduling.jobs.experienceJob.active=true
-abstracto.scheduling.jobs.experienceJob.cronExpression=30 * * * * ?
-abstracto.scheduling.jobs.experienceJob.recovery=false
-
-
-
-abstracto.features.experience.enabled=true
-
-abstracto.experience.minExp=10
-abstracto.experience.maxExp=25
-abstracto.experience.expMultiplier=1
-abstracto.experience.maxLvl=200
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/collection.xml b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/collection.xml
new file mode 100644
index 000000000..4f9c63f59
--- /dev/null
+++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/collection.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/command.xml b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/command.xml
new file mode 100644
index 000000000..947b9e8b2
--- /dev/null
+++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/command.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/data.xml b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/data.xml
new file mode 100644
index 000000000..5943e9de8
--- /dev/null
+++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/data.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/default_config.xml b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/default_config.xml
new file mode 100644
index 000000000..d8f43b359
--- /dev/null
+++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/default_config.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/default_feature_flag.xml b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/default_feature_flag.xml
new file mode 100644
index 000000000..ee008bb4a
--- /dev/null
+++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/default_feature_flag.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/experience_job.xml b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/experience_job.xml
new file mode 100644
index 000000000..4b4f053e1
--- /dev/null
+++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/experience_job.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/experience_level.xml b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/experience_level.xml
new file mode 100644
index 000000000..8bb630987
--- /dev/null
+++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/experience_level.xml
@@ -0,0 +1,417 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/feature.xml b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/feature.xml
new file mode 100644
index 000000000..c9c5e2625
--- /dev/null
+++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/feature.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/module.xml b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/module.xml
new file mode 100644
index 000000000..ee94521b9
--- /dev/null
+++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-seedData/module.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-tables/disabled_experience_roles.xml b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-tables/disabled_experience_roles.xml
new file mode 100644
index 000000000..7597c909c
--- /dev/null
+++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-tables/disabled_experience_roles.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-tables/experience_level.xml b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-tables/experience_level.xml
new file mode 100644
index 000000000..b389dade4
--- /dev/null
+++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-tables/experience_level.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-tables/experience_role.xml b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-tables/experience_role.xml
new file mode 100644
index 000000000..32cc776fc
--- /dev/null
+++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-tables/experience_role.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-tables/tables.xml b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-tables/tables.xml
new file mode 100644
index 000000000..9c2afc20c
--- /dev/null
+++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-tables/tables.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-tables/user_experience.xml b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-tables/user_experience.xml
new file mode 100644
index 000000000..6548663fd
--- /dev/null
+++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/1.0-experience/experience-tables/user_experience.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/dbchangelog-3.8.xsd b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/dbchangelog-3.8.xsd
new file mode 100644
index 000000000..ebfe6d612
--- /dev/null
+++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/dbchangelog-3.8.xsd
@@ -0,0 +1,1377 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/experience-changeLog.xml b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/experience-changeLog.xml
new file mode 100644
index 000000000..c2262c30a
--- /dev/null
+++ b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/migrations/experience-changeLog.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/templates/commands/leaderboard/leaderboard_post_embed_en_US.ftl b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/templates/commands/leaderboard/leaderboard_post_embed_en_US.ftl
deleted file mode 100644
index 99ed05289..000000000
--- a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/templates/commands/leaderboard/leaderboard_post_embed_en_US.ftl
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-<#macro userDisplay user>
- ${user.rank} ${user.member.effectiveName} ${user.experience.experience} ${user.experience.currentLevel.level} ${user.experience.messageCount}
-#macro>
- "author": {
- "name": "${member.effectiveName}",
- "avatar": "${member.user.effectiveAvatarUrl}"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "description": "
- <#include "leaderboard_rank_column"> | <#include "leaderboard_name_column"> | <#include "leaderboard_experience_column"> | <#include "leaderboard_level_column"> | <#include "leaderboard_messages_column">
- <#list userExperiences as user>
- <@userDisplay user=user />
- #list>
- <@userDisplay user=userExecuting />
- "
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/templates/commands/listDisabledExperienceRoles/list_disabled_experience_roles_embed_en_US.ftl b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/templates/commands/listDisabledExperienceRoles/list_disabled_experience_roles_embed_en_US.ftl
deleted file mode 100644
index 54c1f9b0f..000000000
--- a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/templates/commands/listDisabledExperienceRoles/list_disabled_experience_roles_embed_en_US.ftl
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "author": {
- "name": "${member.effectiveName}",
- "avatar": "${member.user.effectiveAvatarUrl}"
- },
- "title": {
- "title": "<#include "list_disabled_experience_roles_embed_title">"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "description": "
- <#list roles as role>
- ${role.role.asMention}
- <#else>
- <#include "list_disabled_experience_roles_embed_no_roles">
- #list>
- "
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/templates/commands/rank/rank_post_embed_en_US.ftl b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/templates/commands/rank/rank_post_embed_en_US.ftl
deleted file mode 100644
index bddbb1e20..000000000
--- a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/templates/commands/rank/rank_post_embed_en_US.ftl
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "author": {
- "name": "${member.effectiveName}",
- "avatar": "${member.user.effectiveAvatarUrl}"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "fields": [
- {
- "name": "<#include "rank_xp_field_title">",
- "value": "${rankUser.experience.experience}",
- "inline": "true"
- },
- {
- "name": "<#include "rank_level_field_title">",
- "value": "${rankUser.experience.currentLevel.level}",
- "inline": "true"
- },
- {
- "name": "<#include "rank_messages_field_title">",
- "value": "${rankUser.experience.messageCount}",
- "inline": "true"
- },
- {
- "name": "<#include "rank_to_next_level_field_title">",
- "value": "${experienceToNextLevel}",
- "inline": "true"
- },
- {
- "name": "<#include "rank_rank_field_title">",
- "value": "${rankUser.rank}",
- "inline": "true"
- }
- ]
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/templates/commands/syncExpRoles/user_sync_status_message_embed_en_US.ftl b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/templates/commands/syncExpRoles/user_sync_status_message_embed_en_US.ftl
deleted file mode 100644
index 6da663a76..000000000
--- a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/main/resources/templates/commands/syncExpRoles/user_sync_status_message_embed_en_US.ftl
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "additionalMessage": "<#include "syncExpRoles_updating_users_label">: ${currentCount}/${totalUserCount}."
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/test/java/dev/sheldan/abstracto/experience/config/ExperienceConfigListenerTest.java b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/test/java/dev/sheldan/abstracto/experience/config/ExperienceConfigListenerTest.java
deleted file mode 100644
index dcf799177..000000000
--- a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/test/java/dev/sheldan/abstracto/experience/config/ExperienceConfigListenerTest.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package dev.sheldan.abstracto.experience.config;
-
-import dev.sheldan.abstracto.core.models.database.AServer;
-import dev.sheldan.abstracto.core.service.management.ConfigManagementService;
-import dev.sheldan.abstracto.experience.config.features.ExperienceFeatureConfig;
-import dev.sheldan.abstracto.test.MockUtils;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Captor;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
-
-import java.util.List;
-
-import static org.mockito.Mockito.*;
-
-@RunWith(MockitoJUnitRunner.class)
-public class ExperienceConfigListenerTest {
-
- @InjectMocks
- private ExperienceConfigListener testUnit;
-
- @Mock
- private ExperienceConfig experienceConfig;
-
- @Mock
- private ConfigManagementService service;
-
- @Captor
- private ArgumentCaptor configValueCaptor;
-
- @Captor
- private ArgumentCaptor configKeyCaptor;
-
- @Test
- public void setSettingUp() {
- int minExp = 4;
- int maxExp = 10;
- double expMultiplier = 2;
- when(experienceConfig.getMinExp()).thenReturn(minExp);
- when(experienceConfig.getMaxExp()).thenReturn(maxExp);
- when(experienceConfig.getExpMultiplier()).thenReturn(expMultiplier);
- AServer server = MockUtils.getServer();
- testUnit.updateServerConfig(server);
- verify(service, times(2)).createIfNotExists(eq(server.getId()), configKeyCaptor.capture(), configValueCaptor.capture());
- verify(service, times(1)).createIfNotExists(server.getId(), ExperienceFeatureConfig.EXP_MULTIPLIER_KEY, expMultiplier);
- List configKeys = configKeyCaptor.getAllValues();
- List configValues = configValueCaptor.getAllValues();
- Assert.assertEquals(ExperienceFeatureConfig.MIN_EXP_KEY, configKeys.get(0));
- Assert.assertEquals(minExp, configValues.get(0).intValue());
- Assert.assertEquals(ExperienceFeatureConfig.MAX_EXP_KEY, configKeys.get(1));
- Assert.assertEquals(maxExp, configValues.get(1).intValue());
- }
-}
diff --git a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/test/java/dev/sheldan/abstracto/experience/config/ExperienceDefaultConfigListenerTest.java b/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/test/java/dev/sheldan/abstracto/experience/config/ExperienceDefaultConfigListenerTest.java
deleted file mode 100644
index 81a5826a0..000000000
--- a/abstracto-application/abstracto-modules/experience-tracking/experience-tracking-impl/src/test/java/dev/sheldan/abstracto/experience/config/ExperienceDefaultConfigListenerTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package dev.sheldan.abstracto.experience.config;
-
-import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
-import dev.sheldan.abstracto.experience.config.features.ExperienceFeatureConfig;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Captor;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
-
-import java.util.List;
-
-import static org.mockito.Mockito.*;
-
-@RunWith(MockitoJUnitRunner.class)
-public class ExperienceDefaultConfigListenerTest {
-
- @InjectMocks
- private ExperienceDefaultConfigListener testUnit;
-
- @Mock
- private ExperienceConfig experienceConfig;
-
- @Mock
- private DefaultConfigManagementService service;
-
- @Captor
- private ArgumentCaptor configValueCaptor;
-
- @Captor
- private ArgumentCaptor configKeyCaptor;
-
- @Test
- public void setSettingUp() {
- int minExp = 4;
- int maxExp = 10;
- double expMultiplier = 2;
- when(experienceConfig.getMinExp()).thenReturn(minExp);
- when(experienceConfig.getMaxExp()).thenReturn(maxExp);
- when(experienceConfig.getExpMultiplier()).thenReturn(expMultiplier);
- testUnit.handleContextRefreshEvent(null);
- verify(service, times(2)).createDefaultConfig(configKeyCaptor.capture(), configValueCaptor.capture());
- verify(service, times(1)).createDefaultConfig(ExperienceFeatureConfig.EXP_MULTIPLIER_KEY, expMultiplier);
- List configKeys = configKeyCaptor.getAllValues();
- List configValues = configValueCaptor.getAllValues();
- Assert.assertEquals(ExperienceFeatureConfig.MIN_EXP_KEY, configKeys.get(0));
- Assert.assertEquals(minExp, configValues.get(0).intValue());
- Assert.assertEquals(ExperienceFeatureConfig.MAX_EXP_KEY, configKeys.get(1));
- Assert.assertEquals(maxExp, configValues.get(1).intValue());
- }
-}
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/pom.xml b/abstracto-application/abstracto-modules/moderation/moderation-impl/pom.xml
index 9e5cc8a3a..3b8b73276 100644
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/pom.xml
+++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/pom.xml
@@ -11,6 +11,28 @@
moderation-impl
+
+
+
+ maven-assembly-plugin
+
+
+ src/main/assembly/liquibase.xml
+
+
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+
+
dev.sheldan.abstracto.modules
@@ -31,6 +53,7 @@
test-jar
test
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/assembly/liquibase.xml b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/assembly/liquibase.xml
new file mode 100644
index 000000000..8b4774fa0
--- /dev/null
+++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/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/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/config/ModerationConfig.java b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/config/ModerationConfig.java
deleted file mode 100644
index 7a64d702c..000000000
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/config/ModerationConfig.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package dev.sheldan.abstracto.moderation.config;
-
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.PropertySource;
-
-@Configuration
-@PropertySource("classpath:moderation.properties")
-public class ModerationConfig {
-}
-
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/listener/ModerationDefaultConfigListener.java b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/listener/ModerationDefaultConfigListener.java
deleted file mode 100644
index 39b1fa1f7..000000000
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/listener/ModerationDefaultConfigListener.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package dev.sheldan.abstracto.moderation.listener;
-
-import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
-import dev.sheldan.abstracto.moderation.config.features.WarningDecayFeature;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.event.ContextRefreshedEvent;
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
-@Component
-public class ModerationDefaultConfigListener {
-
- @Autowired
- private DefaultConfigManagementService defaultConfigManagementService;
-
- @Value("${abstracto.warnings.warnDecay.days}")
- private Long decayDays;
-
- @EventListener
- @Transactional
- public void handleContextRefreshEvent(ContextRefreshedEvent ctxStartEvt) {
- defaultConfigManagementService.createDefaultConfig(WarningDecayFeature.DECAY_DAYS_KEY, decayDays);
- }
-}
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/listener/WarnDecayConfigListener.java b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/listener/WarnDecayConfigListener.java
index 722076ded..a6534f0d9 100644
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/listener/WarnDecayConfigListener.java
+++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/java/dev/sheldan/abstracto/moderation/listener/WarnDecayConfigListener.java
@@ -3,6 +3,8 @@ package dev.sheldan.abstracto.moderation.listener;
import dev.sheldan.abstracto.core.listener.ServerConfigListener;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.service.management.ConfigManagementService;
+import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
+import dev.sheldan.abstracto.moderation.config.features.WarningDecayFeature;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@@ -13,11 +15,11 @@ public class WarnDecayConfigListener implements ServerConfigListener {
@Autowired
private ConfigManagementService configManagementService;
- @Value("${abstracto.warnings.warnDecay.days}")
- private Long decayDays;
+ @Autowired
+ private DefaultConfigManagementService defaultConfigManagementService;
@Override
public void updateServerConfig(AServer server) {
- configManagementService.createIfNotExists(server.getId(), "decayDays", decayDays);
+ configManagementService.createIfNotExists(server.getId(), WarningDecayFeature.DECAY_DAYS_KEY, defaultConfigManagementService.getDefaultConfig(WarningDecayFeature.DECAY_DAYS_KEY).getLongValue());
}
}
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/collection.xml b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/collection.xml
new file mode 100644
index 000000000..0774e8fbb
--- /dev/null
+++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/collection.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/command.xml b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/command.xml
new file mode 100644
index 000000000..0e4d8e295
--- /dev/null
+++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/command.xml
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/data.xml b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/data.xml
new file mode 100644
index 000000000..ad415608a
--- /dev/null
+++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/data.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/default_config.xml b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/default_config.xml
new file mode 100644
index 000000000..20688b7f5
--- /dev/null
+++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/default_config.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/default_feature_flag.xml b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/default_feature_flag.xml
new file mode 100644
index 000000000..41f860c80
--- /dev/null
+++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/default_feature_flag.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/default_posttarget.xml b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/default_posttarget.xml
new file mode 100644
index 000000000..65e27ade8
--- /dev/null
+++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/default_posttarget.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/feature.xml b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/feature.xml
new file mode 100644
index 000000000..28256b976
--- /dev/null
+++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/feature.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/module.xml b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/module.xml
new file mode 100644
index 000000000..3e79e48f1
--- /dev/null
+++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/module.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/un_mute_job.xml b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/un_mute_job.xml
new file mode 100644
index 000000000..00e3ae16f
--- /dev/null
+++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/un_mute_job.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/warn_decay_job.xml b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/warn_decay_job.xml
new file mode 100644
index 000000000..a6fa85e13
--- /dev/null
+++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-seedData/warn_decay_job.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-tables/mute.xml b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-tables/mute.xml
new file mode 100644
index 000000000..719b43bb4
--- /dev/null
+++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-tables/mute.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-tables/mute_role.xml b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-tables/mute_role.xml
new file mode 100644
index 000000000..aef054bd2
--- /dev/null
+++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-tables/mute_role.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-tables/tables.xml b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-tables/tables.xml
new file mode 100644
index 000000000..ede063caa
--- /dev/null
+++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-tables/tables.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-tables/user_note.xml b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-tables/user_note.xml
new file mode 100644
index 000000000..5991c22e1
--- /dev/null
+++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-tables/user_note.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-tables/warning.xml b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-tables/warning.xml
new file mode 100644
index 000000000..11fe1e37f
--- /dev/null
+++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/1.0-moderation/moderation-tables/warning.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/dbchangelog-3.8.xsd b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/dbchangelog-3.8.xsd
new file mode 100644
index 000000000..ebfe6d612
--- /dev/null
+++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/dbchangelog-3.8.xsd
@@ -0,0 +1,1377 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/moderation-changeLog.xml b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/moderation-changeLog.xml
new file mode 100644
index 000000000..3c0663f67
--- /dev/null
+++ b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/migrations/moderation-changeLog.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/moderation.properties b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/moderation.properties
deleted file mode 100644
index 0aa0b8aae..000000000
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/moderation.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-abstracto.postTargets.moderation=joinLog,leaveLog,warnLog,kickLog,banLog,editLog,deleteLog,muteLog,decayLog
-abstracto.features.moderation.enabled=false
-abstracto.features.warnings.enabled=false
-abstracto.features.warnDecay.enabled=false
-abstracto.features.logging.enabled=false
-abstracto.features.muting.enabled=false
-abstracto.features.userNotes.enabled=false
-abstracto.warnings.warnDecay.days=90
-
-abstracto.scheduling.jobs.unMuteJob.name=unMuteJob
-abstracto.scheduling.jobs.unMuteJob.group=moderation
-abstracto.scheduling.jobs.unMuteJob.clazz=dev.sheldan.abstracto.moderation.job.UnMuteJob
-abstracto.scheduling.jobs.unMuteJob.standAlone=false
-abstracto.scheduling.jobs.unMuteJob.active=true
-abstracto.scheduling.jobs.unMuteJob.recovery=false
-
-abstracto.scheduling.jobs.warnDecayJob.name=warnDecayJob
-abstracto.scheduling.jobs.warnDecayJob.group=moderation
-abstracto.scheduling.jobs.warnDecayJob.clazz=dev.sheldan.abstracto.moderation.job.WarnDecayJob
-abstracto.scheduling.jobs.warnDecayJob.standAlone=true
-abstracto.scheduling.jobs.warnDecayJob.active=true
-abstracto.scheduling.jobs.warnDecayJob.cronExpression=0 0 * * * ?
-abstracto.scheduling.jobs.warnDecayJob.recovery=false
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/ban/ban_log_embed_en_US.ftl b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/ban/ban_log_embed_en_US.ftl
deleted file mode 100644
index 42bd94b81..000000000
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/ban/ban_log_embed_en_US.ftl
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "author": {
- "name": "${bannedUser.effectiveName}",
- "avatar": "${bannedUser.user.effectiveAvatarUrl}"
- },
- "title": {
- "title": "<#include "ban_log_title">"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "fields": [
- {
- "name": "<#include "ban_log_banned_user_field_title">",
- "value": "${bannedUser.effectiveName} ${bannedUser.asMention} (${bannedUser.idLong?c})"
- },
- {
- "name": "<#include "ban_log_banning_user_field_title">",
- "value": "${banningUser.effectiveName} ${banningUser.asMention} (${banningUser.idLong?c})"
- },
- {
- "name": "<#include "ban_log_jump_link_field_title">",
- "value": "[${messageChannel.name}](${message.jumpUrl})"
- },
- {
- "name": "<#include "ban_log_reason_field_title">",
- "value": "${reason}"
- }
- ]
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/banId_log_embed_en_US.ftl b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/banId_log_embed_en_US.ftl
deleted file mode 100644
index 11b5cf76e..000000000
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/banId_log_embed_en_US.ftl
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "title": {
- "title": "<#include "ban_log_title">"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "fields": [
- {
- "name": "<#include "ban_log_banned_user_field_title">",
- "value": "${bannedUserId?c}"
- },
- {
- "name": "<#include "ban_log_banning_user_field_title">",
- "value": "${banningUser.effectiveName} ${banningUser.asMention} (${banningUser.idLong?c})"
- },
- {
- "name": "<#include "ban_log_jump_link_field_title">",
- "value": "[${messageChannel.name}](${message.jumpUrl})"
- },
- {
- "name": "<#include "ban_log_reason_field_title">",
- "value": "${reason}"
- }
- ]
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/kick/kick_log_embed_en_US.ftl b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/kick/kick_log_embed_en_US.ftl
deleted file mode 100644
index 4719e8522..000000000
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/kick/kick_log_embed_en_US.ftl
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "author": {
- "name": "${kickedUser.effectiveName}",
- "avatar": "${kickedUser.user.effectiveAvatarUrl}"
- },
- "title": {
- "title": "<#include "kick_log_title">"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "fields": [
- {
- "name": "<#include "kick_log_kicked_user_field_title">",
- "value": "${kickedUser.effectiveName} ${kickedUser.asMention} (${kickedUser.idLong?c})"
- },
- {
- "name": "<#include "kick_log_kicking_user_field_title">",
- "value": "${kickingUser.effectiveName} ${kickingUser.asMention} (${kickingUser.idLong?c})"
- },
- {
- "name": "<#include "kick_log_jump_link_field_title">",
- "value": "[${messageChannel.name}](${message.jumpUrl})"
- },
- {
- "name": "<#include "kick_log_reason_field_title">",
- "value": "${reason}"
- }
- ]
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/listNotes/user_notes_response_embed_en_US.ftl b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/listNotes/user_notes_response_embed_en_US.ftl
deleted file mode 100644
index a398b7c18..000000000
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/listNotes/user_notes_response_embed_en_US.ftl
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "author": {
- <#if specifiedUser??>
- "name": "${specifiedUser.member.effectiveName}",
- "avatar": "${specifiedUser.member.user.effectiveAvatarUrl}"
- <#else>
- "name": "${member.effectiveName}",
- "avatar": "${member.user.effectiveAvatarUrl}"
- #if>
- },
- "title": {
- <#if specifiedUser??>
- <#assign user>${specifiedUser.member.effectiveName}#assign>
- "title": "<#include "user_notes_embed_user_title">"
- <#else>
- "title": "<#include "user_notes_embed_title">"
- #if>
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "description": "<#list userNotes as note>
- <#assign user>${note.fullUser.member.asMention}#assign>
- <#assign noteText>${note.note.note}#assign>
- <#assign noteId>${note.note.id}#assign>
- <#assign date>${formatDate(note.note.created, "yyyy-MM-dd HH:mm:ss")}#assign>
- <#include "user_notes_note_entry"><#else><#include "user_notes_no_notes">
- #list>"
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/mute/mute_log_embed_en_US.ftl b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/mute/mute_log_embed_en_US.ftl
deleted file mode 100644
index 310ec4f15..000000000
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/mute/mute_log_embed_en_US.ftl
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "author": {
- "name": "${mutedUser.effectiveName}",
- "avatar": "${mutedUser.user.effectiveAvatarUrl}"
- },
- "title": {
- "title": "<#include "mute_log_title">"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "fields": [
- {
- "name": "<#include "mute_log_muted_user_field_title">",
- "value": "${mutedUser.effectiveName} ${mutedUser.asMention} (${mutedUser.idLong?c})"
- },
- {
- "name": "<#include "mute_log_muting_user_field_title">",
- "value": "${mutingUser.effectiveName} ${mutingUser.asMention} (${mutingUser.idLong?c})"
- },
- {
- "name": "<#include "mute_log_mute_location_field_title">",
- "value": "[${messageChannel.name}](${message.jumpUrl})"
- },
- {
- "name": "<#include "mute_log_mute_reason_field_title">",
- "value": "${mute.reason}"
- },
- {
- "name": "<#include "mute_log_mute_duration_field_title">",
- "value": "${fmtDuration(muteDuration)}"
- },
- {
- "name": "<#include "mute_log_muted_until_field_title">",
- "value": "${formatDate(mute.muteTargetDate, "yyyy-MM-dd HH:mm:ss")}"
- }
- ],
- "footer": {
- "text": "<#include "mute_log_mute_id_footer"> #${mute.id}"
- },
- "timeStamp": "${mute.muteDate}"
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/mute/unmute_log_embed_en_US.ftl b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/mute/unmute_log_embed_en_US.ftl
deleted file mode 100644
index 9d39f2eb6..000000000
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/mute/unmute_log_embed_en_US.ftl
+++ /dev/null
@@ -1,55 +0,0 @@
-{
- <#if unMutedUser?has_content>
- "author": {
- "name": "${unMutedUser.effectiveName}",
- "avatar": "${unMutedUser.user.effectiveAvatarUrl}"
- },
- #if>
- "title": {
- "title": "<#include "unMute_log_title">"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "fields": [
- {
- "name": "<#include "unMute_log_unmuted_user_field_title">",
- <#if unMutedUser?has_content>
- "value": "${unMutedUser.effectiveName} ${unMutedUser.asMention} (${unMutedUser.idLong?c})"
- <#else>
- "value": "<#include "user_left_server"> (${mute.mutedUser.userReference.id?c})"
- #if>
-
- },
- {
- "name": "<#include "mute_log_muting_user_field_title">",
- <#if mutingUser?has_content>
- "value": "${mutingUser.effectiveName} ${mutingUser.asMention} (${mutingUser.idLong?c})"
- <#else>
- "value": "<#include "user_left_server"> (${mute.mutingUser.userReference.id?c})"
- #if>
- },
- {
- "name": "<#include "mute_log_mute_location_field_title">",
- "value": "[Link](${messageUrl})"
- },
- {
- "name": "<#include "unMute_log_muted_since_field_title">",
- "value": "${formatDate(mute.muteDate, "yyyy-MM-dd HH:mm:ss")}"
- },
- {
- "name": "<#include "mute_log_mute_duration_field_title">",
- "value": "${fmtDuration(muteDuration)}"
- },
- {
- "name": "<#include "mute_log_mute_reason_field_title">",
- "value": "${mute.reason}"
- }
- ],
- "footer": {
- "text": "<#include "mute_log_mute_id_footer"> #${mute.id}"
- },
- "timeStamp": "${unmuteDate}"
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/myWarnings/myWarnings_response_embed_en_US.ftl b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/myWarnings/myWarnings_response_embed_en_US.ftl
deleted file mode 100644
index 5f7e1e40c..000000000
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/myWarnings/myWarnings_response_embed_en_US.ftl
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "author": {
- "name": "${member.effectiveName}",
- "avatar": "${member.user.effectiveAvatarUrl}"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- }
- <#assign userMention>${member.effectiveName}#assign>
- ,"description" :"<#include "myWarnings_with_decay_embed_description">"
- #if>
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/purge/purge_status_update_en_US.ftl b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/purge/purge_status_update_en_US.ftl
deleted file mode 100644
index 36202062b..000000000
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/purge/purge_status_update_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "purge_status_update_message">
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/slowMode/slowmode_log_en_US.ftl b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/slowMode/slowmode_log_en_US.ftl
deleted file mode 100644
index b0bb4e575..000000000
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/slowMode/slowmode_log_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The slowmode in channel ${channel.name} has been set to ${channel.slowMode} seconds.
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/unMute/unMute_has_no_active_mute_en_US.ftl b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/unMute/unMute_has_no_active_mute_en_US.ftl
deleted file mode 100644
index c2012d45d..000000000
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/unMute/unMute_has_no_active_mute_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "unMute_has_no_active_mute_message">
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/warn/warn_log_embed_en_US.ftl b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/warn/warn_log_embed_en_US.ftl
deleted file mode 100644
index 294b98d5d..000000000
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/warn/warn_log_embed_en_US.ftl
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "author": {
- "name": "${warnedUser.effectiveName}",
- "avatar": "${warnedUser.user.effectiveAvatarUrl}"
- },
- "title": {
- "title": "<#include "warn_log_title">"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "fields": [
- {
- "name": "<#include "warn_log_warned_user_field_title">",
- "value": "${warnedUser.effectiveName} ${warnedUser.asMention} (${warnedUser.idLong?c})"
- },
- <#if warningUser?has_content>
- {
- "name": "<#include "warn_log_warning_user_field_title">",
- "value": "${warningUser.effectiveName} ${warningUser.asMention} (${warningUser.idLong?c})"
- },
- #if>
- <#if warning?has_content>
- {
- "name": "<#include "warn_log_warn_location_field_title">",
- "value": "[${messageChannel.name}](${message.jumpUrl})"
- },
- #if>
- {
- "name": "<#include "warn_log_warn_reason_field_title">",
- "value": "${reason}"
- }
- ],
- "footer": {
- <#if warningUser?has_content>
- "text": "<#include "warn_log_warn_id_footer"> #${warning.id}"
- #if>
- }
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/warnings/warnings_response_paginator_en_US.ftl b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/warnings/warnings_response_paginator_en_US.ftl
deleted file mode 100644
index 3b3e5647a..000000000
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/warnings/warnings_response_paginator_en_US.ftl
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-<#assign warnCount>${warnings?size}#assign>
- "headerText": "<#include "warnings_header_text">",
- "items": [
- <#list warnings as warning>"<#include "warnings_warn_entry">"<#sep>,#list>
- ]
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/warnings/warnings_warn_entry_en_US.ftl b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/warnings/warnings_warn_entry_en_US.ftl
deleted file mode 100644
index 71479ffef..000000000
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/command/warnings/warnings_warn_entry_en_US.ftl
+++ /dev/null
@@ -1,11 +0,0 @@
-<#assign warnId>${warning.warning.id}#assign>
-<#assign reason>${warning.warning.reason}#assign>
-<#assign warnedUserText><#if warning.warnedUser.member??>${warning.warnedUser.member.asMention}(${warning.warnedUser.member.user.id})<#else>${warning.warnedUser.aUserInAServer.id}#if>#assign>
-<#assign warningUserText><#if warning.warningUser.member??>${warning.warningUser.member.asMention}(${warning.warningUser.member.user.id})<#else>${warning.warningUser.aUserInAServer.id}#if>#assign>
-<#assign warnDate>${formatDate(warning.warning.warnDate, "yyyy-MM-dd HH:mm:ss")}#assign>
-
-<#include "warnings_warn_entry_text">
-<#if warning.warning.decayed>
-<#assign decayDate>${formatDate(warning.warning.decayDate, "yyyy-MM-dd HH:mm:ss")}#assign>
-<#include "warnings_warn_is_decayed">
-#if>
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/exception/no_message_found_exception_en_US.ftl b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/exception/no_message_found_exception_en_US.ftl
deleted file mode 100644
index b3ac0014f..000000000
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/exception/no_message_found_exception_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "no_message_found_exception_message">
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/exception/note_not_found_exception_en_US.ftl b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/exception/note_not_found_exception_en_US.ftl
deleted file mode 100644
index 49b8d5501..000000000
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/exception/note_not_found_exception_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "note_not_found_exception_message">
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/listener/message_deleted/message_deleted_attachment_embed_en_US.ftl b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/listener/message_deleted/message_deleted_attachment_embed_en_US.ftl
deleted file mode 100644
index 13c267ac4..000000000
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/listener/message_deleted/message_deleted_attachment_embed_en_US.ftl
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "imageUrl": "${imageUrl}",
- "fields": [
- {
- "name": "<#include "messageDeleted_attachment_link_field_title">",
- "value": "[<#include "messageDeleted_attachment_link_display_text">](${imageUrl})"
- }
- ],
- "footer": {
- "text": "<#include "messageDeleted_attachment_footer"> #${counter}"
- }
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/listener/message_deleted/message_deleted_embed_en_US.ftl b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/listener/message_deleted/message_deleted_embed_en_US.ftl
deleted file mode 100644
index ada354608..000000000
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/listener/message_deleted/message_deleted_embed_en_US.ftl
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "author": {
- "name": "${member.effectiveName}#${member.user.discriminator}",
- "avatar": "${member.user.effectiveAvatarUrl}"
- },
- "description": "<#include "messageDeleted_description_text">",
- "color" : {
- "r": 200,
- "g": 0,
- "b": 0
- },
- "fields": [
- {
- "name": "<#include "messageDeleted_original_message_field_title">",
- "value": "${cachedMessage.content}"
- },
- {
- "name": "<#include "messageDeleted_message_link_field_title">",
- "value": "[${messageChannel.name}](${cachedMessage.messageUrl})"
- }
- ]
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/listener/message_edited/message_edited_embed_en_US.ftl b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/listener/message_edited/message_edited_embed_en_US.ftl
deleted file mode 100644
index 5df87aa55..000000000
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/listener/message_edited/message_edited_embed_en_US.ftl
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "author": {
- "name": "${member.effectiveName}#${member.user.discriminator}",
- "avatar": "${member.user.effectiveAvatarUrl}"
- },
- "description": "<#include "messageEdited_description_text">",
- "color" : {
- "r": 200,
- "g": 0,
- "b": 0
- },
- "fields": [
- {
- "name": "<#include "messageEdited_original_message_field_title">",
- "value": "${messageBefore.content}"
- },
- {
- "name": "<#include "messageEdited_new_message_field_title">",
- "value": "${messageAfter.contentRaw}"
- },
- {
- "name": "<#include "messageEdited_link_field_title">",
- "value": "[${messageChannel.name}](${messageBefore.messageUrl})"
- }
- ]
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/scheduler/warnDecay/warn_decay_log_embed_en_US.ftl b/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/scheduler/warnDecay/warn_decay_log_embed_en_US.ftl
deleted file mode 100644
index 8f714a7a7..000000000
--- a/abstracto-application/abstracto-modules/moderation/moderation-impl/src/main/resources/templates/scheduler/warnDecay/warn_decay_log_embed_en_US.ftl
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "title": {
- "title": "<#include "warnDecay_title">"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "description": "<#list warnings as warning>
- <#if warning.warnedMember??><#assign warnedUser>${warning.warnedMember.asMention} (${warning.warnedMember.id})#assign><#else><#assign warnedUser> ${warning.warning.warnedUser.userReference.id?c}#assign>#if> <#if warning.warningMember??><#assign warningUser> ${warning.warningMember.asMention} (${warning.warningMember.id})#assign><#else><#assign warningUser>${warning.warning.warningUser.userReference.id?c}#assign>#if> <#include "warnDecay_log_warn_entry">
- <#else>
- <#include "warnDecay_log_no_warnings">
- #list>"
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/Mute.java b/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/Mute.java
index 931550965..3fe02a1f6 100644
--- a/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/Mute.java
+++ b/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/Mute.java
@@ -79,7 +79,7 @@ public class Mute {
* The channel in which this mute was cast
*/
@ManyToOne
- @JoinColumn(name = "mutingChannel")
+ @JoinColumn(name = "mutingChannel", nullable = false)
private AChannel mutingChannel;
/**
diff --git a/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/UserNote.java b/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/UserNote.java
index a448c5eba..1b340de37 100644
--- a/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/UserNote.java
+++ b/abstracto-application/abstracto-modules/moderation/moderation-int/src/main/java/dev/sheldan/abstracto/moderation/models/database/UserNote.java
@@ -7,7 +7,7 @@ import javax.persistence.*;
import java.time.Instant;
@Entity
-@Table(name="user_notes")
+@Table(name="user_note")
@Builder
@AllArgsConstructor
@NoArgsConstructor
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/pom.xml b/abstracto-application/abstracto-modules/modmail/modmail-impl/pom.xml
index 73c8632a3..ee40d926f 100644
--- a/abstracto-application/abstracto-modules/modmail/modmail-impl/pom.xml
+++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/pom.xml
@@ -11,13 +11,34 @@
modmail-impl
+
+
+
+ maven-assembly-plugin
+
+
+ src/main/assembly/liquibase.xml
+
+
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+
+
dev.sheldan.abstracto.modules
modmail-int
${project.version}
-
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/assembly/liquibase.xml b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/assembly/liquibase.xml
new file mode 100644
index 000000000..8b4774fa0
--- /dev/null
+++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/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/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/listener/ModMailDefaultConfigListener.java b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/listener/ModMailDefaultConfigListener.java
deleted file mode 100644
index 7392441b7..000000000
--- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/java/dev/sheldan/abstracto/modmail/listener/ModMailDefaultConfigListener.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package dev.sheldan.abstracto.modmail.listener;
-
-import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
-import dev.sheldan.abstracto.templating.service.TemplateService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.event.ContextRefreshedEvent;
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
-import static dev.sheldan.abstracto.modmail.service.ModMailThreadServiceBean.MODMAIL_CLOSING_MESSAGE_TEXT;
-
-/**
- * This listener is executed when the Spring context starts up and is used to set some default values related
- * to mod mail.
- */
-@Component
-public class ModMailDefaultConfigListener {
-
- @Autowired
- private DefaultConfigManagementService defaultConfigManagementService;
-
- @Autowired
- private TemplateService templateService;
-
- @EventListener
- @Transactional
- public void handleContextRefreshEvent(ContextRefreshedEvent ctxStartEvt) {
- String text = templateService.renderSimpleTemplate("modmail_closing_user_message_description");
- defaultConfigManagementService.createDefaultConfig(MODMAIL_CLOSING_MESSAGE_TEXT, text);
-
- }
-}
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/config/modmail.properties b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/config/modmail.properties
deleted file mode 100644
index da1d0590f..000000000
--- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/config/modmail.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-abstracto.postTargets.modmail=modmailLog,modmailPing
-abstracto.emoteNames.readReaction=readReaction
-abstracto.defaultEmotes.readReaction=\uD83D\uDC40
-abstracto.features.modmail.enabled=false
-abstracto.features.modmail.defaultMode=log
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/collection.xml b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/collection.xml
new file mode 100644
index 000000000..fb1fd0a5b
--- /dev/null
+++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/collection.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/command.xml b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/command.xml
new file mode 100644
index 000000000..702ab8b96
--- /dev/null
+++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/command.xml
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/data.xml b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/data.xml
new file mode 100644
index 000000000..9e1133c98
--- /dev/null
+++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/data.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/default_config.xml b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/default_config.xml
new file mode 100644
index 000000000..607ab29fd
--- /dev/null
+++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/default_config.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/default_emote.xml b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/default_emote.xml
new file mode 100644
index 000000000..ee91cc8c8
--- /dev/null
+++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/default_emote.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/default_feature_flag.xml b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/default_feature_flag.xml
new file mode 100644
index 000000000..7a2d6272c
--- /dev/null
+++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/default_feature_flag.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/default_posttarget.xml b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/default_posttarget.xml
new file mode 100644
index 000000000..77642a29f
--- /dev/null
+++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/default_posttarget.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/feature.xml b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/feature.xml
new file mode 100644
index 000000000..80aaea33b
--- /dev/null
+++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/feature.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/module.xml b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/module.xml
new file mode 100644
index 000000000..a75618db6
--- /dev/null
+++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-seedData/module.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-tables/modmail_messages.xml b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-tables/modmail_messages.xml
new file mode 100644
index 000000000..aa93976cd
--- /dev/null
+++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-tables/modmail_messages.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-tables/modmail_roles.xml b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-tables/modmail_roles.xml
new file mode 100644
index 000000000..bee5258b6
--- /dev/null
+++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-tables/modmail_roles.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-tables/modmail_subscriber.xml b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-tables/modmail_subscriber.xml
new file mode 100644
index 000000000..7ac469405
--- /dev/null
+++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-tables/modmail_subscriber.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-tables/modmail_threads.xml b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-tables/modmail_threads.xml
new file mode 100644
index 000000000..04ec6778f
--- /dev/null
+++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-tables/modmail_threads.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-tables/tables.xml b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-tables/tables.xml
new file mode 100644
index 000000000..315d7ddaf
--- /dev/null
+++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/1.0-modmail/modMail-tables/tables.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/dbchangelog-3.8.xsd b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/dbchangelog-3.8.xsd
new file mode 100644
index 000000000..ebfe6d612
--- /dev/null
+++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/dbchangelog-3.8.xsd
@@ -0,0 +1,1377 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/modMail-changeLog.xml b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/modMail-changeLog.xml
new file mode 100644
index 000000000..90be69449
--- /dev/null
+++ b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/migrations/modMail-changeLog.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/command/contact/modmail_thread_already_exists_embed_en_US.ftl b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/command/contact/modmail_thread_already_exists_embed_en_US.ftl
deleted file mode 100644
index ade880f1f..000000000
--- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/command/contact/modmail_thread_already_exists_embed_en_US.ftl
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "author": {
- "name": "${member.effectiveName}",
- "avatar": "${member.user.effectiveAvatarUrl}"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "description": "<#include "modmail_thread_already_exists">",
- "fields": [
- {
- "name": "<#include "modmail_existing_thread_link_field_title">",
- "value": "[<#include "modmail_existing_thread_link_content_display_text">](${threadUrl})"
- }
- ]
-}
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_category_not_setup_en_US.ftl b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_category_not_setup_en_US.ftl
deleted file mode 100644
index f0390cd85..000000000
--- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_category_not_setup_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign categoryId>${(error.templateModel['categoryId'])!"0"}#assign><#include "modmail_category_not_setup_text">
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_exception_cannot_delete_channel_embed_en_US.ftl b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_exception_cannot_delete_channel_embed_en_US.ftl
deleted file mode 100644
index 80bad8416..000000000
--- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_exception_cannot_delete_channel_embed_en_US.ftl
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "author": {
- "name": "${user.member.effectiveName}",
- "avatar": "${user.member.user.effectiveAvatarUrl}"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "description": "<#include "close_failed_to_delete_text_channel">"
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_exception_cannot_message_user_embed_en_US.ftl b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_exception_cannot_message_user_embed_en_US.ftl
deleted file mode 100644
index 2206378db..000000000
--- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_exception_cannot_message_user_embed_en_US.ftl
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "author": {
- "name": "${user.member.effectiveName}",
- "avatar": "${user.member.user.effectiveAvatarUrl}"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "description": "<#include "reply_exception_cannot_send_message_to_use">"
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_exception_failed_to_create_mod_mail_thread_embed_en_US.ftl b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_exception_failed_to_create_mod_mail_thread_embed_en_US.ftl
deleted file mode 100644
index 26f6a67bb..000000000
--- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_exception_failed_to_create_mod_mail_thread_embed_en_US.ftl
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "author": {
- "name": "${user.member.effectiveName}",
- "avatar": "${user.member.user.effectiveAvatarUrl}"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "description": "<#include "modmail_failed_to_create_mod_mail_thread">"
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_exception_generic_embed_en_US.ftl b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_exception_generic_embed_en_US.ftl
deleted file mode 100644
index 8f5d3becd..000000000
--- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_exception_generic_embed_en_US.ftl
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "author": {
- "name": "${user.member.effectiveName}",
- "avatar": "${user.member.user.effectiveAvatarUrl}"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "description": "<#include "modmail_generic_error">"
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_exception_post_target_not_defined_embed_en_US.ftl b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_exception_post_target_not_defined_embed_en_US.ftl
deleted file mode 100644
index 5187db617..000000000
--- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/modmail_exception_post_target_not_defined_embed_en_US.ftl
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "author": {
- "name": "${user.member.effectiveName}",
- "avatar": "${user.member.user.effectiveAvatarUrl}"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "description": "<#include "modmail_post_target_error">"
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/setup_category_not_valid_exception_en_US.ftl b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/setup_category_not_valid_exception_en_US.ftl
deleted file mode 100644
index f71fbe59e..000000000
--- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/exception/setup_category_not_valid_exception_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "setup_category_not_valid_exception_message">
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/listener/messageReceived/modmail_modal_server_choice_en_US.ftl b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/listener/messageReceived/modmail_modal_server_choice_en_US.ftl
deleted file mode 100644
index e40aba800..000000000
--- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/listener/messageReceived/modmail_modal_server_choice_en_US.ftl
+++ /dev/null
@@ -1,5 +0,0 @@
-<#include "server_chooser_server_list_description">
-
-<#list commonGuilds as guild>
- ${guild.reactionEmote} ${guild.guild.guild.name}
-#list>
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/listener/messageReceived/modmail_no_server_available_embed_en_US.ftl b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/listener/messageReceived/modmail_no_server_available_embed_en_US.ftl
deleted file mode 100644
index ad0bf190c..000000000
--- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/listener/messageReceived/modmail_no_server_available_embed_en_US.ftl
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "description": "<#include "modmail_no_server_available">"
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/listener/messageReceived/modmail_notification_message_embed_en_US.ftl b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/listener/messageReceived/modmail_notification_message_embed_en_US.ftl
deleted file mode 100644
index ad34a977c..000000000
--- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/listener/messageReceived/modmail_notification_message_embed_en_US.ftl
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "author": {
- "name": "${threadUser.member.effectiveName}",
- "avatar": "${threadUser.member.user.effectiveAvatarUrl}"
- },
- "title": {
- "title": "<#include "modmail_notification_message_title">"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- <#assign user>${threadUser.member.effectiveName}#${threadUser.member.user.discriminator}(${threadUser.member.user.id})#assign>
- "description": "<#include "modmail_notification_message_description">"
- <#if roles?size gt 0>
- ,"additionalMessage": "<#list roles as role>${role.role.asMention}<#sep>,#list>"
- #if>
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/listener/messageReceived/modmail_user_message_embed_en_US.ftl b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/listener/messageReceived/modmail_user_message_embed_en_US.ftl
deleted file mode 100644
index 156b31a3d..000000000
--- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/listener/messageReceived/modmail_user_message_embed_en_US.ftl
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "author": {
- "name": "${threadUser.member.effectiveName}",
- "avatar": "${threadUser.member.user.effectiveAvatarUrl}"
- },
- "title": {
- "title": "<#include "modmail_thread_user_message_title">"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- <#if postedMessage.contentRaw?has_content>
- "description": "${postedMessage.contentRaw}"
- #if>
- <#if postedMessage.attachments?size gt 0>
- ,"imageUrl": "${postedMessage.attachments[0].proxyUrl}"
- #if>
- <#if subscribers?size gt 0>
- ,"additionalMessage": "<#list subscribers as subscriber>${subscriber.member.asMention}<#sep>,#list>"
- #if>
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/closing/logging/modmail_close_header_embed_en_US.ftl b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/closing/logging/modmail_close_header_embed_en_US.ftl
deleted file mode 100644
index 8373141f5..000000000
--- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/closing/logging/modmail_close_header_embed_en_US.ftl
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "title": {
- "title": "<#include "modmail_closing_notification_title">"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- <#assign messageCount>${closedThread.messages?size}#assign>
- <#assign user>user#assign>
- <#assign startDate>${formatDate(closedThread.created,"yyyy-MM-dd HH:mm:ss")}#assign>
- <#assign duration>${fmtDuration(duration)}#assign>
- "description": "<#include "close_closing_description">"
-}
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/closing/logging/modmail_close_logged_message_embed_en_US.ftl b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/closing/logging/modmail_close_logged_message_embed_en_US.ftl
deleted file mode 100644
index 6c4b1c560..000000000
--- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/closing/logging/modmail_close_logged_message_embed_en_US.ftl
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "author": {
- "name": "${author.member.effectiveName}",
- "avatar": "${author.member.user.effectiveAvatarUrl}"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- }
- <#if message.embeds[0].description?has_content>
- ,"description": "${message.embeds[0].description}"
- #if>
- <#if message.attachments?size gt 0>
- ,"imageUrl": "${message.embeds[0].image.proxyUrl}"
- #if>
- <#if modMailMessage.anonymous>
- , "additionalMessage": "<#include "modmail_anonymous_message_note">"
- #if>
- ,"timeStamp": "${message.timeCreated}"
-}
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/closing/modmail_closing_user_message_embed_en_US.ftl b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/closing/modmail_closing_user_message_embed_en_US.ftl
deleted file mode 100644
index acba982f8..000000000
--- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/closing/modmail_closing_user_message_embed_en_US.ftl
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "description": "${closingMessage}"
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/modmail_staff_message_embed_en_US.ftl b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/modmail_staff_message_embed_en_US.ftl
deleted file mode 100644
index a7470d76a..000000000
--- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/modmail_staff_message_embed_en_US.ftl
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "author": {
- "name": "${moderator.effectiveName}",
- "avatar": "${moderator.user.effectiveAvatarUrl}"
- },
- "title": {
- "title": "<#include "modmail_thread_staff_message_title">"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- }
- <#if text?has_content>
- , "description": "${text}"
- #if>
- <#if postedMessage.attachments?size gt 0>
- ,"imageUrl": "${postedMessage.attachments[0].proxyUrl}"
- #if>
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/modmail_thread_header_embed_en_US.ftl b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/modmail_thread_header_embed_en_US.ftl
deleted file mode 100644
index 906afa4fd..000000000
--- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/modmail_thread_header_embed_en_US.ftl
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "author": {
- "name": "${threadUser.member.effectiveName}",
- "avatar": "${threadUser.member.user.effectiveAvatarUrl}"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- <#assign user>${threadUser.member.effectiveName}#${threadUser.member.user.discriminator} (${threadUser.member.user.id})#assign>
- <#assign joinDate>${threadUser.member.timeJoined}#assign>
- <#assign roles><#list threadUser.member.roles as role>${role.asMention}<#sep>,<#else><#include "modmail_thread_header_no_roles">#list>#assign>
- "description": "<#include "modmail_thread_header_embed_description">"
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/setup/setup_modmail_category_action_en_US.ftl b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/setup/setup_modmail_category_action_en_US.ftl
deleted file mode 100644
index e37a3e146..000000000
--- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/setup/setup_modmail_category_action_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign category>${param.category.name}#assign><#include "setup_modmail_category_action_display">
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/setup/setup_modmail_category_message_en_US.ftl b/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/setup/setup_modmail_category_message_en_US.ftl
deleted file mode 100644
index 7947f143c..000000000
--- a/abstracto-application/abstracto-modules/modmail/modmail-impl/src/main/resources/templates/modmail/setup/setup_modmail_category_message_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign categoryName><#if category?has_content>${category.name}<#else><#include "setup_modmail_category_message_no_category">#if>#assign><#include "setup_modmail_category_message_display">
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/config/ModMailProperties.java b/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/config/ModMailProperties.java
deleted file mode 100644
index bd0ce9ff5..000000000
--- a/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/config/ModMailProperties.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package dev.sheldan.abstracto.modmail.config;
-
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.PropertySource;
-
-@Configuration
-@PropertySource("classpath:config/modmail.properties")
-public class ModMailProperties {
-}
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailThread.java b/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailThread.java
index 51670a15b..abcaa7ef5 100644
--- a/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailThread.java
+++ b/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailThread.java
@@ -17,7 +17,7 @@ import java.util.List;
@Entity
@NoArgsConstructor
@AllArgsConstructor
-@Table(name = "modmail_threads")
+@Table(name = "modmail_thread")
@Cacheable
@Getter
@Setter
diff --git a/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailThreadSubscriber.java b/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailThreadSubscriber.java
index e280c3916..72454f951 100644
--- a/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailThreadSubscriber.java
+++ b/abstracto-application/abstracto-modules/modmail/modmail-int/src/main/java/dev/sheldan/abstracto/modmail/models/database/ModMailThreadSubscriber.java
@@ -15,7 +15,7 @@ import java.time.Instant;
@Entity
@NoArgsConstructor
@AllArgsConstructor
-@Table(name = "modmail_subscribers")
+@Table(name = "modmail_subscriber")
@Cacheable
@Getter
@Setter
@@ -30,7 +30,7 @@ public class ModMailThreadSubscriber {
* The staff member which is subscribed
*/
@ManyToOne(fetch = FetchType.LAZY)
- @JoinColumn(name = "modmail_message_subscriber", nullable = false)
+ @JoinColumn(name = "modmail_thread_subscriber", nullable = false)
private AUserInAServer subscriber;
/**
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/pom.xml b/abstracto-application/abstracto-modules/utility/utility-impl/pom.xml
index b8bcd4121..efa18754a 100644
--- a/abstracto-application/abstracto-modules/utility/utility-impl/pom.xml
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/pom.xml
@@ -11,6 +11,28 @@
utility-impl
+
+
+
+ maven-assembly-plugin
+
+
+ src/main/assembly/liquibase.xml
+
+
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+
+
dev.sheldan.abstracto.modules
@@ -31,6 +53,8 @@
test-jar
test
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/assembly/liquibase.xml b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/assembly/liquibase.xml
new file mode 100644
index 000000000..8b4774fa0
--- /dev/null
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/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/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/config/StarboardConfig.java b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/config/StarboardConfig.java
deleted file mode 100644
index d5ebe6e90..000000000
--- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/config/StarboardConfig.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package dev.sheldan.abstracto.utility.config;
-
-import lombok.Getter;
-import lombok.Setter;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@Component
-@Getter
-@Setter
-@ConfigurationProperties(prefix = "abstracto.starboard")
-public class StarboardConfig {
- private List lvl = new ArrayList<>();
-}
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/config/StarboardConfigListener.java b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/config/StarboardConfigListener.java
index 1987ada72..a79a16574 100644
--- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/config/StarboardConfigListener.java
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/config/StarboardConfigListener.java
@@ -3,6 +3,7 @@ package dev.sheldan.abstracto.utility.config;
import dev.sheldan.abstracto.core.listener.ServerConfigListener;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.service.management.ConfigManagementService;
+import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
import dev.sheldan.abstracto.utility.service.StarboardServiceBean;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -13,18 +14,19 @@ import org.springframework.stereotype.Component;
public class StarboardConfigListener implements ServerConfigListener {
@Autowired
- private StarboardConfig starboardConfig;
+ private ConfigManagementService configManagementService;
@Autowired
- private ConfigManagementService configManagementService;
+ private DefaultConfigManagementService defaultConfigManagementService;
@Override
public void updateServerConfig(AServer server) {
log.info("Creating starboard config for server {}", server.getId());
- int levels = starboardConfig.getLvl().size();
- for (int i = 0; i < levels; i++) {
- Integer value = starboardConfig.getLvl().get(i);
- configManagementService.createIfNotExists(server.getId(), StarboardServiceBean.STAR_LVL_CONFIG_PREFIX + ( i + 1 ), Long.valueOf(value));
+ int maxLevels = defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LEVELS_CONFIG_KEY).getLongValue().intValue();
+ for (int i = 0; i < maxLevels; i++) {
+ String configKey = StarboardServiceBean.STAR_LVL_CONFIG_PREFIX + (i + 1);
+ Integer value = defaultConfigManagementService.getDefaultConfig(configKey).getLongValue().intValue();
+ configManagementService.createIfNotExists(server.getId(), configKey, Long.valueOf(value));
}
}
}
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/config/StarboardDefaultConfigListener.java b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/config/StarboardDefaultConfigListener.java
deleted file mode 100644
index 0be41723b..000000000
--- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/config/StarboardDefaultConfigListener.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package dev.sheldan.abstracto.utility.config;
-
-import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
-import dev.sheldan.abstracto.utility.service.StarboardServiceBean;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.event.ContextRefreshedEvent;
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
-@Component
-public class StarboardDefaultConfigListener {
-
- @Autowired
- private DefaultConfigManagementService defaultConfigManagementService;
-
- @Autowired
- private StarboardConfig starboardConfig;
-
- @EventListener
- @Transactional
- public void handleContextRefreshEvent(ContextRefreshedEvent ctxStartEvt) {
- int levels = starboardConfig.getLvl().size();
- for (int i = 0; i < levels; i++) {
- Integer value = starboardConfig.getLvl().get(i);
- defaultConfigManagementService.createDefaultConfig(StarboardServiceBean.STAR_LVL_CONFIG_PREFIX + ( i + 1 ), Long.valueOf(value));
- }
- }
-}
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/config/UtilityConfig.java b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/config/UtilityConfig.java
deleted file mode 100644
index 86dfc41fb..000000000
--- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/config/UtilityConfig.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package dev.sheldan.abstracto.utility.config;
-
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.PropertySource;
-
-@Configuration
-@PropertySource("classpath:utility.properties")
-public class UtilityConfig {
-}
-
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/service/StarboardServiceBean.java b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/service/StarboardServiceBean.java
index 0406628a8..2fafb8945 100644
--- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/service/StarboardServiceBean.java
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/service/StarboardServiceBean.java
@@ -3,6 +3,7 @@ package dev.sheldan.abstracto.utility.service;
import dev.sheldan.abstracto.core.exception.ChannelNotFoundException;
import dev.sheldan.abstracto.core.exception.UserInServerNotFoundException;
import dev.sheldan.abstracto.core.service.management.ChannelManagementService;
+import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
import dev.sheldan.abstracto.core.service.management.PostTargetManagement;
import dev.sheldan.abstracto.core.models.AServerAChannelMessage;
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
@@ -14,7 +15,6 @@ import dev.sheldan.abstracto.core.service.ConfigService;
import dev.sheldan.abstracto.core.service.EmoteService;
import dev.sheldan.abstracto.core.service.PostTargetService;
import dev.sheldan.abstracto.templating.service.TemplateService;
-import dev.sheldan.abstracto.utility.config.StarboardConfig;
import dev.sheldan.abstracto.utility.config.posttargets.StarboardPostTarget;
import dev.sheldan.abstracto.utility.models.database.StarboardPost;
import dev.sheldan.abstracto.utility.models.template.commands.starboard.StarStatsModel;
@@ -43,6 +43,7 @@ public class StarboardServiceBean implements StarboardService {
public static final String STARBOARD_POST_TEMPLATE = "starboard_post";
public static final String STAR_LVL_CONFIG_PREFIX = "starLvl";
+ public static final String STAR_LEVELS_CONFIG_KEY = "starLvls";
@Autowired
private BotService botService;
@@ -59,9 +60,6 @@ public class StarboardServiceBean implements StarboardService {
@Autowired
private StarboardPostManagementService starboardPostManagementService;
- @Autowired
- private StarboardConfig starboardConfig;
-
@Autowired
private StarboardPostReactorManagementService starboardPostReactorManagementService;
@@ -77,6 +75,9 @@ public class StarboardServiceBean implements StarboardService {
@Autowired
private EmoteService emoteService;
+ @Autowired
+ private DefaultConfigManagementService defaultConfigManagementService;
+
@Autowired
private StarboardServiceBean self;
@@ -221,7 +222,7 @@ public class StarboardServiceBean implements StarboardService {
}
private String getAppropriateEmote(Long serverId, Integer starCount) {
- int maxLevels = starboardConfig.getLvl().size();
+ int maxLevels = defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LEVELS_CONFIG_KEY).getLongValue().intValue();
for(int i = maxLevels; i > 0; i--) {
Long starMinimum = configService.getLongValue(STAR_LVL_CONFIG_PREFIX + i, serverId);
if(starCount >= starMinimum) {
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/validator/StarboardFeatureValidatorService.java b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/validator/StarboardFeatureValidatorService.java
index 849aaf681..0997c8647 100644
--- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/validator/StarboardFeatureValidatorService.java
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/java/dev/sheldan/abstracto/utility/validator/StarboardFeatureValidatorService.java
@@ -4,8 +4,9 @@ import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.models.FeatureValidationResult;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.service.FeatureValidatorService;
+import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
import dev.sheldan.abstracto.utility.StarboardFeatureValidator;
-import dev.sheldan.abstracto.utility.config.StarboardConfig;
+import dev.sheldan.abstracto.utility.service.StarboardServiceBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -13,14 +14,14 @@ import org.springframework.stereotype.Component;
public class StarboardFeatureValidatorService implements StarboardFeatureValidator {
@Autowired
- private StarboardConfig starboardConfig;
+ private FeatureValidatorService featureValidatorService;
@Autowired
- private FeatureValidatorService featureValidatorService;
+ private DefaultConfigManagementService defaultConfigManagementService;
@Override
public void featureIsSetup(FeatureConfig featureConfig, AServer server, FeatureValidationResult validationResult) {
- int levelAmount = starboardConfig.getLvl().size();
+ int levelAmount = defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LEVELS_CONFIG_KEY).getLongValue().intValue();
for(int i = 1; i <= levelAmount; i++) {
featureValidatorService.checkSystemConfig("starLvl" + i, server, validationResult);
}
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/collection.xml b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/collection.xml
new file mode 100644
index 000000000..2c67bc17b
--- /dev/null
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/collection.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/command.xml b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/command.xml
new file mode 100644
index 000000000..1b13ad7a4
--- /dev/null
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/command.xml
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/data.xml b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/data.xml
new file mode 100644
index 000000000..60cf47fa6
--- /dev/null
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/data.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/default_config.xml b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/default_config.xml
new file mode 100644
index 000000000..309428176
--- /dev/null
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/default_config.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/default_emote.xml b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/default_emote.xml
new file mode 100644
index 000000000..f342c16df
--- /dev/null
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/default_emote.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/default_feature_flag.xml b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/default_feature_flag.xml
new file mode 100644
index 000000000..5ccc46649
--- /dev/null
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/default_feature_flag.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/default_posttarget.xml b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/default_posttarget.xml
new file mode 100644
index 000000000..17678231a
--- /dev/null
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/default_posttarget.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/feature.xml b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/feature.xml
new file mode 100644
index 000000000..55395780e
--- /dev/null
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/feature.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/reminder_job.xml b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/reminder_job.xml
new file mode 100644
index 000000000..801a2e419
--- /dev/null
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-seedData/reminder_job.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/embedded_message.xml b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/embedded_message.xml
new file mode 100644
index 000000000..8eabb32f3
--- /dev/null
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/embedded_message.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/reminder.xml b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/reminder.xml
new file mode 100644
index 000000000..9d236f2de
--- /dev/null
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/reminder.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/starboard.xml b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/starboard.xml
new file mode 100644
index 000000000..84f261125
--- /dev/null
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/starboard.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/starboard_post.xml b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/starboard_post.xml
new file mode 100644
index 000000000..6cb2e6e47
--- /dev/null
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/starboard_post.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/suggestion.xml b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/suggestion.xml
new file mode 100644
index 000000000..68d010461
--- /dev/null
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/suggestion.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/tables.xml b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/tables.xml
new file mode 100644
index 000000000..ac88749b5
--- /dev/null
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/1.0-utility/utility-tables/tables.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/dbchangelog-3.8.xsd b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/dbchangelog-3.8.xsd
new file mode 100644
index 000000000..ebfe6d612
--- /dev/null
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/dbchangelog-3.8.xsd
@@ -0,0 +1,1377 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/utility-changeLog.xml b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/utility-changeLog.xml
new file mode 100644
index 000000000..822cd3942
--- /dev/null
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/migrations/utility-changeLog.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/remind/remind_reminder_embed_en_US.ftl b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/remind/remind_reminder_embed_en_US.ftl
deleted file mode 100644
index 8bb5c31be..000000000
--- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/remind/remind_reminder_embed_en_US.ftl
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "author": {
- "name": "${member.effectiveName}",
- "avatar": "${member.user.effectiveAvatarUrl}"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "description": "<#include "remind_reminder_description">",
- "fields": [
- {
- "name": "<#include "remind_reminder_duration_field_title">",
- "value": "${fmtDuration(duration)}"
- },
- {
- "name": "<#include "remind_reminder_note_field_title">",
- "value": "${reminder.text}"
- },
- {
- "name": "<#include "remind_reminder_link_field_title">",
- "value": "[<#include "remind_reminder_link_content_display_text">](${messageUrl})"
- }
- ],
- "additionalMessage": "${member.asMention}"
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/remind/remind_response_embed_en_US.ftl b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/remind/remind_response_embed_en_US.ftl
deleted file mode 100644
index f560ac6c8..000000000
--- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/remind/remind_response_embed_en_US.ftl
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- <#assign id>${reminder.id}#assign>
- <#assign messageUrl>${message.jumpUrl}#assign>
- "author": {
- "name": "${member.effectiveName}",
- "avatar": "${member.user.effectiveAvatarUrl}"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "description": "<#include "remind_reminding_description_text">",
- "additionalMessage": "${member.asMention}"
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/reminders/reminders_response_embed_en_US.ftl b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/reminders/reminders_response_embed_en_US.ftl
deleted file mode 100644
index 597686707..000000000
--- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/reminders/reminders_response_embed_en_US.ftl
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "author": {
- "name": "${member.effectiveName}",
- "avatar": "${member.user.effectiveAvatarUrl}"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "title": {
- "title": "<#include "reminders_reminders_embed_title">"
- },
- "fields": [
- <#list reminders as reminder>
- {
- <#assign id>${reminder.id}#assign>
- "name": "<#include "reminders_reminder_field_title">",
- "value": "<#include "reminders_due_on">"
- }
- <#sep>,
- #list>
- ]
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/serverInfo/serverinfo_embed_emotes_field_title_en_US.ftl b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/serverInfo/serverinfo_embed_emotes_field_title_en_US.ftl
deleted file mode 100644
index e62335fcf..000000000
--- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/serverInfo/serverinfo_embed_emotes_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign additionalInfo><#if count gt 1>${count}<#else><#assign count>${list?size}#assign><#include "serverinfo_embed_emotes_title_total_emotes">#if>#assign><#include "serverinfo_embed_emotes_field_title_message">
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/serverInfo/serverinfo_response_embed_en_US.ftl b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/serverInfo/serverinfo_response_embed_en_US.ftl
deleted file mode 100644
index 6fd3d0fad..000000000
--- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/serverInfo/serverinfo_response_embed_en_US.ftl
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "title": {
- "title": "<#assign name=guild.name><#include "serverinfo_embed_title">"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "fields": [
- {
- "name": "<#include "serverinfo_embed_id_field_title">",
- "value": "${guild.id}",
- "inline": "true"
- },
- {
- "name": "<#include "serverinfo_embed_owner_field_title">",
- "value": "${guild.owner.effectiveName}#${guild.owner.user.discriminator}",
- "inline": "true"
- },
- {
- "name": "<#include "serverinfo_embed_members_field_title">",
- "value": "${guild.memberCount}",
- "inline": "true"
- },
- {
- "name": "<#include "serverinfo_embed_role_count_field_title">",
- "value": "${guild.roles?size}",
- "inline": "true"
- },
- {
- "name": "<#include "serverinfo_embed_created_field_title">",
- "value": "${guild.timeCreated}",
- "inline": "true"
- },
- ${safeFieldLength(guild.emotes, 'emote_mention', 'serverinfo_embed_emotes_field_title', 'false')},
- {
- "name": "<#include "serverinfo_embed_features_field_title">",
- "value": "<#list guild.features as feature>${feature}<#else>No features#list>",
- "inline": "true"
- }
- ]
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/showAvatar/showAvatar_response_embed_en_US.ftl b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/showAvatar/showAvatar_response_embed_en_US.ftl
deleted file mode 100644
index ace76f0ca..000000000
--- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/showAvatar/showAvatar_response_embed_en_US.ftl
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "author": {
- "name": "${memberInfo.user.name}#${memberInfo.user.discriminator}",
- "avatar": "${memberInfo.user.effectiveAvatarUrl}"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "imageUrl": "${memberInfo.user.effectiveAvatarUrl}",
- "fields": [
- {
- "name": "<#include "showAvatar_response_embed_user_field_title">",
- "value": "${memberInfo.user.name}#${memberInfo.user.discriminator}",
- "inline": "true"
- },
- {
- "name": "<#include "showAvatar_response_embed_image_field_title">",
- "value": "[<#include "showAvatar_response_embed_image_field_value_display">](${memberInfo.user.effectiveAvatarUrl})",
- "inline": "true"
- }
- ]
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/showEmote/showEmote_response_en_US.ftl b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/showEmote/showEmote_response_en_US.ftl
deleted file mode 100644
index db1c1a0cb..000000000
--- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/showEmote/showEmote_response_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign name> ${emote.name} #assign> <#assign url> ${emote.imageUrl} #assign>**<#include "showEmote_name">**: ${emote.name} **<#include "showEmote_link">**: ${emote.imageUrl}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/starStats/starStats_response_embed_en_US.ftl b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/starStats/starStats_response_embed_en_US.ftl
deleted file mode 100644
index fafbf4041..000000000
--- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/starStats/starStats_response_embed_en_US.ftl
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "title": {
- "title": "<#include "starStats_response_title">"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "description": "<#include "startStats_description">",
- "fields": [
- {
- "name": "<#include "starStats_top_starred_field_title">",
- "value": "
- <#list topPosts as post>
- <#assign badge>${badgeEmotes[post?index]}#assign><#assign count>${post.starCount}<#assign link>${post.messageUrl}#assign> <#include "starStats_starred_entry">
- <#else>
- <#include "starStats_no_starred_messages">
- #list>
- "
- },
- {
- "name": "<#include "starStats_top_starrer_field_title">",
- "value": "
- <#list starGiver as starrer>
- <#assign badge>${badgeEmotes[starrer?index]}#assign><#assign count>${starrer.starCount}
- <#if starrer.member?has_content>
- <#assign user>${starrer.member.asMention}#assign> <#include "starStats_starrer_entry">
- <#else>
- <#assign user>${starrer.user.id?c}#assign> <#include "starStats_starrer_entry_left_guild_en_US.ftl">
- #if>
- <#else>
- <#include "starStats_no_starred_messages">
- #list>
- "
- },
- {
- "name": "<#include "starStats_top_receiver_field_title">",
- "value": "
- <#list starReceiver as starred>
- <#assign badge>${badgeEmotes[starred?index]}#assign><#assign count>${starred.starCount}
- <#if starred.member?has_content>
- <#assign user>${starred.member.asMention}#assign> <#include "starStats_receiver_entry">
- <#else>
- <#assign user>${starred.user.id?c}#assign> <#include "starStats_receiver_entry_left_guild">
- #if>
- <#else>
- <#include "starStats_no_starred_messages">
- #list>
- "
- }
- ]
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/suggest/suggest_log_embed_en_US.ftl b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/suggest/suggest_log_embed_en_US.ftl
deleted file mode 100644
index ddea7b3f6..000000000
--- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/suggest/suggest_log_embed_en_US.ftl
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "author": {
- <#if suggester?has_content>
- "name": "${suggester.effectiveName}",
- "avatar": "${suggester.user.effectiveAvatarUrl}"
- <#else>
- "name": "${suggesterUser.userReference.id}"
- #if>
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- <#assign user>${member.effectiveName}#assign>
- <#assign id>${suggestion.id}#assign>
- <#if suggestion.state = "ACCEPTED">
- "description": "~~${text}~~ \n✅ ${reason} - <#include "suggest_accepted_by">",
- <#elseif suggestion.state = "REJECTED">
- "description": "~~${text}~~ \n❌ ${reason} - <#include "suggest_rejected_by">",
- <#else>
- "description": "${text}",
- #if>
- <#if suggestion.state = "ACCEPTED" || suggestion.state = "REJECTED">
- "fields": [
- {
- "name": "<#include "suggest_link_field_title">",
- "value": "[<#include "suggest_link_display_value">](${originalMessageUrl})"
- }
- ],
- #if>
- "footer": {
- "text": "<#include "suggest_suggestion_id_footer">"
- }
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/userInfo/userInfo_response_embed_en_US.ftl b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/userInfo/userInfo_response_embed_en_US.ftl
deleted file mode 100644
index 7114908cd..000000000
--- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/commands/userInfo/userInfo_response_embed_en_US.ftl
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "author": {
- "name": "${memberInfo.user.name}#${memberInfo.user.discriminator}",
- "avatar": "${memberInfo.user.effectiveAvatarUrl}"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "thumbnail": "${memberInfo.user.effectiveAvatarUrl}",
- "fields": [
- {
- "name": "<#include "userInfo_response_embed_id_field_title">",
- "value": "${memberInfo.user.id}",
- "inline": "true"
- },
- <#if memberInfo.nickname?has_content>
- {
- "name": "<#include "userInfo_response_embed_nickname_field_title">",
- "value": "${memberInfo.nickname}",
- "inline": "true"
- },
- #if>
- {
- "name": "<#include "userInfo_response_embed_status_field_title">",
- "value": "${memberInfo.onlineStatus.key}",
- "inline": "true"
- },
- {
- "name": "<#include "userInfo_response_embed_joined_field_title">",
- "value": "${formatDate(memberInfo.timeJoined, "yyyy-MM-dd HH:mm:ss")}",
- "inline": "true"
- },
- {
- "name": "<#include "userInfo_response_embed_registered_field_title">",
- "value": "${formatDate(memberInfo.timeCreated, "yyyy-MM-dd HH:mm:ss")}",
- "inline": "true"
- }
- <#if memberInfo.activities?size gt 0>
- ,
- {
- "name": "<#include "userInfo_response_embed_activity_field_title">",
- "value": "<#list memberInfo.activities as activity>${activity.type}<#sep>, #list>",
- "inline": "true"
- }
- #if>
- ]
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/listener/embed/message_embed_embed_en_US.ftl b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/listener/embed/message_embed_embed_en_US.ftl
deleted file mode 100644
index c4e6d711d..000000000
--- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/listener/embed/message_embed_embed_en_US.ftl
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "author": {
- "name": "${author.effectiveName}",
- "avatar": "${author.user.effectiveAvatarUrl}"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- <#if embeddedMessage.content?has_content || embeddedMessage.embeds?size gt 0>
- "description": "${embeddedMessage.content}
- <#list embeddedMessage.embeds>
- <#include "message_embed_embed_embeds_name">:
- <#items as embed>
- <#include "message_embed_embed_description">: <#if embed.description?has_content >${embed.description}#if> <#if embed.imageUrl?has_content> <#include "message_embed_embed_image_url">: ${embed.imageUrl} #if>
- #items>
- #list>
- ",
- #if>
- <#if embeddedMessage.attachmentUrls?size gt 0>
- "imageUrl": "${embeddedMessage.attachmentUrls[0]}",
- #if>
- "fields": [
- {
- "name": "<#include "message_embed_embed_quoted_by_field_title">",
- <#assign user>${embeddingUser.asMention}#assign>
- <#assign channelName>${sourceChannel.name}#assign>
- <#assign messageLink>${embeddedMessage.messageUrl}#assign>
- "value": "<#include "message_embed_embed_quoted_by_field_value">"
- }
- ],
- "timeStamp": "${embeddedMessage.timeCreated}"
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/listener/starboard/starboard_post_embed_en_US.ftl b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/listener/starboard/starboard_post_embed_en_US.ftl
deleted file mode 100644
index 4d7e7ad28..000000000
--- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/templates/listener/starboard/starboard_post_embed_en_US.ftl
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "author": {
- <#if author?has_content>
- "name": "${author.effectiveName}",
- "avatar": "${author.user.effectiveAvatarUrl}"
- <#else>
- "name": "${user.id?c} (<#include "user_left_server">)"
- #if>
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- }
- <#if message.content?has_content || message.embeds?size gt 0>
- ,"description": "${message.content}
- <#list message.embeds>
- <#include "starboard_post_embed_embeds_name">:
- <#items as embed>
- <#include "starboard_post_embed_description">: ${embed.description} <#if embed.imageUrl?has_content> <#include "starboard_post_embed_image_url">: ${embed.imageUrl} #if>
- #items>
- #list>
- "
- #if>
- <#assign emote>${starLevelEmote}#assign>
- <#assign count>${starCount}#assign>
- <#assign messageId>${message.messageId?c}#assign>
- <#if channel?has_content>
- <#assign channelMention>${channel.asMention}#assign>
- ,"additionalMessage": "<#include "starboard_post_embed_additional_message">"
- <#else>
- <#assign channelMention>${aChannel.id?c}#assign>
- ,"additionalMessage": "<#include "starboard_post_embed_additional_message">"
- #if>
- <#if message.attachmentUrls?size gt 0>
- ,"imageUrl": "${message.attachmentUrls[0]}"
- #if>
- ,"fields": [
- {
- "name": "<#include "starboard_post_embed_original_field_title">"
- <#if channel?has_content>
- ,"value": "[${channel.name}](${message.messageUrl})"
- <#else>
- ,"value": "[${aChannel.id?c}](${message.messageUrl})"
- #if>
- }
- ],
- "timeStamp": "${message.timeCreated}"
-}
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/utility.properties b/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/utility.properties
deleted file mode 100644
index f1c949954..000000000
--- a/abstracto-application/abstracto-modules/utility/utility-impl/src/main/resources/utility.properties
+++ /dev/null
@@ -1,32 +0,0 @@
-abstracto.postTargets.utility=suggestions,starboard
-abstracto.emoteNames.suggestion=suggestionYes,suggestionNo
-abstracto.emoteNames.starboard=star,star1,star2,star3,star4,starboardBadge1,starboardBadge2,starboardBadge3
-abstracto.emoteNames.embed=removeEmbed
-abstracto.defaultEmotes.suggestionYes=\u2B06\uFE0F
-abstracto.defaultEmotes.suggestionNo=\u2B07\uFE0F
-abstracto.defaultEmotes.star=\u2B50
-abstracto.defaultEmotes.star1=\u2B50
-abstracto.defaultEmotes.star2=\uD83C\uDF1F
-abstracto.defaultEmotes.star3=\uD83D\uDCAB
-abstracto.defaultEmotes.star4=\uD83C\uDF20
-abstracto.defaultEmotes.starboardBadge1=\ud83e\udd47
-abstracto.defaultEmotes.starboardBadge2=\ud83e\udd48
-abstracto.defaultEmotes.starboardBadge3=\ud83e\udd49
-abstracto.defaultEmotes.removeEmbed=\uD83D\uDDD1\uFE0F
-abstracto.starboard.lvl[0]=5
-abstracto.starboard.lvl[1]=8
-abstracto.starboard.lvl[2]=13
-abstracto.starboard.lvl[3]=17
-
-abstracto.scheduling.jobs.reminderJob.name=reminderJob
-abstracto.scheduling.jobs.reminderJob.group=utility
-abstracto.scheduling.jobs.reminderJob.clazz=dev.sheldan.abstracto.utility.jobs.ReminderJob
-abstracto.scheduling.jobs.reminderJob.standAlone=false
-abstracto.scheduling.jobs.reminderJob.active=true
-abstracto.scheduling.jobs.reminderJob.recovery=false
-
-abstracto.features.starboard.enabled=false
-abstracto.features.remind.enabled=false
-abstracto.features.suggestion.enabled=false
-abstracto.features.utility.enabled=false
-abstracto.features.link_embeds.enabled=false
\ No newline at end of file
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/test/java/dev/sheldan/abstracto/utility/config/StarboardConfigListenerTest.java b/abstracto-application/abstracto-modules/utility/utility-impl/src/test/java/dev/sheldan/abstracto/utility/config/StarboardConfigListenerTest.java
index f354505cf..b52685ccd 100644
--- a/abstracto-application/abstracto-modules/utility/utility-impl/src/test/java/dev/sheldan/abstracto/utility/config/StarboardConfigListenerTest.java
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/test/java/dev/sheldan/abstracto/utility/config/StarboardConfigListenerTest.java
@@ -1,7 +1,9 @@
package dev.sheldan.abstracto.utility.config;
+import dev.sheldan.abstracto.core.models.database.ADefaultConfig;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.service.management.ConfigManagementService;
+import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
import dev.sheldan.abstracto.test.MockUtils;
import dev.sheldan.abstracto.utility.service.StarboardServiceBean;
import org.junit.Assert;
@@ -25,10 +27,10 @@ public class StarboardConfigListenerTest {
private StarboardConfigListener testUnit;
@Mock
- private StarboardConfig starboardConfig;
+ private ConfigManagementService configManagementService;
@Mock
- private ConfigManagementService configManagementService;
+ private DefaultConfigManagementService defaultConfigManagementService;
@Captor
private ArgumentCaptor configKeyCaptor;
@@ -36,15 +38,20 @@ public class StarboardConfigListenerTest {
@Test
public void testUpdateServerConfig() {
AServer server = MockUtils.getServer();
- List levels = Arrays.asList(1, 2, 3);
- when(starboardConfig.getLvl()).thenReturn(levels);
+ int numberOfLevels = 4;
+ ADefaultConfig config = ADefaultConfig.builder().longValue((long)numberOfLevels).build();
+ when(defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LEVELS_CONFIG_KEY)).thenReturn(config);
+ when(defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LVL_CONFIG_PREFIX + 1)).thenReturn(config);
+ when(defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LVL_CONFIG_PREFIX + 2)).thenReturn(config);
+ when(defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LVL_CONFIG_PREFIX + 3)).thenReturn(config);
+ when(defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LVL_CONFIG_PREFIX + 4)).thenReturn(config);
testUnit.updateServerConfig(server);
- verify(configManagementService, times(levels.size())).createIfNotExists(eq(server.getId()), configKeyCaptor.capture(), anyLong());
+ verify(configManagementService, times(numberOfLevels)).createIfNotExists(eq(server.getId()), configKeyCaptor.capture(), anyLong());
List keys = configKeyCaptor.getAllValues();
- for (int i = 0; i < levels.size(); i++) {
+ for (int i = 0; i < numberOfLevels; i++) {
Assert.assertEquals(StarboardServiceBean.STAR_LVL_CONFIG_PREFIX + (i + 1), keys.get(i));
}
- Assert.assertEquals(levels.size(), keys.size());
+ Assert.assertEquals(numberOfLevels, keys.size());
}
}
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/test/java/dev/sheldan/abstracto/utility/config/StarboardDefaultConfigListenerTest.java b/abstracto-application/abstracto-modules/utility/utility-impl/src/test/java/dev/sheldan/abstracto/utility/config/StarboardDefaultConfigListenerTest.java
deleted file mode 100644
index 8064c6dd0..000000000
--- a/abstracto-application/abstracto-modules/utility/utility-impl/src/test/java/dev/sheldan/abstracto/utility/config/StarboardDefaultConfigListenerTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package dev.sheldan.abstracto.utility.config;
-
-import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
-import dev.sheldan.abstracto.utility.service.StarboardServiceBean;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Captor;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
-
-import java.util.Arrays;
-import java.util.List;
-
-import static org.mockito.ArgumentMatchers.anyLong;
-import static org.mockito.Mockito.*;
-
-@RunWith(MockitoJUnitRunner.class)
-public class StarboardDefaultConfigListenerTest {
-
- @InjectMocks
- private StarboardDefaultConfigListener testUnit;
-
- @Mock
- private DefaultConfigManagementService defaultConfigManagementService;
-
- @Mock
- private StarboardConfig starboardConfig;
-
- @Captor
- private ArgumentCaptor configKeyCaptor;
-
- @Test
- public void testDefaultConfig() {
- List levels = Arrays.asList(1, 2, 3);
- when(starboardConfig.getLvl()).thenReturn(levels);
- testUnit.handleContextRefreshEvent(null);
- verify(defaultConfigManagementService, times(levels.size())).createDefaultConfig(configKeyCaptor.capture(), anyLong());
- List keys = configKeyCaptor.getAllValues();
- for (int i = 0; i < levels.size(); i++) {
- Assert.assertEquals(StarboardServiceBean.STAR_LVL_CONFIG_PREFIX + (i + 1), keys.get(i));
- }
- Assert.assertEquals(levels.size(), keys.size());
- }
-}
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/test/java/dev/sheldan/abstracto/utility/service/StarboardServiceBeanTest.java b/abstracto-application/abstracto-modules/utility/utility-impl/src/test/java/dev/sheldan/abstracto/utility/service/StarboardServiceBeanTest.java
index 458c6ad12..60c7b6449 100644
--- a/abstracto-application/abstracto-modules/utility/utility-impl/src/test/java/dev/sheldan/abstracto/utility/service/StarboardServiceBeanTest.java
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/test/java/dev/sheldan/abstracto/utility/service/StarboardServiceBeanTest.java
@@ -4,21 +4,18 @@ import dev.sheldan.abstracto.core.exception.ChannelNotFoundException;
import dev.sheldan.abstracto.core.exception.UserInServerNotFoundException;
import dev.sheldan.abstracto.core.models.AServerAChannelMessage;
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
-import dev.sheldan.abstracto.core.models.database.AChannel;
-import dev.sheldan.abstracto.core.models.database.AServer;
-import dev.sheldan.abstracto.core.models.database.AUserInAServer;
-import dev.sheldan.abstracto.core.models.database.PostTarget;
+import dev.sheldan.abstracto.core.models.database.*;
import dev.sheldan.abstracto.core.service.BotService;
import dev.sheldan.abstracto.core.service.ConfigService;
import dev.sheldan.abstracto.core.service.EmoteService;
import dev.sheldan.abstracto.core.service.PostTargetService;
import dev.sheldan.abstracto.core.service.management.ChannelManagementService;
+import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
import dev.sheldan.abstracto.core.service.management.PostTargetManagement;
import dev.sheldan.abstracto.core.service.management.UserInServerManagementService;
import dev.sheldan.abstracto.templating.model.MessageToSend;
import dev.sheldan.abstracto.templating.service.TemplateService;
import dev.sheldan.abstracto.test.MockUtils;
-import dev.sheldan.abstracto.utility.config.StarboardConfig;
import dev.sheldan.abstracto.utility.config.posttargets.StarboardPostTarget;
import dev.sheldan.abstracto.utility.models.database.StarboardPost;
import dev.sheldan.abstracto.utility.models.database.StarboardPostReaction;
@@ -68,10 +65,10 @@ public class StarboardServiceBeanTest {
private StarboardPostManagementService starboardPostManagementService;
@Mock
- private StarboardConfig starboardConfig;
+ private StarboardPostReactorManagementService starboardPostReactorManagementService;
@Mock
- private StarboardPostReactorManagementService starboardPostReactorManagementService;
+ private DefaultConfigManagementService defaultConfigManagementService;
@Mock
private PostTargetManagement postTargetManagement;
@@ -129,7 +126,9 @@ public class StarboardServiceBeanTest {
when(postTargetManagement.getPostTarget(StarboardPostTarget.STARBOARD.getKey(), server.getId())).thenReturn(postTarget);
List> futures = Arrays.asList(CompletableFuture.completedFuture(sendPost));
when(postTargetService.sendEmbedInPostTarget(postMessage, StarboardPostTarget.STARBOARD, server.getId())).thenReturn(futures);
- when(starboardConfig.getLvl()).thenReturn(Arrays.asList(1,2));
+ ADefaultConfig config = ADefaultConfig.builder().longValue(3L).build();
+ when(defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LEVELS_CONFIG_KEY)).thenReturn(config);
+ when(configService.getLongValue("starLvl3", server.getId())).thenReturn(3L);
when(configService.getLongValue("starLvl2", server.getId())).thenReturn(2L);
when(emoteService.getUsableEmoteOrDefault(server.getId(), "star2")).thenReturn("b");
testUnit.createStarboardPost(message, userExceptAuthor, userReacting, starredUser);
@@ -192,6 +191,8 @@ public class StarboardServiceBeanTest {
when(templateService.renderEmbedTemplate(eq(StarboardServiceBean.STARBOARD_POST_TEMPLATE), starboardPostModelArgumentCaptor.capture())).thenReturn(postMessage);
when(postTargetService.editOrCreatedInPostTarget(oldPostId, postMessage, StarboardPostTarget.STARBOARD, server.getId())).thenReturn(Arrays.asList(CompletableFuture.completedFuture(sendPost)));
when(sendPost.getIdLong()).thenReturn(newPostId);
+ ADefaultConfig config = ADefaultConfig.builder().longValue(4L).build();
+ when(defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LEVELS_CONFIG_KEY)).thenReturn(config);
when(starboardPostManagementService.findByStarboardPostId(starboardPostId)).thenReturn(Optional.of(post));
List userExceptAuthor = new ArrayList<>();
testUnit.updateStarboardPost(post, message, userExceptAuthor);
diff --git a/abstracto-application/abstracto-modules/utility/utility-impl/src/test/java/dev/sheldan/abstracto/utility/validator/StarboardFeatureValidatorServiceTest.java b/abstracto-application/abstracto-modules/utility/utility-impl/src/test/java/dev/sheldan/abstracto/utility/validator/StarboardFeatureValidatorServiceTest.java
index 65297dbcb..f9a5221d5 100644
--- a/abstracto-application/abstracto-modules/utility/utility-impl/src/test/java/dev/sheldan/abstracto/utility/validator/StarboardFeatureValidatorServiceTest.java
+++ b/abstracto-application/abstracto-modules/utility/utility-impl/src/test/java/dev/sheldan/abstracto/utility/validator/StarboardFeatureValidatorServiceTest.java
@@ -1,9 +1,11 @@
package dev.sheldan.abstracto.utility.validator;
+import dev.sheldan.abstracto.core.models.database.ADefaultConfig;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.service.FeatureValidatorService;
+import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
import dev.sheldan.abstracto.test.MockUtils;
-import dev.sheldan.abstracto.utility.config.StarboardConfig;
+import dev.sheldan.abstracto.utility.service.StarboardServiceBean;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -25,27 +27,29 @@ public class StarboardFeatureValidatorServiceTest {
private StarboardFeatureValidatorService testUnit;
@Mock
- private StarboardConfig starboardConfig;
+ private FeatureValidatorService featureValidatorService;
@Mock
- private FeatureValidatorService featureValidatorService;
+ private DefaultConfigManagementService defaultConfigManagementService;
@Captor
private ArgumentCaptor configKeyCaptor;
@Test
public void testStarboardFeatureConfig() {
- List definedLevels = Arrays.asList(1, 2, 3);
- when(starboardConfig.getLvl()).thenReturn(definedLevels);
AServer server = MockUtils.getServer();
+ int levelCount = 4;
+ ADefaultConfig config = ADefaultConfig.builder().longValue((long)levelCount).build();
+ when(defaultConfigManagementService.getDefaultConfig(StarboardServiceBean.STAR_LEVELS_CONFIG_KEY)).thenReturn(config);
+
testUnit.featureIsSetup(null, server, null);
- verify(featureValidatorService, times(definedLevels.size())).checkSystemConfig(configKeyCaptor.capture(), eq(server), any());
+ verify(featureValidatorService, times(levelCount)).checkSystemConfig(configKeyCaptor.capture(), eq(server), any());
List allValues = configKeyCaptor.getAllValues();
for (int i = 0; i < allValues.size(); i++) {
String key = allValues.get(i);
- Assert.assertEquals("starLvl"+ ( i + 1 ), key);
+ Assert.assertEquals("starLvl" + ( i + 1 ), key);
}
- Assert.assertEquals(definedLevels.size(), allValues.size());
+ Assert.assertEquals(levelCount, allValues.size());
}
}
diff --git a/abstracto-application/bundle/pom.xml b/abstracto-application/bundle/pom.xml
index 0d9e72995..8ae754da3 100644
--- a/abstracto-application/bundle/pom.xml
+++ b/abstracto-application/bundle/pom.xml
@@ -23,13 +23,6 @@
templating-impl
${project.version}
-
-
- dev.sheldan.abstracto.templating
- template-config
- ${project.version}
-
-
@@ -61,6 +54,7 @@
scheduling-impl
${project.version}
+
diff --git a/abstracto-application/core/core-impl/pom.xml b/abstracto-application/core/core-impl/pom.xml
index 9d225190b..892875270 100644
--- a/abstracto-application/core/core-impl/pom.xml
+++ b/abstracto-application/core/core-impl/pom.xml
@@ -11,6 +11,29 @@
jar
core-impl
+
+
+
+
+ maven-assembly-plugin
+
+
+ src/main/assembly/liquibase.xml
+
+
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+
+
org.springframework.boot
@@ -103,6 +126,8 @@
gson
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/assembly/liquibase.xml b/abstracto-application/core/core-impl/src/main/assembly/liquibase.xml
new file mode 100644
index 000000000..8b4774fa0
--- /dev/null
+++ b/abstracto-application/core/core-impl/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/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/config/CommandConfig.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/config/CommandConfig.java
deleted file mode 100644
index 278adb759..000000000
--- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/config/CommandConfig.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package dev.sheldan.abstracto.core.command.config;
-
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.PropertySource;
-
-@Configuration
-@PropertySource("classpath:commands.properties")
-public class CommandConfig {
-}
-
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/config/CommandCreationListener.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/config/CommandCreationListener.java
deleted file mode 100644
index 2c5adbe8f..000000000
--- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/config/CommandCreationListener.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package dev.sheldan.abstracto.core.command.config;
-
-import dev.sheldan.abstracto.core.command.Command;
-import dev.sheldan.abstracto.core.command.service.CommandService;
-import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
-import dev.sheldan.abstracto.core.service.FeatureConfigService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.event.ContextRefreshedEvent;
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-
-@Component
-@Slf4j
-public class CommandCreationListener {
-
- @Autowired
- private List commandList;
-
- @Autowired
- private CommandService commandService;
-
- @Autowired
- private FeatureConfigService featureFlagService;
-
- @Autowired
- private FeatureManagementService featureManagementService;
-
-
- @EventListener
- @Transactional
- public void handleContextRefreshEvent(ContextRefreshedEvent ctxStartEvt) {
- featureFlagService.getAllFeatureConfigs().forEach(featureFlagKey -> {
- String featureKey = featureFlagKey.getFeature().getKey();
- if(!featureManagementService.featureExists(featureKey)) {
- featureManagementService.createFeature(featureKey);
- }
- });
- commandList.forEach(command -> {
- if(command.getConfiguration() == null) {
- log.warn("Command {} has null configuration.", command);
- return;
- }
- if(!commandService.doesCommandExist(command.getConfiguration().getName())) {
- commandService.createCommand(command.getConfiguration().getName(), command.getConfiguration().getModule(), command.getFeature());
- }
- });
- }
-}
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/repository/CommandRepository.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/repository/CommandRepository.java
index ef6d8e1ea..981d05f50 100644
--- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/repository/CommandRepository.java
+++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/repository/CommandRepository.java
@@ -6,12 +6,13 @@ import org.springframework.data.jpa.repository.QueryHints;
import org.springframework.stereotype.Repository;
import javax.persistence.QueryHint;
+import java.util.Optional;
@Repository
public interface CommandRepository extends JpaRepository {
@QueryHints(@QueryHint(name = org.hibernate.annotations.QueryHints.CACHEABLE, value = "true"))
- ACommand findByName(String name);
+ Optional findByNameIgnoreCase(String name);
- boolean existsByName(String name);
+ boolean existsByNameIgnoreCase(String name);
}
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/service/CommandManager.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/service/CommandManager.java
index e27fe7c6e..64cd2f24a 100644
--- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/service/CommandManager.java
+++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/service/CommandManager.java
@@ -8,6 +8,7 @@ import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.execution.UnParsedCommandParameter;
import dev.sheldan.abstracto.core.service.ConfigService;
+import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
import net.dv8tion.jda.api.entities.Message;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -20,14 +21,15 @@ import java.util.Optional;
@Service
public class CommandManager implements CommandRegistry {
+ public static final String PREFIX = "prefix";
@Autowired
private List commands;
@Autowired
private ConfigService configService;
- @Value("${abstracto.prefix}")
- private String defaultPrefix;
+ @Autowired
+ private DefaultConfigManagementService defaultConfigManagementService;
@Override
public Command findCommandByParameters(String name, UnParsedCommandParameter unParsedCommandParameter) {
@@ -101,7 +103,7 @@ public class CommandManager implements CommandRegistry {
@Override
public boolean isCommand(Message message) {
- return message.getContentRaw().startsWith(configService.getStringValue("prefix", message.getGuild().getIdLong(), defaultPrefix));
+ return message.getContentRaw().startsWith(configService.getStringValue(PREFIX, message.getGuild().getIdLong(), defaultConfigManagementService.getDefaultConfig(PREFIX).getStringValue()));
}
@Override
@@ -116,6 +118,6 @@ public class CommandManager implements CommandRegistry {
@Override
public String getCommandName(String input, Long serverId) {
- return input.replaceFirst(configService.getStringValue("prefix", serverId, defaultPrefix), "");
+ return input.replaceFirst(configService.getStringValue(PREFIX, serverId, defaultConfigManagementService.getDefaultConfig(PREFIX).getStringValue()), "");
}
}
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/service/management/CommandManagementServiceBean.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/service/management/CommandManagementServiceBean.java
index d5bec1cf0..959ad57d7 100644
--- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/service/management/CommandManagementServiceBean.java
+++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/service/management/CommandManagementServiceBean.java
@@ -1,5 +1,6 @@
package dev.sheldan.abstracto.core.command.service.management;
+import dev.sheldan.abstracto.core.command.exception.CommandNotFoundException;
import dev.sheldan.abstracto.core.command.models.database.ACommand;
import dev.sheldan.abstracto.core.command.models.database.AModule;
import dev.sheldan.abstracto.core.command.repository.CommandRepository;
@@ -7,6 +8,8 @@ import dev.sheldan.abstracto.core.models.database.AFeature;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
+import java.util.Optional;
+
@Component
public class CommandManagementServiceBean implements CommandManagementService {
@@ -38,14 +41,19 @@ public class CommandManagementServiceBean implements CommandManagementService {
return command;
}
+ @Override
+ public Optional findCommandByNameOptional(String name) {
+ return commandRepository.findByNameIgnoreCase(name.toLowerCase());
+ }
+
@Override
public ACommand findCommandByName(String name) {
- return commandRepository.findByName(name.toLowerCase());
+ return findCommandByNameOptional(name).orElseThrow(() -> new CommandNotFoundException(String.format("Command %s was not found.", name)));
}
@Override
public boolean doesCommandExist(String name) {
- return commandRepository.existsByName(name.toLowerCase());
+ return commandRepository.existsByNameIgnoreCase(name.toLowerCase());
}
}
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/utility/Echo.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/utility/Echo.java
index 4329e9a21..071c19c72 100644
--- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/utility/Echo.java
+++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/utility/Echo.java
@@ -1,5 +1,6 @@
package dev.sheldan.abstracto.core.commands.utility;
+import dev.sheldan.abstracto.core.command.UtilityModuleInterface;
import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
@@ -42,7 +43,7 @@ public class Echo extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("echo")
- .module("utility")
+ .module(UtilityModuleInterface.UTILITY)
.templated(true)
.causesReaction(false)
.parameters(parameters)
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/utility/Ping.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/utility/Ping.java
index 084534d4a..52a0bcb2e 100644
--- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/utility/Ping.java
+++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/utility/Ping.java
@@ -1,6 +1,7 @@
package dev.sheldan.abstracto.core.commands.utility;
import dev.sheldan.abstracto.core.command.Command;
+import dev.sheldan.abstracto.core.command.UtilityModuleInterface;
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
@@ -34,7 +35,7 @@ public class Ping implements Command {
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("ping")
- .module("utility")
+ .module(UtilityModuleInterface.UTILITY)
.templated(true)
.help(helpInfo)
.causesReaction(false)
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/config/DynamicKeyLoader.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/config/DynamicKeyLoader.java
deleted file mode 100644
index e3ef35b74..000000000
--- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/config/DynamicKeyLoader.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package dev.sheldan.abstracto.core.config;
-
-import lombok.Getter;
-import lombok.Setter;
-import org.jetbrains.annotations.NotNull;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-
-@Component
-@Getter
-@Setter
-@ConfigurationProperties(prefix = "abstracto")
-public class DynamicKeyLoader {
-
- private HashMap postTargets = new HashMap<>();
- private HashMap emoteNames = new HashMap<>();
- private HashMap defaultEmotes = new HashMap<>();
-
- public List getPostTargetsAsList() {
- return getHashMapAsList(postTargets);
- }
-
- public List getEmoteNamesAsList() {
- return getHashMapAsList(emoteNames);
- }
-
- @NotNull
- private List getHashMapAsList(HashMap emoteNames) {
- List emotes = new ArrayList<>();
- if (emoteNames == null || emoteNames.size() == 0) {
- return emotes;
- }
- emoteNames.values().forEach(s -> emotes.addAll(Arrays.asList(s.split(","))));
- return emotes;
- }
-}
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/config/FeatureConfigLoader.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/config/FeatureConfigLoader.java
deleted file mode 100644
index 9ce3905ff..000000000
--- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/config/FeatureConfigLoader.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package dev.sheldan.abstracto.core.config;
-
-import dev.sheldan.abstracto.core.models.config.FeaturePropertiesConfig;
-import lombok.Getter;
-import lombok.Setter;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.stereotype.Component;
-
-import java.util.HashMap;
-
-
-@Component
-@Getter
-@Setter
-@ConfigurationProperties(prefix = "abstracto")
-public class FeatureConfigLoader {
- private HashMap features = new HashMap<>();
-}
-
-
-
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/config/FeatureListener.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/config/FeatureListener.java
deleted file mode 100644
index d88383247..000000000
--- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/config/FeatureListener.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package dev.sheldan.abstracto.core.config;
-
-import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
-import dev.sheldan.abstracto.core.service.FeatureFlagService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.event.ContextRefreshedEvent;
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Component;
-
-// TODO runtime dependencies, features are required by commands, race condition
-@Component
-@Slf4j
-public class FeatureListener {
-
- @Autowired
- private FeatureFlagService featureFlagService;
-
- @Autowired
- private FeatureManagementService featureManagementService;
-
- @EventListener
- public void handleContextRefreshEvent(ContextRefreshedEvent ctxStartEvt) {
- // Do nothing yet, because of a race condition between features and commands
- }
-}
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/listener/CoreDefaultConfigListener.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/listener/CoreDefaultConfigListener.java
deleted file mode 100644
index 4345f6def..000000000
--- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/listener/CoreDefaultConfigListener.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package dev.sheldan.abstracto.core.listener;
-
-import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.event.ContextRefreshedEvent;
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
-@Component
-public class CoreDefaultConfigListener {
-
- @Autowired
- private DefaultConfigManagementService defaultConfigManagementService;
-
-
- @Value("${abstracto.prefix}")
- private String prefix;
-
- @EventListener
- @Transactional
- public void handleContextRefreshEvent(ContextRefreshedEvent ctxStartEvt) {
- defaultConfigManagementService.createDefaultConfig("prefix", prefix);
- }
-}
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/listener/CoreServiceConfigListener.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/listener/CoreServiceConfigListener.java
index afd115a8f..5e25ca832 100644
--- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/listener/CoreServiceConfigListener.java
+++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/listener/CoreServiceConfigListener.java
@@ -1,7 +1,9 @@
package dev.sheldan.abstracto.core.listener;
+import dev.sheldan.abstracto.core.command.service.CommandManager;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.service.management.ConfigManagementService;
+import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@@ -12,11 +14,11 @@ public class CoreServiceConfigListener implements ServerConfigListener {
@Autowired
private ConfigManagementService configManagementService;
- @Value("${abstracto.prefix}")
- private String prefix;
+ @Autowired
+ private DefaultConfigManagementService defaultConfigManagementService;
@Override
public void updateServerConfig(AServer server) {
- configManagementService.createIfNotExists(server.getId(), "prefix", prefix);
+ configManagementService.createIfNotExists(server.getId(), CommandManager.PREFIX, defaultConfigManagementService.getDefaultConfig(CommandManager.PREFIX).getStringValue());
}
}
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/listener/FeatureFlagListener.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/listener/FeatureFlagListener.java
index 6f2b207a4..408c5b975 100644
--- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/listener/FeatureFlagListener.java
+++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/listener/FeatureFlagListener.java
@@ -1,12 +1,10 @@
package dev.sheldan.abstracto.core.listener;
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
-import dev.sheldan.abstracto.core.config.FeatureConfigLoader;
-import dev.sheldan.abstracto.core.models.config.FeaturePropertiesConfig;
import dev.sheldan.abstracto.core.models.database.AFeature;
import dev.sheldan.abstracto.core.models.database.AServer;
-import dev.sheldan.abstracto.core.service.FeatureConfigService;
import dev.sheldan.abstracto.core.service.FeatureModeService;
+import dev.sheldan.abstracto.core.service.management.DefaultFeatureFlagManagementService;
import dev.sheldan.abstracto.core.service.management.FeatureFlagManagementService;
import dev.sheldan.abstracto.core.service.management.FeatureModeManagementService;
import lombok.extern.slf4j.Slf4j;
@@ -14,13 +12,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
+import java.util.List;
+
@Component
@Slf4j
public class FeatureFlagListener implements ServerConfigListener {
- @Autowired
- private FeatureConfigService featureFlagService;
-
@Autowired
private FeatureFlagManagementService service;
@@ -36,26 +33,25 @@ public class FeatureFlagListener implements ServerConfigListener {
@Autowired
private Environment environment;
- @Autowired
- private FeatureConfigLoader featureConfigLoader;
-
@Autowired
private FeatureFlagManagementService featureFlagManagementService;
+ @Autowired
+ private DefaultFeatureFlagManagementService defaultFeatureFlagManagementService;
@Override
public void updateServerConfig(AServer server) {
log.info("Setting up feature flags if necessary.");
- featureFlagService.getAllFeatureConfigs().forEach(featureFlagKey -> {
+ List defaultFeatureKeys = defaultFeatureFlagManagementService.getDefaultFeatureKeys();
+ defaultFeatureFlagManagementService.getAllDefaultFeatureFlags().forEach(featureFlagKey -> {
String featureKey = featureFlagKey.getFeature().getKey();
AFeature feature = featureManagementService.getFeature(featureKey);
- if(featureConfigLoader.getFeatures().containsKey(featureKey)) {
- FeaturePropertiesConfig featurePropertiesConfig = featureConfigLoader.getFeatures().get(featureKey);
+ if(defaultFeatureKeys.contains(featureKey)) {
if(service.getFeatureFlag(feature, server.getId()) == null) {
- service.createFeatureFlag(feature, server.getId(), featurePropertiesConfig.getEnabled());
+ service.createFeatureFlag(feature, server.getId(), featureFlagKey.isEnabled());
}
- if(featurePropertiesConfig.getDefaultMode() != null && !featureModeManagementService.featureModeSet(feature, server)) {
- featureModeService.createMode(feature, server, featurePropertiesConfig.getDefaultMode());
+ if(featureFlagKey.getMode() != null && !featureModeManagementService.featureModeSet(feature, server)) {
+ featureModeService.createMode(feature, server, featureFlagKey.getMode());
}
} else {
log.warn("Feature {} was found as interface, but not in the properties configuration. It will not be setup.", featureKey);
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/listener/LockStartupListener.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/listener/LockStartupListener.java
deleted file mode 100644
index 8f76db287..000000000
--- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/listener/LockStartupListener.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package dev.sheldan.abstracto.core.listener;
-
-import dev.sheldan.abstracto.core.service.LockService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.event.ContextRefreshedEvent;
-import org.springframework.context.event.EventListener;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
-@Component
-public class LockStartupListener {
-
- @Autowired
- private LockService lockService;
-
- @EventListener
- @Transactional
- public void handleContextRefreshEvent(ContextRefreshedEvent ctxStartEvt) {
- lockService.setupLocks();
- }
-}
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/DefaultEmoteRepository.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/DefaultEmoteRepository.java
new file mode 100644
index 000000000..2a395f0c5
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/DefaultEmoteRepository.java
@@ -0,0 +1,10 @@
+package dev.sheldan.abstracto.core.repository;
+
+import dev.sheldan.abstracto.core.models.database.DefaultEmote;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface DefaultEmoteRepository extends JpaRepository {
+ DefaultEmote getByEmoteKey(String emoteKey);
+}
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/DefaultFeatureFlagRepository.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/DefaultFeatureFlagRepository.java
new file mode 100644
index 000000000..468063546
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/DefaultFeatureFlagRepository.java
@@ -0,0 +1,9 @@
+package dev.sheldan.abstracto.core.repository;
+
+import dev.sheldan.abstracto.core.models.database.DefaultFeatureFlag;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface DefaultFeatureFlagRepository extends JpaRepository {
+}
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/DefaultPostTargetRepository.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/DefaultPostTargetRepository.java
new file mode 100644
index 000000000..13e925797
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/DefaultPostTargetRepository.java
@@ -0,0 +1,9 @@
+package dev.sheldan.abstracto.core.repository;
+
+import dev.sheldan.abstracto.core.models.database.DefaultPostTarget;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface DefaultPostTargetRepository extends JpaRepository {
+}
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/LockRepository.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/LockRepository.java
index 75b2a09c1..a3e4da8be 100644
--- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/LockRepository.java
+++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/repository/LockRepository.java
@@ -14,5 +14,5 @@ public interface LockRepository extends JpaRepository {
@Lock(LockModeType.PESSIMISTIC_WRITE)
@Query("select a from ALock a where a.id = :id")
- ALock findArticleForRead(@Param("id") Long id);
+ ALock findALockForRead(@Param("id") Long id);
}
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/EmoteServiceBean.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/EmoteServiceBean.java
index bc47e1e32..1e544b51a 100644
--- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/EmoteServiceBean.java
+++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/EmoteServiceBean.java
@@ -1,10 +1,10 @@
package dev.sheldan.abstracto.core.service;
-import dev.sheldan.abstracto.core.config.DynamicKeyLoader;
import dev.sheldan.abstracto.core.exception.EmoteNotDefinedException;
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
import dev.sheldan.abstracto.core.models.cache.CachedReaction;
import dev.sheldan.abstracto.core.models.database.AEmote;
+import dev.sheldan.abstracto.core.service.management.DefaultEmoteManagementService;
import dev.sheldan.abstracto.core.service.management.EmoteManagementService;
import lombok.extern.slf4j.Slf4j;
import net.dv8tion.jda.api.entities.Emote;
@@ -26,7 +26,7 @@ public class EmoteServiceBean implements EmoteService {
private EmoteManagementService emoteManagementService;
@Autowired
- private DynamicKeyLoader keyLoader;
+ private DefaultEmoteManagementService defaultEmoteManagementService;
@Override
public boolean isEmoteUsableByBot(Emote emote) {
@@ -93,7 +93,7 @@ public class EmoteServiceBean implements EmoteService {
@Override
public String getDefaultEmote(String emoteKey) {
- return keyLoader.getDefaultEmotes().get(emoteKey);
+ return defaultEmoteManagementService.getDefaultEmote(emoteKey).getName();
}
@Override
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/LockServiceBean.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/LockServiceBean.java
index 0d62c6dc3..f9f80f027 100644
--- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/LockServiceBean.java
+++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/LockServiceBean.java
@@ -1,7 +1,6 @@
package dev.sheldan.abstracto.core.service;
import dev.sheldan.abstracto.core.command.models.TableLocks;
-import dev.sheldan.abstracto.core.model.database.ALock;
import dev.sheldan.abstracto.core.repository.LockRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -15,19 +14,8 @@ public class LockServiceBean implements LockService {
@Override
public void lockTable(TableLocks toLock) {
int ordinal = toLock.ordinal();
- lockRepository.findArticleForRead((long) ordinal);
+ lockRepository.findALockForRead((long) ordinal);
}
- @Override
- public void setupLocks() {
- for (TableLocks lo :TableLocks.values()) {
- if(!lockRepository.existsById((long)lo.ordinal())) {
- ALock build = ALock
- .builder()
- .id((long) lo.ordinal())
- .build();
- lockRepository.save(build);
- }
- }
- }
+
}
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/PostTargetServiceBean.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/PostTargetServiceBean.java
index b8f5fefdf..438cbc76e 100644
--- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/PostTargetServiceBean.java
+++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/PostTargetServiceBean.java
@@ -1,6 +1,5 @@
package dev.sheldan.abstracto.core.service;
-import dev.sheldan.abstracto.core.config.DynamicKeyLoader;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.PostTargetEnum;
import dev.sheldan.abstracto.core.exception.ChannelNotFoundException;
@@ -8,6 +7,7 @@ import dev.sheldan.abstracto.core.exception.GuildException;
import dev.sheldan.abstracto.core.exception.PostTargetNotFoundException;
import dev.sheldan.abstracto.core.exception.PostTargetNotValidException;
import dev.sheldan.abstracto.core.models.database.AServer;
+import dev.sheldan.abstracto.core.service.management.DefaultPostTargetManagementService;
import dev.sheldan.abstracto.core.service.management.PostTargetManagement;
import dev.sheldan.abstracto.core.models.database.PostTarget;
import dev.sheldan.abstracto.templating.model.MessageToSend;
@@ -36,9 +36,6 @@ public class PostTargetServiceBean implements PostTargetService {
@Autowired
private BotService botService;
- @Autowired
- private DynamicKeyLoader dynamicKeyLoader;
-
@Autowired
private ChannelService channelService;
@@ -48,6 +45,9 @@ public class PostTargetServiceBean implements PostTargetService {
@Autowired
private FeatureConfigService featureConfigService;
+ @Autowired
+ private DefaultPostTargetManagementService defaultPostTargetManagementService;
+
@Override
public CompletableFuture sendTextInPostTarget(String text, PostTarget target) {
return channelService.sendTextToAChannel(text, target.getChannelReference());
@@ -183,7 +183,7 @@ public class PostTargetServiceBean implements PostTargetService {
public void throwIfPostTargetIsNotDefined(PostTargetEnum name, Long serverId) {
PostTarget postTarget = postTargetManagement.getPostTarget(name.getKey(), serverId);
if(postTarget == null) {
- throw new PostTargetNotValidException(name.getKey(), dynamicKeyLoader.getPostTargetsAsList());
+ throw new PostTargetNotValidException(name.getKey(), defaultPostTargetManagementService.getDefaultPostTargetKeys());
}
}
@@ -195,7 +195,7 @@ public class PostTargetServiceBean implements PostTargetService {
@Override
public boolean validPostTarget(String name) {
- List possiblePostTargets = dynamicKeyLoader.getPostTargetsAsList();
+ List possiblePostTargets = defaultPostTargetManagementService.getDefaultPostTargetKeys();
return possiblePostTargets.contains(name);
}
@@ -206,7 +206,7 @@ public class PostTargetServiceBean implements PostTargetService {
@Override
public List getAvailablePostTargets() {
- return dynamicKeyLoader.getPostTargetsAsList();
+ return defaultPostTargetManagementService.getDefaultPostTargetKeys();
}
@Override
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultEmoteManagementServiceBean.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultEmoteManagementServiceBean.java
new file mode 100644
index 000000000..cfb132d7d
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultEmoteManagementServiceBean.java
@@ -0,0 +1,31 @@
+package dev.sheldan.abstracto.core.service.management;
+
+import dev.sheldan.abstracto.core.models.database.DefaultEmote;
+import dev.sheldan.abstracto.core.repository.DefaultEmoteRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Component
+public class DefaultEmoteManagementServiceBean implements DefaultEmoteManagementService {
+
+ @Autowired
+ private DefaultEmoteRepository repository;
+
+ @Override
+ public DefaultEmote getDefaultEmote(String key) {
+ return repository.getByEmoteKey(key);
+ }
+
+ @Override
+ public List getAllDefaultEmotes() {
+ return repository.findAll();
+ }
+
+ @Override
+ public List getDefaultEmoteNames() {
+ return getAllDefaultEmotes().stream().map(DefaultEmote::getEmoteKey).collect(Collectors.toList());
+ }
+}
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultFeatureFlagManagementServiceBean.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultFeatureFlagManagementServiceBean.java
new file mode 100644
index 000000000..79e3f9db0
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultFeatureFlagManagementServiceBean.java
@@ -0,0 +1,26 @@
+package dev.sheldan.abstracto.core.service.management;
+
+import dev.sheldan.abstracto.core.models.database.DefaultFeatureFlag;
+import dev.sheldan.abstracto.core.repository.DefaultFeatureFlagRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Component
+public class DefaultFeatureFlagManagementServiceBean implements DefaultFeatureFlagManagementService{
+
+ @Autowired
+ private DefaultFeatureFlagRepository repository;
+
+ @Override
+ public List getDefaultFeatureKeys() {
+ return repository.findAll().stream().map(defaultFeatureFlag -> defaultFeatureFlag.getFeature().getKey()).collect(Collectors.toList());
+ }
+
+ @Override
+ public List getAllDefaultFeatureFlags() {
+ return repository.findAll();
+ }
+}
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultPostTargetManagementServiceBean.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultPostTargetManagementServiceBean.java
new file mode 100644
index 000000000..15ed6b3e5
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultPostTargetManagementServiceBean.java
@@ -0,0 +1,26 @@
+package dev.sheldan.abstracto.core.service.management;
+
+import dev.sheldan.abstracto.core.models.database.DefaultPostTarget;
+import dev.sheldan.abstracto.core.repository.DefaultPostTargetRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Component
+public class DefaultPostTargetManagementServiceBean implements DefaultPostTargetManagementService {
+
+ @Autowired
+ private DefaultPostTargetRepository repository;
+
+ @Override
+ public List getAllDefaultPostTargets() {
+ return repository.findAll();
+ }
+
+ @Override
+ public List getDefaultPostTargetKeys() {
+ return getAllDefaultPostTargets().stream().map(DefaultPostTarget::getName).collect(Collectors.toList());
+ }
+}
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/EmoteManagementServiceBean.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/EmoteManagementServiceBean.java
index 73834dd02..bd6080aa8 100644
--- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/EmoteManagementServiceBean.java
+++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/EmoteManagementServiceBean.java
@@ -1,6 +1,5 @@
package dev.sheldan.abstracto.core.service.management;
-import dev.sheldan.abstracto.core.config.DynamicKeyLoader;
import dev.sheldan.abstracto.core.exception.EmoteNotFoundException;
import dev.sheldan.abstracto.core.models.database.AEmote;
import dev.sheldan.abstracto.core.models.database.AServer;
@@ -22,7 +21,7 @@ public class EmoteManagementServiceBean implements EmoteManagementService {
private ServerManagementService serverManagementService;
@Autowired
- private DynamicKeyLoader dynamicKeyLoader;
+ private DefaultEmoteManagementService defaultEmoteManagementService;
@Override
public Optional loadEmote(Long id) {
@@ -146,7 +145,7 @@ public class EmoteManagementServiceBean implements EmoteManagementService {
}
private void validateEmoteName(String name) {
- List possibleEmotes = dynamicKeyLoader.getEmoteNamesAsList();
+ List possibleEmotes = defaultEmoteManagementService.getDefaultEmoteNames();
if(!possibleEmotes.contains(name)) {
throw new EmoteNotFoundException(name, possibleEmotes);
}
diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/PostTargetManagementBean.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/PostTargetManagementBean.java
index ab6780ecf..cb260b359 100644
--- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/PostTargetManagementBean.java
+++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/service/management/PostTargetManagementBean.java
@@ -1,6 +1,5 @@
package dev.sheldan.abstracto.core.service.management;
-import dev.sheldan.abstracto.core.config.DynamicKeyLoader;
import dev.sheldan.abstracto.core.exception.ChannelNotFoundException;
import dev.sheldan.abstracto.core.exception.PostTargetNotValidException;
import dev.sheldan.abstracto.core.models.database.AChannel;
@@ -29,15 +28,15 @@ public class PostTargetManagementBean implements PostTargetManagement {
private ServerManagementService serverManagementService;
@Autowired
- private DynamicKeyLoader dynamicKeyLoader;
+ private PostTargetService postTargetService;
@Autowired
- private PostTargetService postTargetService;
+ private DefaultPostTargetManagementService defaultPostTargetManagementService;
@Override
public PostTarget createPostTarget(String name, AServer server, AChannel targetChannel) {
if(!postTargetService.validPostTarget(name)) {
- throw new PostTargetNotValidException(name, dynamicKeyLoader.getPostTargetsAsList());
+ throw new PostTargetNotValidException(name, defaultPostTargetManagementService.getDefaultPostTargetKeys());
}
log.info("Creating post target {} pointing towards {}", name, targetChannel);
PostTarget build = PostTarget.builder().name(name).channelReference(targetChannel).serverReference(server).build();
diff --git a/abstracto-application/core/core-impl/src/main/resources/abstracto.properties b/abstracto-application/core/core-impl/src/main/resources/abstracto.properties
index a20eb690d..7660f98c9 100644
--- a/abstracto-application/core/core-impl/src/main/resources/abstracto.properties
+++ b/abstracto-application/core/core-impl/src/main/resources/abstracto.properties
@@ -2,10 +2,4 @@ abstracto.startup.synchronize=true
abstracto.parameter.lowerBound=50
-abstracto.features.core.enabled=true
-abstracto.prefix=!
abstracto.eventWaiter.threads=10
-
-abstracto.emoteNames.confirmation=confirmation,denial
-abstracto.defaultEmotes.confirmation=\u2705
-abstracto.defaultEmotes.denial=\u274c
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/commands.properties b/abstracto-application/core/core-impl/src/main/resources/commands.properties
deleted file mode 100644
index 65ef89d1e..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/commands.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-abstracto.emoteNames.postReaction=warnReaction,successReaction
-abstracto.defaultEmotes.warnReaction=\u26A0\uFE0F
-abstracto.defaultEmotes.successReaction=\u2705
diff --git a/abstracto-application/core/core-impl/src/main/resources/config/application.properties b/abstracto-application/core/core-impl/src/main/resources/config/application.properties
index a91f2b2fb..26e9a98a8 100644
--- a/abstracto-application/core/core-impl/src/main/resources/config/application.properties
+++ b/abstracto-application/core/core-impl/src/main/resources/config/application.properties
@@ -1,6 +1,6 @@
spring.jpa.show-sql = false
-spring.jpa.hibernate.ddl-auto = update
+spring.jpa.hibernate.ddl-auto = none
spring.jpa.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.naming_strategy = org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.format_sql = false
diff --git a/abstracto-application/core/core-impl/src/main/resources/logback.xml b/abstracto-application/core/core-impl/src/main/resources/logback.xml
index b6a342f66..779e49016 100644
--- a/abstracto-application/core/core-impl/src/main/resources/logback.xml
+++ b/abstracto-application/core/core-impl/src/main/resources/logback.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/collection.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/collection.xml
new file mode 100644
index 000000000..64bad270f
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/collection.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/command.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/command.xml
new file mode 100644
index 000000000..d8de55ceb
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/command.xml
@@ -0,0 +1,179 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/data.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/data.xml
new file mode 100644
index 000000000..f3f8dd83e
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/data.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/default_config.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/default_config.xml
new file mode 100644
index 000000000..4b16380c0
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/default_config.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/default_emote.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/default_emote.xml
new file mode 100644
index 000000000..5540c2508
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/default_emote.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/default_feature_flag.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/default_feature_flag.xml
new file mode 100644
index 000000000..8f6920ea6
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/default_feature_flag.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/feature.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/feature.xml
new file mode 100644
index 000000000..af6923f97
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/feature.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/lock.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/lock.xml
new file mode 100644
index 000000000..4552de1ed
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/lock.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/module.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/module.xml
new file mode 100644
index 000000000..526eb3e9d
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-seedData/module.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/channel.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/channel.xml
new file mode 100644
index 000000000..ddbc55890
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/channel.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/channel_group.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/channel_group.xml
new file mode 100644
index 000000000..5cd9eb25a
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/channel_group.xml
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/command.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/command.xml
new file mode 100644
index 000000000..e82a5d5bf
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/command.xml
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/default_config.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/default_config.xml
new file mode 100644
index 000000000..c1929b5ac
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/default_config.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/default_emote.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/default_emote.xml
new file mode 100644
index 000000000..725f3e63e
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/default_emote.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/default_feature_flag.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/default_feature_flag.xml
new file mode 100644
index 000000000..f28630082
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/default_feature_flag.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/default_post_target.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/default_post_target.xml
new file mode 100644
index 000000000..f8d18ab15
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/default_post_target.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/emote.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/emote.xml
new file mode 100644
index 000000000..c275eb76f
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/emote.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/feature.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/feature.xml
new file mode 100644
index 000000000..5698c2601
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/feature.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/feature_flag.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/feature_flag.xml
new file mode 100644
index 000000000..82fb0c81d
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/feature_flag.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/feature_mode.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/feature_mode.xml
new file mode 100644
index 000000000..3f669cccc
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/feature_mode.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/lock.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/lock.xml
new file mode 100644
index 000000000..117479d27
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/lock.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/module.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/module.xml
new file mode 100644
index 000000000..6b7098bc9
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/module.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/post_target.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/post_target.xml
new file mode 100644
index 000000000..812512725
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/post_target.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/role.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/role.xml
new file mode 100644
index 000000000..23257faf8
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/role.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/server.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/server.xml
new file mode 100644
index 000000000..9b92c8886
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/server.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/system_config.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/system_config.xml
new file mode 100644
index 000000000..357881dc2
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/system_config.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/tables.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/tables.xml
new file mode 100644
index 000000000..f8f4e2d3f
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/tables.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/users.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/users.xml
new file mode 100644
index 000000000..56e08a35c
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/1.0-core/core-tables/users.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/core-changeLog.xml b/abstracto-application/core/core-impl/src/main/resources/migrations/core-changeLog.xml
new file mode 100644
index 000000000..3babe59ed
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/core-changeLog.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/migrations/dbchangelog-3.8.xsd b/abstracto-application/core/core-impl/src/main/resources/migrations/dbchangelog-3.8.xsd
new file mode 100644
index 000000000..ebfe6d612
--- /dev/null
+++ b/abstracto-application/core/core-impl/src/main/resources/migrations/dbchangelog-3.8.xsd
@@ -0,0 +1,1377 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/disable/disable_features_response_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/disable/disable_features_response_en_US.ftl
deleted file mode 100644
index d7af4c4d8..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/disable/disable_features_response_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign featureString>${features?join(", ")}#assign><#include "disable_available_features">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/echo/echo_response_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/echo/echo_response_en_US.ftl
deleted file mode 100644
index e07b42c79..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/echo/echo_response_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-${text}
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/enable/enable_features_response_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/enable/enable_features_response_en_US.ftl
deleted file mode 100644
index e2983439b..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/enable/enable_features_response_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign featureString>${features?join(", ")}#assign><#include "enable_available_features">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/features/features_response_embed_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/features/features_response_embed_en_US.ftl
deleted file mode 100644
index 18bea023f..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/features/features_response_embed_en_US.ftl
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "title": {
- "title": "<#include "features_embed_title">"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "description": "
-<#list features as feature>
-${feature.featureFlag.enabled?string('✅', '❌')} **<#include "${feature.featureConfig.feature.key}_feature">** <#include "feature_embed_key">: `${feature.featureConfig.feature.key}`
-#list>
-"
-}
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/help/help_command_details_response_embed_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/help/help_command_details_response_embed_en_US.ftl
deleted file mode 100644
index 55c46fa3c..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/help/help_command_details_response_embed_en_US.ftl
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "title": {
- "title": "<#include "help_command_embed_title">"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "description": "<#include "help_command_embed_command_name">: **${command.name}**
-<#include "help_command_embed_command_description">: <#if command.templated> <#include "${command.name}_description"> <#else> ${command.description} #if>
-
-<#if command.help??>
-<#if command.help.templated>
-<#include "help_command_embed_command_usage">: `<#include "${command.name}_usage">`
-<#include "help_command_embed_command_detailed_help">: <#include "${command.name}_long_help">
-<#if command.help.hasExample>
-<#include "help_command_embed_command_example">: <#include "${command.name}_example">
-#if>
-<#else>
-<#include "help_command_embed_command_usage">: `${command.help.usage}`
-<#include "help_command_embed_command_detailed_help">: ${command.help.longHelp}
-<#if command.help.hasExample>
-<#include "help_command_embed_command_example">:${command.help.example}
-#if>
-#if>
-<#if command.aliases?? && command.aliases?size gt 0>
-<#include "help_command_embed_command_aliases">: `${command.aliases?join("`, `")}`
-#if>
-<#if restricted?? && restricted>
-<#include "help_command_embed_command_executable_by">:<#if allowedRoles??> <#list allowedRoles as allowedRole> ${allowedRole.asMention}<#sep><#include "help_command_embed_or"><#else><#include "help_command_embed_command_executable_by_nobody">#list> #if>
-<#if immuneRoles?? ><#include "help_command_embed_command_immune">: <#list immuneRoles as immuneRole> ${immuneRole.asMention}<#sep><#include "help_command_embed_or"><#else>None#list> #if>
-<#else>
-<#include "help_command_embed_command_not_restricted">
-#if>
-
-#if>
-<#include "help_command_embed_command_parameters">:
-<#if command.parameters??>
-<#list command.parameters as parameter>
-<#include "help_command_embed_command_description"> `${parameter.name}`: <#if parameter.templated?? && parameter.templated><#include "${command.name}_parameter_${parameter.name}"><#else>${(parameter.description)!""}#if>
-<#include "help_command_embed_command_optional"><#sep>
-
-<#else>
-<#include "help_command_embed_command_no_parameters">
-#list>
-<#else>
-<#include "help_command_embed_command_no_parameters">
-#if>
- "
-}
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/help/help_module_details_response_embed_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/help/help_module_details_response_embed_en_US.ftl
deleted file mode 100644
index cca2cd402..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/help/help_module_details_response_embed_en_US.ftl
+++ /dev/null
@@ -1,23 +0,0 @@
-{
-<#assign name>${module.moduleInterface.info.name}#assign>
- "title": {
- "title": "<#include "help_module_embed_title">"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "description": "
- <#include "help_module_embed_module_name">: **${module.moduleInterface.info.name}**
- <#include "help_module_embed_module_description">: ${module.moduleInterface.info.description}
- <#include "help_module_embed_commands">:
- <#list module.commands as command>`${command.configuration.name}`<#sep>, #list>
- <#if module.subModules??>
- <#include "help_module_embed_sub_modules">: <#list module.subModules as module>`${module.info.name}`<#sep>, #list>
- #if>
- ",
- "footer": {
- "text": "<#include "help_command_embed_hint_footer">"
- }
-}
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/help/help_module_overview_response_embed_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/help/help_module_overview_response_embed_en_US.ftl
deleted file mode 100644
index dbd69ee37..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/help/help_module_overview_response_embed_en_US.ftl
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "title": {
- "title": "<#include "help_modules_embed_title">"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "description": "
- <#list modules as module>
- <#include "help_module_embed_module_name">: **${module.info.name}**
- <#include "help_module_embed_module_description">: ${module.info.description}
- #list>
- ",
- "footer": {
- "text": "<#include "help_modules_embed_footer_hint">"
- }
-}
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/listChannelGroups/listChannelGroups_response_embed_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/listChannelGroups/listChannelGroups_response_embed_en_US.ftl
deleted file mode 100644
index 8f16012ce..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/listChannelGroups/listChannelGroups_response_embed_en_US.ftl
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "title": {
- "title": "<#include "listChannelGroups_embed_title">"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- <#if groups?size = 0>
- "description": "<#include "listChannelGroups_no_channel_group">",
- #if>
- "fields": [
- <#list groups as group>
- {
- "name": "${group.name}",
- "value": "
- <#list group.channels as channel>${channel.discordChannel.asMention}<#sep>,#list>
- "
- }<#sep>,
- <#else>
- #list>
- ]
-}
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/ping/ping_response_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/ping/ping_response_en_US.ftl
deleted file mode 100644
index 26467f0ed..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/ping/ping_response_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "ping_latency_response">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/posttarget/posttarget_invalid_target_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/posttarget/posttarget_invalid_target_en_US.ftl
deleted file mode 100644
index 91a406b18..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/posttarget/posttarget_invalid_target_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "posttarget_invalid_post_target_response"> <#include "posttarget_no_target">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/posttarget/posttarget_show_targets_embed_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/posttarget/posttarget_show_targets_embed_en_US.ftl
deleted file mode 100644
index 16ea09f0f..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/posttarget/posttarget_show_targets_embed_en_US.ftl
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "title": {
- "title": "<#include "posttarget_embed_title">"
- },
- "color" : {
- "r": 200,
- "g": 0,
- "b": 255
- },
- "description": "
-<#list postTargets as postTarget>
-<#assign postTargetName>${postTarget.postTarget.name}#assign>
-<#assign channelMention><#if postTarget.channel?has_content>${postTarget.channel.asMention}<#else><#include "posttarget_no_channel">#if>#assign>
-<#include "posttarget_post_target_text">
-<#else>
-<#include "posttarget_no_post_targets_found">
-#list>
-"
-}
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_cancellation_notification_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_cancellation_notification_en_US.ftl
deleted file mode 100644
index 6d7b71af3..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_cancellation_notification_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign featureName><#include "${featureConfig.feature.key}_feature">#assign><#include "setup_cancellation_message">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_completion_notification_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_completion_notification_en_US.ftl
deleted file mode 100644
index 2e40664bc..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_completion_notification_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign featureName><#include "${featureConfig.feature.key}_feature">#assign><#include "setup_completion_message">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_confirmation_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_confirmation_en_US.ftl
deleted file mode 100644
index 8c19eec28..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_confirmation_en_US.ftl
+++ /dev/null
@@ -1,5 +0,0 @@
-<#list actionConfigs as actionConfig>
-<#assign param=actionConfig.templateModel>
-<#include "${actionConfig.templateName}">
-
-#list>
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_initial_message_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_initial_message_en_US.ftl
deleted file mode 100644
index b9d5dc099..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_initial_message_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign featureName><#include "${featureConfig.feature.key}_feature">#assign><#include "setup_initial_message_display">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_post_target_action_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_post_target_action_en_US.ftl
deleted file mode 100644
index ac509af8a..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_post_target_action_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign postTargetKey>${param.postTargetKey}#assign><#assign channel>${param.channel.asMention}#assign><#include "setup_post_target_action_display">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_post_target_message_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_post_target_message_en_US.ftl
deleted file mode 100644
index cc5cb86e1..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_post_target_message_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign currentTarget><#if currentTextChannel?has_content>${currentTextChannel.asMention}<#else><#include "setup_post_target_no_channel_set">#if>#assign><#include "setup_posttarget_${postTargetKey}">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_system_config_action_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_system_config_action_en_US.ftl
deleted file mode 100644
index bb693f028..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_system_config_action_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign configKey>${param.configKey}#assign><#assign newValue>${param.newValue}#assign><#include "setup_system_config_action_display">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_system_config_message_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_system_config_message_en_US.ftl
deleted file mode 100644
index 50b039278..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreCommands/setup/setup_system_config_message_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign defaultValue=defaultConfig.valueAsString><#include "setup_config_${configKey}">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreEvents/user_join_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreEvents/user_join_en_US.ftl
deleted file mode 100644
index b00f5488d..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreEvents/user_join_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign user>${user.name}#${user.discriminator} (${user.asMention})#assign><#include "user_joined_text">
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreEvents/user_leave_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreEvents/user_leave_en_US.ftl
deleted file mode 100644
index b9ac0f639..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/coreEvents/user_leave_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign user>${user.name}#${user.discriminator} (${user.asMention})#assign><#include "user_left_text">
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/category_not_found_exception_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/category_not_found_exception_en_US.ftl
deleted file mode 100644
index 8f9209bc9..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/category_not_found_exception_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "category_not_found_exception_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/channel_group_exists_exception_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/channel_group_exists_exception_en_US.ftl
deleted file mode 100644
index 5a6ad6378..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/channel_group_exists_exception_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "channel_group_exists_exception_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/channel_group_not_found_exception_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/channel_group_not_found_exception_en_US.ftl
deleted file mode 100644
index aec484819..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/channel_group_not_found_exception_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "channel_group_not_found_exception_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/channel_not_found_exception_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/channel_not_found_exception_en_US.ftl
deleted file mode 100644
index d32073cb5..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/channel_not_found_exception_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The channel ${channelId} was not found in guild ${guildId}.
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/command_not_found_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/command_not_found_en_US.ftl
deleted file mode 100644
index 4c0fe28fb..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/command_not_found_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "command_not_found_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/command_not_found_exception_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/command_not_found_exception_en_US.ftl
deleted file mode 100644
index 60f95309d..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/command_not_found_exception_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "command_not_found_exception_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/config_key_not_found_exception_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/config_key_not_found_exception_en_US.ftl
deleted file mode 100644
index f772f3a94..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/config_key_not_found_exception_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "config_key_not_found_exception_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/core_user_in_server_not_found_exception_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/core_user_in_server_not_found_exception_en_US.ftl
deleted file mode 100644
index e62b0bf7e..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/core_user_in_server_not_found_exception_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "core_user_in_server_not_found_exception_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/could_not_find_role_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/could_not_find_role_en_US.ftl
deleted file mode 100644
index 2e829a252..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/could_not_find_role_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "could_not_find_role_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/duration_invalid_time_format_exception_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/duration_invalid_time_format_exception_en_US.ftl
deleted file mode 100644
index 8f994ef6d..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/duration_invalid_time_format_exception_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "duration_invalid_time_format_exception_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/emote_not_defined_exception_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/emote_not_defined_exception_en_US.ftl
deleted file mode 100644
index 01daf3382..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/emote_not_defined_exception_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "emote_not_defined_exception_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/emote_not_found_exception_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/emote_not_found_exception_en_US.ftl
deleted file mode 100644
index 78134a1ba..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/emote_not_found_exception_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "emote_not_found_exception_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/feature_disabled_message_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/feature_disabled_message_en_US.ftl
deleted file mode 100644
index c52561da6..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/feature_disabled_message_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign featureName><#include "${featureConfig.feature.key}_feature">#assign><#assign featureKey>${featureConfig.feature.key}#assign><#include "feature_disabled_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/feature_mode_not_correct_message_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/feature_mode_not_correct_message_en_US.ftl
deleted file mode 100644
index c846231c5..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/feature_mode_not_correct_message_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign featureName><#include "${featureConfig.feature.key}_feature">#assign><#assign featureKey>${featureConfig.feature.key}#assign><#assign requiredModes><#list command.featureModeLimitations as mode>`${mode.key}`, #list>#assign><#include "feature_mode_not_correct_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/feature_mode_not_found_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/feature_mode_not_found_en_US.ftl
deleted file mode 100644
index f1f29b870..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/feature_mode_not_found_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign availableModes>${availableModes?join(", ")}#assign><#include "feature_mode_not_found_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/feature_not_found_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/feature_not_found_en_US.ftl
deleted file mode 100644
index 7e62b620b..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/feature_not_found_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign availableFeatures>${availableFeatures?join(", ")}#assign><#include "feature_not_found_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/guild_not_found_exception_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/guild_not_found_exception_en_US.ftl
deleted file mode 100644
index eed7b34e8..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/guild_not_found_exception_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "guild_not_found_exception_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/immune_role_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/immune_role_en_US.ftl
deleted file mode 100644
index ebcc7d2f7..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/immune_role_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign roleName>${role.name}#assign> <#include "immune_role_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/incorrect_parameters_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/incorrect_parameters_en_US.ftl
deleted file mode 100644
index 5f1c3978c..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/incorrect_parameters_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign expectedType>${class.simpleName}#assign><#include "incorrect_parameters_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/insufficient_parameters_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/insufficient_parameters_en_US.ftl
deleted file mode 100644
index 2685882e7..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/insufficient_parameters_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "insufficient_parameters_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/insufficient_role_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/insufficient_role_en_US.ftl
deleted file mode 100644
index d9668e70e..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/insufficient_role_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign roles><#list allowedRoles as role>${role.name}<#sep>,<#else>None configured.#list>#assign><#include "insufficient_role_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/member_not_found_exception_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/member_not_found_exception_en_US.ftl
deleted file mode 100644
index 355ef7bd0..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/member_not_found_exception_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "member_not_foound_exception_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/no_feature_command_found_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/no_feature_command_found_en_US.ftl
deleted file mode 100644
index ed2c7470d..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/no_feature_command_found_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "no_feature_command_found_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/parameter_too_long_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/parameter_too_long_en_US.ftl
deleted file mode 100644
index 08e25aa74..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/parameter_too_long_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "parameter_too_long_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/post_target_not_found_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/post_target_not_found_en_US.ftl
deleted file mode 100644
index 1182941ed..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/post_target_not_found_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "post_target_not_found_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/post_target_not_valid_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/post_target_not_valid_en_US.ftl
deleted file mode 100644
index 4eb96fc0a..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/post_target_not_valid_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "post_target_not_valid_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/role_not_found_in_db_exception_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/role_not_found_in_db_exception_en_US.ftl
deleted file mode 100644
index 214899ab8..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/role_not_found_in_db_exception_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "role_not_found_in_db_exception_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/role_not_found_in_guild_exception_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/role_not_found_in_guild_exception_en_US.ftl
deleted file mode 100644
index 84a1a88cf..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/role_not_found_in_guild_exception_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "role_not_found_in_guild_exception_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/setup_no_channel_provided_exception_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/setup_no_channel_provided_exception_en_US.ftl
deleted file mode 100644
index 76b7ab8de..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/setup_no_channel_provided_exception_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "setup_no_channel_provided_exception_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/setup_step_exception_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/setup_step_exception_en_US.ftl
deleted file mode 100644
index a9efedcb2..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/exceptions/setup_step_exception_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign text><#if templateKey?has_content><#assign exceptionModel=templateModel><#include "${templateKey}"><#else>${message}#if>#assign><#include "setup_step_exception_message">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/general/config_key_not_setup_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/general/config_key_not_setup_en_US.ftl
deleted file mode 100644
index 961cf3b2a..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/general/config_key_not_setup_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign configKey>${error.templateModel['configKey']}#assign><#include "config_key_not_setup_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/general/emote_not_setup_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/general/emote_not_setup_en_US.ftl
deleted file mode 100644
index f53efe2b0..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/general/emote_not_setup_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign emoteKey>${error.templateModel['emoteKey']}#assign><#include "emote_key_not_setup_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/general/feature_not_setup_message_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/general/feature_not_setup_message_en_US.ftl
deleted file mode 100644
index 00908b37c..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/general/feature_not_setup_message_en_US.ftl
+++ /dev/null
@@ -1,6 +0,0 @@
-<#assign featureKey><#include "${featureTemplate}">#assign><#include "feature_not_setup_message_text">
-
-<#list errors as error>
-<#include "${error.templateName}">
-
-#list>
\ No newline at end of file
diff --git a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/general/post_target_not_setup_en_US.ftl b/abstracto-application/core/core-impl/src/main/resources/seedData/templates/general/post_target_not_setup_en_US.ftl
deleted file mode 100644
index b2de01816..000000000
--- a/abstracto-application/core/core-impl/src/main/resources/seedData/templates/general/post_target_not_setup_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#assign postTargetKey>${error.templateModel['postTargetKey']}#assign><#include "post_target_not_setup_text">
\ No newline at end of file
diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/exception/CommandNotFoundException.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/exception/CommandNotFoundException.java
index ed732d30c..9f45b63ad 100644
--- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/exception/CommandNotFoundException.java
+++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/exception/CommandNotFoundException.java
@@ -7,6 +7,9 @@ public class CommandNotFoundException extends AbstractoRunTimeException implemen
public CommandNotFoundException() {
super("");
}
+ public CommandNotFoundException(String text) {
+ super(text);
+ }
@Override
public String getTemplateName() {
diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/ACommand.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/ACommand.java
index 7acd80e46..e35a8e38a 100644
--- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/ACommand.java
+++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/ACommand.java
@@ -6,6 +6,7 @@ import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
+import java.time.Instant;
import java.util.Objects;
@Entity
@@ -36,6 +37,22 @@ public class ACommand implements Serializable {
@JoinColumn(name = "feature_id", nullable = false)
private AFeature feature;
+ @Column(name = "created")
+ private Instant created;
+
+ @PrePersist
+ private void onInsert() {
+ this.created = Instant.now();
+ }
+
+ @Column(name = "updated")
+ private Instant updated;
+
+ @PreUpdate
+ private void onUpdate() {
+ this.updated = Instant.now();
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/ACommandInAServer.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/ACommandInAServer.java
index e4c6f50fb..f38016996 100644
--- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/ACommandInAServer.java
+++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/ACommandInAServer.java
@@ -10,7 +10,7 @@ import java.io.Serializable;
import java.util.List;
import java.util.Objects;
-@Entity
+@Entity(name = "command_in_server")
@Getter
@Builder
@Setter
diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/AModule.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/AModule.java
index 2b01f7ba8..ec41fd577 100644
--- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/AModule.java
+++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/models/database/AModule.java
@@ -8,6 +8,7 @@ import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
+import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@@ -37,6 +38,22 @@ public class AModule implements Serializable {
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private List commands = new ArrayList<>();
+ @Column(name = "created")
+ private Instant created;
+
+ @PrePersist
+ private void onInsert() {
+ this.created = Instant.now();
+ }
+
+ @Column(name = "updated")
+ private Instant updated;
+
+ @PreUpdate
+ private void onUpdate() {
+ this.updated = Instant.now();
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/service/management/CommandManagementService.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/service/management/CommandManagementService.java
index 71e552b0a..41fb42d52 100644
--- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/service/management/CommandManagementService.java
+++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/command/service/management/CommandManagementService.java
@@ -4,9 +4,12 @@ import dev.sheldan.abstracto.core.command.models.database.ACommand;
import dev.sheldan.abstracto.core.command.models.database.AModule;
import dev.sheldan.abstracto.core.models.database.AFeature;
+import java.util.Optional;
+
public interface CommandManagementService {
ACommand createCommand(String name, String moduleName, String featureName);
ACommand createCommand(String name, AModule moduleName, AFeature feature);
+ Optional findCommandByNameOptional(String name);
ACommand findCommandByName(String name);
boolean doesCommandExist(String name);
}
diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/config/FeaturePropertiesConfig.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/config/FeaturePropertiesConfig.java
deleted file mode 100644
index c559934ea..000000000
--- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/config/FeaturePropertiesConfig.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package dev.sheldan.abstracto.core.models.config;
-
-import lombok.*;
-
-@Getter
-@Setter
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class FeaturePropertiesConfig {
- private Boolean enabled;
- private String defaultMode;
-}
diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AChannel.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AChannel.java
index 68ea2a6f1..719695716 100644
--- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AChannel.java
+++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AChannel.java
@@ -47,13 +47,11 @@ public class AChannel implements SnowFlake, Serializable {
this.created = Instant.now();
}
-
@Getter
@Setter
@Column
private Boolean deleted;
-
@Override
public boolean equals(Object o) {
if (this == o) return true;
diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/ADefaultConfig.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/ADefaultConfig.java
index 71df72d0f..5921c2edf 100644
--- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/ADefaultConfig.java
+++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/ADefaultConfig.java
@@ -7,7 +7,7 @@ import java.io.Serializable;
import java.time.Instant;
@Entity
-@Table(name="default_configs")
+@Table(name="default_config")
@Builder
@AllArgsConstructor
@NoArgsConstructor
diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AFeature.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AFeature.java
index 94d0eaa61..7c0434171 100644
--- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AFeature.java
+++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AFeature.java
@@ -7,6 +7,7 @@ import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
+import java.time.Instant;
import java.util.List;
import java.util.Objects;
@@ -35,6 +36,22 @@ public class AFeature implements SnowFlake, Serializable {
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private List commands;
+ @Column(name = "created")
+ private Instant created;
+
+ @PrePersist
+ private void onInsert() {
+ this.created = Instant.now();
+ }
+
+ @Column(name = "updated")
+ private Instant updated;
+
+ @PreUpdate
+ private void onUpdate() {
+ this.updated = Instant.now();
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AFeatureMode.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AFeatureMode.java
index 270719ca6..ced721581 100644
--- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AFeatureMode.java
+++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AFeatureMode.java
@@ -8,7 +8,7 @@ import java.io.Serializable;
import java.time.Instant;
@Entity
-@Table(name="feature_modes")
+@Table(name="feature_mode")
@Builder
@NoArgsConstructor
@AllArgsConstructor
diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AServer.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AServer.java
index 86dac4543..80b616be1 100644
--- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AServer.java
+++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AServer.java
@@ -25,8 +25,6 @@ public class AServer implements SnowFlake, Serializable {
@Column(name = "id")
private Long id;
- private String name;
-
@Column(name = "created")
private Instant created;
@@ -93,12 +91,11 @@ public class AServer implements SnowFlake, Serializable {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
AServer aServer = (AServer) o;
- return Objects.equals(id, aServer.id) &&
- Objects.equals(name, aServer.name);
+ return Objects.equals(id, aServer.id);
}
@Override
public int hashCode() {
- return Objects.hash(id, name);
+ return Objects.hash(id);
}
}
diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AUser.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AUser.java
index c6255b87b..b2c90ecc3 100644
--- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AUser.java
+++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/AUser.java
@@ -10,7 +10,7 @@ import java.util.List;
import java.util.Objects;
@Entity
-@Table(name="users")
+@Table(name="auser")
@Builder
@AllArgsConstructor
@NoArgsConstructor
diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/DefaultEmote.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/DefaultEmote.java
new file mode 100644
index 000000000..6f2b8bf4c
--- /dev/null
+++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/DefaultEmote.java
@@ -0,0 +1,64 @@
+package dev.sheldan.abstracto.core.models.database;
+
+import lombok.*;
+import org.hibernate.annotations.CacheConcurrencyStrategy;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.time.Instant;
+import java.util.Objects;
+
+@Entity
+@Table(name = "default_emote")
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Getter
+@Cacheable
+@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
+public class DefaultEmote implements Serializable {
+
+ @javax.persistence.Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Integer id;
+
+ @Column
+ private String name;
+
+ @Column
+ @Setter
+ private String emoteKey;
+
+ @Column(name = "created")
+ private Instant created;
+
+ @PrePersist
+ private void onInsert() {
+ this.created = Instant.now();
+ }
+
+ @Column(name = "updated")
+ private Instant updated;
+
+ @PreUpdate
+ private void onUpdate() {
+ this.updated = Instant.now();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ DefaultEmote that = (DefaultEmote) o;
+ return Objects.equals(id, that.id) &&
+ Objects.equals(name, that.name) &&
+ Objects.equals(emoteKey, that.emoteKey) &&
+ Objects.equals(created, that.created) &&
+ Objects.equals(updated, that.updated);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, name, emoteKey, created, updated);
+ }
+}
diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/DefaultFeatureFlag.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/DefaultFeatureFlag.java
new file mode 100644
index 000000000..99cc6a526
--- /dev/null
+++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/DefaultFeatureFlag.java
@@ -0,0 +1,73 @@
+package dev.sheldan.abstracto.core.models.database;
+
+import lombok.*;
+import org.hibernate.annotations.CacheConcurrencyStrategy;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.time.Instant;
+import java.util.Objects;
+
+@Entity
+@Table(name="default_feature_flag")
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Cacheable
+@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
+public class DefaultFeatureFlag implements Serializable {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Getter
+ @Column(name = "id")
+ public Long id;
+
+ @Getter
+ @Setter
+ @OneToOne
+ @JoinColumn(name = "feature_id", nullable = false)
+ private AFeature feature;
+
+ @Getter
+ @Setter
+ private boolean enabled;
+
+ @Getter
+ @Setter
+ private String mode;
+
+ @Column(name = "created")
+ private Instant created;
+
+ @PrePersist
+ private void onInsert() {
+ this.created = Instant.now();
+ }
+
+ @Column(name = "updated")
+ private Instant updateTimestamp;
+
+ @PreUpdate
+ private void onUpdate() {
+ this.updateTimestamp = Instant.now();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ DefaultFeatureFlag that = (DefaultFeatureFlag) o;
+ return enabled == that.enabled &&
+ Objects.equals(id, that.id) &&
+ Objects.equals(feature, that.feature) &&
+ Objects.equals(mode, that.mode) &&
+ Objects.equals(created, that.created) &&
+ Objects.equals(updateTimestamp, that.updateTimestamp);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, feature, enabled, mode, created, updateTimestamp);
+ }
+}
diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/DefaultPostTarget.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/DefaultPostTarget.java
new file mode 100644
index 000000000..1f2b29bbb
--- /dev/null
+++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/models/database/DefaultPostTarget.java
@@ -0,0 +1,45 @@
+package dev.sheldan.abstracto.core.models.database;
+
+import lombok.*;
+import org.hibernate.annotations.CacheConcurrencyStrategy;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.time.Instant;
+import java.util.Objects;
+
+@Entity
+@Table(name="default_posttarget")
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@Cacheable
+@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
+public class DefaultPostTarget implements Serializable {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Getter
+ private Long id;
+
+ @Getter
+ private String name;
+
+ @Column(name = "created")
+ private Instant created;
+
+ @PrePersist
+ private void onInsert() {
+ this.created = Instant.now();
+ }
+
+ @Column(name = "updated")
+ private Instant updated;
+
+ @PreUpdate
+ private void onUpdate() {
+ this.updated = Instant.now();
+ }
+
+
+}
diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/LockService.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/LockService.java
index 7086943c3..5c44743b1 100644
--- a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/LockService.java
+++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/LockService.java
@@ -4,5 +4,4 @@ import dev.sheldan.abstracto.core.command.models.TableLocks;
public interface LockService {
void lockTable(TableLocks toLock);
- void setupLocks();
}
diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultEmoteManagementService.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultEmoteManagementService.java
new file mode 100644
index 000000000..73bf3a8d8
--- /dev/null
+++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultEmoteManagementService.java
@@ -0,0 +1,11 @@
+package dev.sheldan.abstracto.core.service.management;
+
+import dev.sheldan.abstracto.core.models.database.DefaultEmote;
+
+import java.util.List;
+
+public interface DefaultEmoteManagementService {
+ DefaultEmote getDefaultEmote(String key);
+ List getAllDefaultEmotes();
+ List getDefaultEmoteNames();
+}
diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultFeatureFlagManagementService.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultFeatureFlagManagementService.java
new file mode 100644
index 000000000..9b32d9037
--- /dev/null
+++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultFeatureFlagManagementService.java
@@ -0,0 +1,10 @@
+package dev.sheldan.abstracto.core.service.management;
+
+import dev.sheldan.abstracto.core.models.database.DefaultFeatureFlag;
+
+import java.util.List;
+
+public interface DefaultFeatureFlagManagementService {
+ List getDefaultFeatureKeys();
+ List getAllDefaultFeatureFlags();
+}
diff --git a/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultPostTargetManagementService.java b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultPostTargetManagementService.java
new file mode 100644
index 000000000..20b1c7d03
--- /dev/null
+++ b/abstracto-application/core/core-interface/src/main/java/dev/sheldan/abstracto/core/service/management/DefaultPostTargetManagementService.java
@@ -0,0 +1,10 @@
+package dev.sheldan.abstracto.core.service.management;
+
+import dev.sheldan.abstracto.core.models.database.DefaultPostTarget;
+
+import java.util.List;
+
+public interface DefaultPostTargetManagementService {
+ List getAllDefaultPostTargets();
+ List getDefaultPostTargetKeys();
+}
diff --git a/abstracto-application/coverage/pom.xml b/abstracto-application/coverage/pom.xml
index 70b57073e..7a6189997 100644
--- a/abstracto-application/coverage/pom.xml
+++ b/abstracto-application/coverage/pom.xml
@@ -37,11 +37,6 @@
templating-impl
-
- dev.sheldan.abstracto.templating
- template-config
-
-
dev.sheldan.abstracto.modules
moderation-impl
diff --git a/abstracto-application/installer/pom.xml b/abstracto-application/installer/pom.xml
new file mode 100644
index 000000000..fa512bdd6
--- /dev/null
+++ b/abstracto-application/installer/pom.xml
@@ -0,0 +1,60 @@
+
+
+
+ dev.sheldan.abstracto
+ abstracto-application
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ installer
+ pom
+
+
+
+ deployment-docker
+
+
+
+ io.fabric8
+ docker-maven-plugin
+ 0.33.0
+
+ docker.pkg.github.com/sheldan/abstracto
+
+
+ deployment-container:latest
+
+ ${project.basedir}/src/main/docker
+
+ resources
+ docker.xml
+
+
+
+
+
+
+
+ make-assembly
+ package
+
+ build
+
+
+
+
+
+
+
+ src/main/resources
+ true
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/installer/src/main/docker/Dockerfile b/abstracto-application/installer/src/main/docker/Dockerfile
new file mode 100644
index 000000000..8c91f2004
--- /dev/null
+++ b/abstracto-application/installer/src/main/docker/Dockerfile
@@ -0,0 +1,37 @@
+FROM ubuntu as base
+MAINTAINER Sheldan
+ENV DEBIAN_FRONTEND=noninteractive
+
+ARG maven_version=3.6.3
+ARG liquibase_version=3.8.9
+ARG postgres_driver_version=42.2.14
+# Install prerequisities for Ansible
+RUN apt-get update \
+&& apt-get install -y unzip wget \
+&& rm -rf /var/lib/apt/lists/
+
+# Install liquibase
+RUN mkdir -p /liqiubase \
+&& wget https://github.com/liquibase/liquibase/releases/download/v${liquibase_version}/liquibase-${liquibase_version}.zip -O /tmp/liquibase.zip \
+&& unzip /tmp/liquibase.zip -d /liquibase
+
+RUN mkdir -p /java \
+&& wget https://corretto.aws/downloads/latest/amazon-corretto-8-x64-linux-jdk.tar.gz -O /tmp/java.tar.gz \
+&& tar -xf /tmp/java.tar.gz --strip-components=1 -C /java
+
+# Install postgres driver
+RUN mkdir -p /postgres \
+&& wget https://jdbc.postgresql.org/download/postgresql-${postgres_driver_version}.jar -O /postgres/driver.jar
+
+# Install ansible and required libraries
+
+FROM python:3.7-slim-buster as runtime
+RUN pip3 install --no-cache-dir ansible psycopg2-binary SQLAlchemy lxml
+RUN apt-get update && apt-get install unzip && rm -rf /var/lib/apt/lists/
+COPY --from=base /liquibase /liquibase
+COPY --from=base /postgres /postgres
+COPY --from=base /java /java
+ENV JAVA_HOME=/java/jre
+ADD resources/ /
+RUN chmod +x /deploy.sh
+ENTRYPOINT ["/deploy.sh"]
\ No newline at end of file
diff --git a/abstracto-application/installer/src/main/docker/docker.xml b/abstracto-application/installer/src/main/docker/docker.xml
new file mode 100644
index 000000000..f33c7db3b
--- /dev/null
+++ b/abstracto-application/installer/src/main/docker/docker.xml
@@ -0,0 +1,28 @@
+
+ false
+
+
+ .
+ ${project.basedir}/src/main/resources/ansible
+
+ **/*
+
+
+
+ .
+ ${project.basedir}/src/main/resources/python
+
+ **/*
+
+
+
+ .
+ ${project.basedir}/src/main/resources/wrapper
+
+ **/*
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/installer/src/main/resources/ansible/group_vars/all/python.yml b/abstracto-application/installer/src/main/resources/ansible/group_vars/all/python.yml
new file mode 100644
index 000000000..f1a3ed49c
--- /dev/null
+++ b/abstracto-application/installer/src/main/resources/ansible/group_vars/all/python.yml
@@ -0,0 +1 @@
+ansible_python_interpreter: /usr/bin/python3
diff --git a/abstracto-application/installer/src/main/resources/ansible/playbook.yaml b/abstracto-application/installer/src/main/resources/ansible/playbook.yaml
new file mode 100644
index 000000000..abed3beab
--- /dev/null
+++ b/abstracto-application/installer/src/main/resources/ansible/playbook.yaml
@@ -0,0 +1,8 @@
+---
+
+- hosts: localhost
+ connection: local
+ gather_facts: no
+ roles:
+ - role: database
+
diff --git a/abstracto-application/installer/src/main/resources/ansible/roles/database/files/deploy_templates.py b/abstracto-application/installer/src/main/resources/ansible/roles/database/files/deploy_templates.py
new file mode 100644
index 000000000..910ca2ed3
--- /dev/null
+++ b/abstracto-application/installer/src/main/resources/ansible/roles/database/files/deploy_templates.py
@@ -0,0 +1,35 @@
+import sqlalchemy as db
+import glob
+import os
+import sys
+from sqlalchemy.sql import text
+
+host = os.getenv('DB_HOST')
+port = os.getenv('DB_PORT')
+database = os.getenv('DB_NAME')
+user_name = os.getenv('DB_USER')
+password = os.getenv('DB_PASS')
+folder = sys.argv[1]
+
+engine = db.create_engine('postgres://%s:%s@%s:%s/%s' % (user_name, password, host, port, database))
+
+if not os.path.isdir(folder):
+ print("Given path was not a folder. Exiting.")
+ exit(1)
+
+files = glob.glob(folder + '/**/*.ftl', recursive=True)
+templates = []
+for file in files:
+ with open(file) as template_file:
+ file_content = template_file.read()
+ template_key = os.path.splitext(os.path.basename(file))[0]
+ template = {'key': template_key, 'content': file_content}
+ templates.append(template)
+
+print('Deploying %s templates from folder %s' % (len(templates), folder))
+
+with engine.connect() as con:
+ statement = text("""INSERT INTO template(key, content, last_modified) VALUES(:key, :content, NOW()) ON CONFLICT (key) DO UPDATE SET content = :content""")
+
+ for line in templates:
+ con.execute(statement, **line)
diff --git a/abstracto-application/installer/src/main/resources/ansible/roles/database/tasks/deploy_artifacts.yaml b/abstracto-application/installer/src/main/resources/ansible/roles/database/tasks/deploy_artifacts.yaml
new file mode 100644
index 000000000..5a87f29db
--- /dev/null
+++ b/abstracto-application/installer/src/main/resources/ansible/roles/database/tasks/deploy_artifacts.yaml
@@ -0,0 +1,10 @@
+---
+
+- include_tasks: deploy_template_artifact.yaml
+ name: Deploying translations
+ vars:
+ group_id: "{{ artifact.group_id }}"
+ version: "{{ artifact.version }}"
+ with_items: "{{ artifact.modules }}"
+ loop_control:
+ loop_var: module
diff --git a/abstracto-application/installer/src/main/resources/ansible/roles/database/tasks/deploy_liquibase_change_log.yaml b/abstracto-application/installer/src/main/resources/ansible/roles/database/tasks/deploy_liquibase_change_log.yaml
new file mode 100644
index 000000000..5bebd23f6
--- /dev/null
+++ b/abstracto-application/installer/src/main/resources/ansible/roles/database/tasks/deploy_liquibase_change_log.yaml
@@ -0,0 +1,46 @@
+---
+
+- name: Prepare target directoy
+ delegate_to: localhost
+ file:
+ path: "{{ installer_base_dir }}/liquibase/{{ artifact.group_id }}/{{ artifact.module }}"
+ state: directory
+ mode: '0755'
+
+- name: "Download liquibase artifact {{ artifact.module }} in {{ artifact.group_id }}"
+ delegate_to: localhost
+ maven_artifact:
+ group_id: "{{ artifact.group_id }}"
+ artifact_id: "{{ artifact.module }}"
+ dest: "{{ installer_base_dir }}/liquibase/{{ artifact.group_id }}-{{ artifact.module }}.zip"
+ extension: zip
+ version: "{{ artifact.version }}"
+ repository_url: "file://{{ lookup('env','HOME') }}/.m2/repository"
+ classifier: liquibase
+
+- name: Extract artifact zip
+ delegate_to: localhost
+ unarchive:
+ src: "{{ installer_base_dir }}/liquibase/{{ artifact.group_id }}-{{ artifact.module }}.zip"
+ dest: "{{ installer_base_dir }}/liquibase/{{ artifact.group_id }}/{{ artifact.module }}"
+
+- name: Render liquibase.properties template
+ template:
+ src: liquibase.properties.j2
+ dest: "{{ installer_base_dir }}/liquibase/{{ artifact.group_id }}/{{ artifact.module }}/liquibase.properties"
+ vars:
+ - change_log_file: "{{ installer_base_dir }}//liquibase/{{ artifact.group_id }}/{{ artifact.module }}/{{ artifact.file }}"
+
+
+- name: Run liquibase migration
+ shell: "{{ liquibase_path }}/liquibase --defaultsFile={{ installer_base_dir }}/liquibase/{{ artifact.group_id }}/{{ artifact.module }}/liquibase.properties --logLevel=info update"
+
+- name: Cleanup folder
+ file:
+ path: "{{ installer_base_dir }}/liquibase/{{ artifact.group_id }}"
+ state: absent
+
+- name: Cleanup zip
+ file:
+ path: "{{ installer_base_dir }}/liquibase/{{ artifact.group_id }}-{{ artifact.module }}.zip"
+ state: absent
\ No newline at end of file
diff --git a/abstracto-application/installer/src/main/resources/ansible/roles/database/tasks/deploy_template_artifact.yaml b/abstracto-application/installer/src/main/resources/ansible/roles/database/tasks/deploy_template_artifact.yaml
new file mode 100644
index 000000000..f9e1c1b6a
--- /dev/null
+++ b/abstracto-application/installer/src/main/resources/ansible/roles/database/tasks/deploy_template_artifact.yaml
@@ -0,0 +1,35 @@
+---
+
+- name: Prepare target directoy
+ delegate_to: localhost
+ file:
+ path: "{{ installer_base_dir }}/templates/{{ group_id }}/{{ module }}"
+ state: directory
+ mode: '0755'
+
+- name: Download template artifact {{ module }} in {{ group_id }}
+ delegate_to: localhost
+ maven_artifact:
+ group_id: "{{ group_id }}"
+ artifact_id: "{{ module }}"
+ dest: "{{ installer_base_dir }}/templates/{{ group_id }}-{{ module }}.zip"
+ extension: zip
+ version: "{{ version }}"
+ repository_url: "file://{{ lookup('env','HOME') }}/.m2/repository"
+
+- name: Extract artifact zip
+ delegate_to: localhost
+ unarchive:
+ src: "{{ installer_base_dir }}/templates/{{ group_id }}-{{ module }}.zip"
+ dest: "{{ installer_base_dir }}/templates/{{ group_id }}/{{ module }}"
+
+- name: Deploy templates
+ script: deploy_templates.py "{{ installer_base_dir }}/templates/{{ group_id }}/{{ module }}"
+ args:
+ executable: "{{ ansible_python_interpreter }}"
+
+- name: Cleanup folder
+ file:
+ path: "{{ installer_base_dir }}/templates/"
+ state: absent
+
diff --git a/abstracto-application/installer/src/main/resources/ansible/roles/database/tasks/main.yaml b/abstracto-application/installer/src/main/resources/ansible/roles/database/tasks/main.yaml
new file mode 100644
index 000000000..440f640e7
--- /dev/null
+++ b/abstracto-application/installer/src/main/resources/ansible/roles/database/tasks/main.yaml
@@ -0,0 +1,23 @@
+---
+
+- name: Include custom variables
+ include_vars:
+ dir: "{{ installer_base_dir }}/ansible"
+ depth: 1
+
+- include_tasks: deploy_liquibase_change_log.yaml
+ name: Deploying abstracto liquibase changelogs
+ with_items: "{{ liquibase_artifacts }}"
+ loop_control:
+ loop_var: artifact
+ when: execute_liquibase
+
+
+- include_tasks: deploy_artifacts.yaml
+ name: Deploying abstracto templates
+ with_items: "{{ template_artifacts }}"
+ loop_control:
+ loop_var: artifact
+ when: execute_templates
+
+
diff --git a/abstracto-application/installer/src/main/resources/ansible/roles/database/templates/liquibase.properties.j2 b/abstracto-application/installer/src/main/resources/ansible/roles/database/templates/liquibase.properties.j2
new file mode 100644
index 000000000..ba41a563b
--- /dev/null
+++ b/abstracto-application/installer/src/main/resources/ansible/roles/database/templates/liquibase.properties.j2
@@ -0,0 +1,6 @@
+changeLogFile: {{ change_log_file }}
+driver: org.postgresql.Driver
+url: jdbc:postgresql://{{ db_credentials.host }}:{{ db_credentials.port }}/{{ db_credentials.database }}
+username: {{ db_credentials.user }}
+password: {{ db_credentials.password }}
+classpath: {{ postgres_driver_path }}
\ No newline at end of file
diff --git a/abstracto-application/installer/src/main/resources/ansible/roles/database/vars/main.yaml b/abstracto-application/installer/src/main/resources/ansible/roles/database/vars/main.yaml
new file mode 100644
index 000000000..c15a64371
--- /dev/null
+++ b/abstracto-application/installer/src/main/resources/ansible/roles/database/vars/main.yaml
@@ -0,0 +1,19 @@
+custom_template_artifacts: []
+liquibase_artifacts: []
+
+db_credentials:
+ host: "{{ lookup('env','DB_HOST') }}"
+ port: "{{ lookup('env','DB_PORT') }}"
+ database: "{{ lookup('env','DB_NAME') }}"
+ user: "{{ lookup('env','DB_USER') }}"
+ password: "{{ lookup('env','DB_PASS') }}"
+
+liquibase_path: "{{ lookup('env','LIQUIBASE_PATH') }}"
+postgres_driver_path: "{{ lookup('env','POSTGRES_DRIVER_PATH') }}"
+
+installer_base_dir: "/tmp/installer"
+
+execute_liquibase_input: yes
+execute_templates_input: yes
+execute_liquibase: "{{ True if (execute_liquibase_input | bool) else False }}"
+execute_templates: "{{ True if (execute_templates_input | bool) else False }}"
\ No newline at end of file
diff --git a/abstracto-application/installer/src/main/resources/wrapper/deploy.sh b/abstracto-application/installer/src/main/resources/wrapper/deploy.sh
new file mode 100644
index 000000000..9f06a6be5
--- /dev/null
+++ b/abstracto-application/installer/src/main/resources/wrapper/deploy.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+DEPLOY_LIQUIBASE=no
+DEPLOY_TEMPLATES=no
+
+if [ "x$EXECUTE_LIQUIBASE" = 'xtrue' ]; then
+ DEPLOY_LIQUIBASE=yes
+fi
+
+if [ "x$EXECUTE_TEMPLATES" = 'xtrue' ]; then
+ DEPLOY_TEMPLATES=yes
+fi
+
+if [ "x$EXECUTE_DEPLOYMENT" = 'xtrue' ]; then
+ ansible-playbook playbook.yaml -e "execute_liquibase_input=${DEPLOY_LIQUIBASE}" -e "execute_templates_input=${DEPLOY_TEMPLATES}";
+fi
+
diff --git a/abstracto-application/pom.xml b/abstracto-application/pom.xml
index 10f85470d..c26077a54 100644
--- a/abstracto-application/pom.xml
+++ b/abstracto-application/pom.xml
@@ -22,8 +22,8 @@
templating
abstracto-modules
scheduling
- template-config
documentation
+ installer
bundle
coverage
diff --git a/abstracto-application/scheduling/scheduling-impl/pom.xml b/abstracto-application/scheduling/scheduling-impl/pom.xml
index dc6c27745..d299de272 100644
--- a/abstracto-application/scheduling/scheduling-impl/pom.xml
+++ b/abstracto-application/scheduling/scheduling-impl/pom.xml
@@ -12,6 +12,28 @@
scheduling-impl
+
+
+
+ maven-assembly-plugin
+
+
+ src/main/assembly/liquibase.xml
+
+
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+
+
dev.sheldan.abstracto.scheduling
diff --git a/abstracto-application/scheduling/scheduling-impl/src/main/assembly/liquibase.xml b/abstracto-application/scheduling/scheduling-impl/src/main/assembly/liquibase.xml
new file mode 100644
index 000000000..8b4774fa0
--- /dev/null
+++ b/abstracto-application/scheduling/scheduling-impl/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/abstracto-application/scheduling/scheduling-impl/src/main/java/dev/sheldan/abstracto/scheduling/config/JobConfigLoader.java b/abstracto-application/scheduling/scheduling-impl/src/main/java/dev/sheldan/abstracto/scheduling/config/JobConfigLoader.java
deleted file mode 100644
index 3aa0d57f5..000000000
--- a/abstracto-application/scheduling/scheduling-impl/src/main/java/dev/sheldan/abstracto/scheduling/config/JobConfigLoader.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package dev.sheldan.abstracto.scheduling.config;
-
-import dev.sheldan.abstracto.scheduling.model.SchedulerJobProperties;
-import lombok.Getter;
-import lombok.Setter;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.stereotype.Component;
-
-import java.util.HashMap;
-
-/**
- * Makes the job configuration in each of the property files accessible and usable. This causes the jobs to be automatically loaded and scheduled if they appear in a property file
- */
-@Component
-@Getter
-@Setter
-@ConfigurationProperties(prefix = "abstracto.scheduling")
-public class JobConfigLoader {
- private HashMap jobs = new HashMap<>();
-}
diff --git a/abstracto-application/scheduling/scheduling-impl/src/main/java/dev/sheldan/abstracto/scheduling/factory/SchedulerJobConverter.java b/abstracto-application/scheduling/scheduling-impl/src/main/java/dev/sheldan/abstracto/scheduling/factory/SchedulerJobConverter.java
deleted file mode 100644
index 570d0805a..000000000
--- a/abstracto-application/scheduling/scheduling-impl/src/main/java/dev/sheldan/abstracto/scheduling/factory/SchedulerJobConverter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package dev.sheldan.abstracto.scheduling.factory;
-
-import dev.sheldan.abstracto.scheduling.model.SchedulerJobProperties;
-import dev.sheldan.abstracto.scheduling.model.database.SchedulerJob;
-import org.springframework.stereotype.Component;
-
-@Component
-public class SchedulerJobConverter {
-
- /**
- * Converts a {@link SchedulerJobProperties} instance to a usable {@link SchedulerJob} instance
- * @param properties The instance directly coming from a property file
- * @return A instance eof {@link SchedulerJob} which represents an instance from the database
- */
- public SchedulerJob fromJobProperties(SchedulerJobProperties properties) {
- return SchedulerJob
- .builder()
- .name(properties.getName())
- .groupName(properties.getGroup())
- .active(properties.getActive())
- .cronExpression(properties.getCronExpression())
- .clazz(properties.getClazz())
- .recovery(properties.getRecovery())
- .build();
- }
-}
diff --git a/abstracto-application/scheduling/scheduling-impl/src/main/java/dev/sheldan/abstracto/scheduling/model/SchedulerJobProperties.java b/abstracto-application/scheduling/scheduling-impl/src/main/java/dev/sheldan/abstracto/scheduling/model/SchedulerJobProperties.java
deleted file mode 100644
index f14afc2fa..000000000
--- a/abstracto-application/scheduling/scheduling-impl/src/main/java/dev/sheldan/abstracto/scheduling/model/SchedulerJobProperties.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package dev.sheldan.abstracto.scheduling.model;
-
-
-import lombok.*;
-
-/**
- * The properties which are available to be configured via a property file
- */
-@Getter
-@Setter
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class SchedulerJobProperties {
- /**
- * The name of the job. Necessary to identify the job.
- */
- private String name;
- /**
- * The group in which the job should reside. Necessary to identify the job.
- */
- private String group;
- /**
- * If the job executes on a cron schedule, this should contain the cron expression for this. If it is a one-time job, this needs to be null.
- */
- private String cronExpression;
- /**
- * The absolute class name of the job bean extending {@link org.springframework.scheduling.quartz.QuartzJobBean} which should be executed
- */
- private String clazz;
- /**
- * Whether or not the job is active, and should be scheduled.
- */
- private Boolean active;
- /**
- * Whether or not the job should be re-tried in an recovery of fail over situation.
- */
- private Boolean recovery;
-}
\ No newline at end of file
diff --git a/abstracto-application/scheduling/scheduling-impl/src/main/java/dev/sheldan/abstracto/scheduling/service/SchedulerStartupService.java b/abstracto-application/scheduling/scheduling-impl/src/main/java/dev/sheldan/abstracto/scheduling/service/SchedulerStartupService.java
index 63ddb74a1..7f7e80b4b 100644
--- a/abstracto-application/scheduling/scheduling-impl/src/main/java/dev/sheldan/abstracto/scheduling/service/SchedulerStartupService.java
+++ b/abstracto-application/scheduling/scheduling-impl/src/main/java/dev/sheldan/abstracto/scheduling/service/SchedulerStartupService.java
@@ -1,8 +1,5 @@
package dev.sheldan.abstracto.scheduling.service;
-import dev.sheldan.abstracto.scheduling.config.JobConfigLoader;
-import dev.sheldan.abstracto.scheduling.factory.SchedulerJobConverter;
-import dev.sheldan.abstracto.scheduling.model.database.SchedulerJob;
import dev.sheldan.abstracto.scheduling.service.management.SchedulerJobManagementServiceBean;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -19,25 +16,18 @@ public class SchedulerStartupService {
@Autowired
private SchedulerService schedulerService;
- @Autowired
- private JobConfigLoader jobConfigLoader;
-
@Autowired
private SchedulerJobManagementServiceBean schedulerJobManagementServiceBean;
- @Autowired
- private SchedulerJobConverter schedulerJobConverter;
-
/**
- * Loads the job definitions from the property file and schedules them, if the job does not exist yet.
+ * Loads the job definitions from the database and schedules them, if the job does not exist yet.
*/
@EventListener
@Transactional
public void handleContextRefreshEvent(ContextRefreshedEvent ctxStartEvt) {
- jobConfigLoader.getJobs().forEach((s, schedulerJob) -> {
- SchedulerJob job = schedulerJobConverter.fromJobProperties(schedulerJob);
- if(!schedulerJobManagementServiceBean.doesJobExist(job) || !schedulerJobManagementServiceBean.isJobDefinitionTheSame(job)) {
- schedulerJobManagementServiceBean.createOrUpdate(job);
+ schedulerJobManagementServiceBean.findAll().forEach((schedulerJob) -> {
+ if(!schedulerJobManagementServiceBean.doesJobExist(schedulerJob) || !schedulerJobManagementServiceBean.isJobDefinitionTheSame(schedulerJob)) {
+ schedulerJobManagementServiceBean.createOrUpdate(schedulerJob);
}
});
schedulerService.startScheduledJobs();
diff --git a/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/collection.xml b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/collection.xml
new file mode 100644
index 000000000..3f563b738
--- /dev/null
+++ b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/collection.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_blob_triggers.xml b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_blob_triggers.xml
new file mode 100644
index 000000000..732008472
--- /dev/null
+++ b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_blob_triggers.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_calendars.xml b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_calendars.xml
new file mode 100644
index 000000000..aaa87685b
--- /dev/null
+++ b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_calendars.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_cron_triggers.xml b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_cron_triggers.xml
new file mode 100644
index 000000000..9e5e963eb
--- /dev/null
+++ b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_cron_triggers.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_fired_triggers.xml b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_fired_triggers.xml
new file mode 100644
index 000000000..a05574250
--- /dev/null
+++ b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_fired_triggers.xml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_job_details.xml b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_job_details.xml
new file mode 100644
index 000000000..fe931569d
--- /dev/null
+++ b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_job_details.xml
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_locks.xml b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_locks.xml
new file mode 100644
index 000000000..0b258f2e9
--- /dev/null
+++ b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_locks.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_paused_trigger_grps.xml b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_paused_trigger_grps.xml
new file mode 100644
index 000000000..f627d0d84
--- /dev/null
+++ b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_paused_trigger_grps.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_scheduler_state.xml b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_scheduler_state.xml
new file mode 100644
index 000000000..4d5e0c800
--- /dev/null
+++ b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_scheduler_state.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_simple_triggers.xml b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_simple_triggers.xml
new file mode 100644
index 000000000..573f360c4
--- /dev/null
+++ b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_simple_triggers.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_simprop_triggers.xml b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_simprop_triggers.xml
new file mode 100644
index 000000000..da4e787bc
--- /dev/null
+++ b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_simprop_triggers.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_triggers.xml b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_triggers.xml
new file mode 100644
index 000000000..f1392e138
--- /dev/null
+++ b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/qrtz_triggers.xml
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/scheduler_job.xml b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/scheduler_job.xml
new file mode 100644
index 000000000..b88e9b240
--- /dev/null
+++ b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/scheduler_job.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/tables.xml b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/tables.xml
new file mode 100644
index 000000000..27d89e638
--- /dev/null
+++ b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/1.0-scheduling/scheduling-tables/tables.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/dbchangelog-3.8.xsd b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/dbchangelog-3.8.xsd
new file mode 100644
index 000000000..ebfe6d612
--- /dev/null
+++ b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/dbchangelog-3.8.xsd
@@ -0,0 +1,1377 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/scheduling-changeLog.xml b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/scheduling-changeLog.xml
new file mode 100644
index 000000000..1751c3e4f
--- /dev/null
+++ b/abstracto-application/scheduling/scheduling-impl/src/main/resources/migrations/scheduling-changeLog.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/template-config/pom.xml b/abstracto-application/template-config/pom.xml
deleted file mode 100644
index 2290a933d..000000000
--- a/abstracto-application/template-config/pom.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
- abstracto-application
- dev.sheldan.abstracto
- 1.0-SNAPSHOT
-
- 4.0.0
-
- dev.sheldan.abstracto.templating
- template-config
- jar
-
-
-
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_description_en_US.ftl
deleted file mode 100644
index 8830f2b57..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Adds channels to a channel group.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_example_en_US.ftl
deleted file mode 100644
index 0b22b9641..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-`addToChannelGroup group1 #general` to add the channel #general to the group group1
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_long_help_en_US.ftl
deleted file mode 100644
index 61ae2fceb..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Adds the mentioned channel to the channel group identified by the name.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_parameter_channel_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_parameter_channel_en_US.ftl
deleted file mode 100644
index 62c82d77d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_parameter_channel_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The channel to add to the channel group.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_parameter_name_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_parameter_name_en_US.ftl
deleted file mode 100644
index 2481f9c05..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_parameter_name_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The name of the channel group to which the channel should be added to.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_usage_en_US.ftl
deleted file mode 100644
index 930e1b763..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/addToChannelGroup/help/addToChannelGroup_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-addToChannelGroup
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allow/help/allow_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allow/help/allow_description_en_US.ftl
deleted file mode 100644
index 07902c7dc..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allow/help/allow_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Allows the command or feature to be executed by everyone regardless of role.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allow/help/allow_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allow/help/allow_long_help_en_US.ftl
deleted file mode 100644
index b018f2f04..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allow/help/allow_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-This causes the role checks for each command in the feature/for the given command to be disabled.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allow/help/allow_parameter_component_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allow/help/allow_parameter_component_en_US.ftl
deleted file mode 100644
index d96003c9d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allow/help/allow_parameter_component_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The command/feature name to allow for anyone to execute
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allow/help/allow_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allow/help/allow_usage_en_US.ftl
deleted file mode 100644
index 35cde7c82..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allow/help/allow_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-allow
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_description_en_US.ftl
deleted file mode 100644
index 77b28d335..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Allows the given role to execute the commands in the given feature or the command.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_example_en_US.ftl
deleted file mode 100644
index cac37b38b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-`allowRole moderation @Staff` to allow the role `Staff` to execute all commands in the `moderation` feature (where @Staff is a role mention)
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_long_help_en_US.ftl
deleted file mode 100644
index f2975e27d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_long_help_en_US.ftl
+++ /dev/null
@@ -1,4 +0,0 @@
-Allows the role to execute all commands in the given feature or the command directly.
-In case the names coincide, the the feature will be taken first. The restriction of commands to certain roles is only in effect, if the command is restricted (see `restrict`).
-When executing this command, the affected commands are automatically set to restricted.
-The provided role can either be a role ID or a the mention of the role.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_parameter_component_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_parameter_component_en_US.ftl
deleted file mode 100644
index 0ad8cb9c4..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_parameter_component_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The command/feature the role should be able to execute.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_parameter_role_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_parameter_role_en_US.ftl
deleted file mode 100644
index 60d7f0b3c..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_parameter_role_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The role to allow it for.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_usage_en_US.ftl
deleted file mode 100644
index 606833232..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/allowRole/help/allowRole_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-allowRole
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/clearCache/help/clearCache_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/clearCache/help/clearCache_description_en_US.ftl
deleted file mode 100644
index 097650440..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/clearCache/help/clearCache_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Clears the internal cache.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/clearCache/help/clearCache_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/clearCache/help/clearCache_long_help_en_US.ftl
deleted file mode 100644
index 479df9cf8..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/clearCache/help/clearCache_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Clears the internal cache. This is necessary if values were directly changed in the database, and the changes need to take effect immediately.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/clearCache/help/clearCache_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/clearCache/help/clearCache_usage_en_US.ftl
deleted file mode 100644
index af3f492fa..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/clearCache/help/clearCache_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-clearCache
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/createChannelGroup/help/createChannelGroup_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/createChannelGroup/help/createChannelGroup_description_en_US.ftl
deleted file mode 100644
index 18a746f0a..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/createChannelGroup/help/createChannelGroup_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Adds the given channelIds to the channel group of the given name.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/createChannelGroup/help/createChannelGroup_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/createChannelGroup/help/createChannelGroup_long_help_en_US.ftl
deleted file mode 100644
index 61ae2fceb..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/createChannelGroup/help/createChannelGroup_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Adds the mentioned channel to the channel group identified by the name.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/createChannelGroup/help/createChannelGroup_parameter_name_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/createChannelGroup/help/createChannelGroup_parameter_name_en_US.ftl
deleted file mode 100644
index 2cd5382d1..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/createChannelGroup/help/createChannelGroup_parameter_name_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The name of the channel group to create.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/createChannelGroup/help/createChannelGroup_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/createChannelGroup/help/createChannelGroup_usage_en_US.ftl
deleted file mode 100644
index 930e1b763..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/createChannelGroup/help/createChannelGroup_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-addToChannelGroup
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/deleteChannelGroup/help/deleteChannelGroup_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/deleteChannelGroup/help/deleteChannelGroup_description_en_US.ftl
deleted file mode 100644
index 4bcc0b756..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/deleteChannelGroup/help/deleteChannelGroup_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Deletes a channel group
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/deleteChannelGroup/help/deleteChannelGroup_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/deleteChannelGroup/help/deleteChannelGroup_long_help_en_US.ftl
deleted file mode 100644
index e89a99bf5..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/deleteChannelGroup/help/deleteChannelGroup_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Deletes the channel group identified by the name.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/deleteChannelGroup/help/deleteChannelGroup_parameter_name_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/deleteChannelGroup/help/deleteChannelGroup_parameter_name_en_US.ftl
deleted file mode 100644
index 38d7c08e5..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/deleteChannelGroup/help/deleteChannelGroup_parameter_name_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The name of the channel group to delete.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/deleteChannelGroup/help/deleteChannelGroup_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/deleteChannelGroup/help/deleteChannelGroup_usage_en_US.ftl
deleted file mode 100644
index 14c4bd63e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/deleteChannelGroup/help/deleteChannelGroup_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-deleteChannelGroup
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_description_en_US.ftl
deleted file mode 100644
index 02de66394..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Forbids a role to use a command.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_example_en_US.ftl
deleted file mode 100644
index 434726c57..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-`disAllowRole moderation @Staff` to forbid the role `Staff` to execute all commands in the `moderation` feature (where @Staff is a role mention)
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_long_help_en_US.ftl
deleted file mode 100644
index b34aa64d3..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_long_help_en_US.ftl
+++ /dev/null
@@ -1,5 +0,0 @@
-Forbids the role to execute all commands in the given feature or the command directly.
-Does nothing in case the role was not allowed in the first place.
-In case the names coincide, the the feature will be taken first. The restriction of commands to certain roles is only in effect, if the command is restricted (see `restrict`).
-When executing this command, the affected commands are automatically set to restricted.
-The provided role can either be a role ID or a the mention of the role.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_parameter_component_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_parameter_component_en_US.ftl
deleted file mode 100644
index ede55657d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_parameter_component_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The command/feature the role should not be able to execute.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_parameter_role_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_parameter_role_en_US.ftl
deleted file mode 100644
index e45df4d18..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_parameter_role_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The role to disallow it for.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_usage_en_US.ftl
deleted file mode 100644
index 30e2ac447..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disAllowRole/help/disAllowRole_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-disAllowRole
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/disable_available_features_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/disable_available_features_en_US.ftl
deleted file mode 100644
index 9e4d629ac..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/disable_available_features_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The following features are available: ${featureString}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/help/disable_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/help/disable_description_en_US.ftl
deleted file mode 100644
index a918c3ff4..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/help/disable_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Completely disables a feature for the server.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/help/disable_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/help/disable_example_en_US.ftl
deleted file mode 100644
index 46b28a9de..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/help/disable_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-`disable moderation` to disable the moderation feature
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/help/disable_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/help/disable_long_help_en_US.ftl
deleted file mode 100644
index 46c9651e8..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/help/disable_long_help_en_US.ftl
+++ /dev/null
@@ -1,3 +0,0 @@
-Disables name of the given feature. If no feature is given, it will print the currently known features.
-This does not work retroactively, and does not remove any date associated with the feature.
-This will prevent commands of the feature being used.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/help/disable_parameter_featureName_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/help/disable_parameter_featureName_en_US.ftl
deleted file mode 100644
index 158ea3e31..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/help/disable_parameter_featureName_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The feature to disable.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/help/disable_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/help/disable_usage_en_US.ftl
deleted file mode 100644
index 40a0a4e80..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disable/help/disable_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-disable [featureName]
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_description_en_US.ftl
deleted file mode 100644
index 7a73ca3e5..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Disables a command in a channel group.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_example_en_US.ftl
deleted file mode 100644
index 565f829e7..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-`disableCommand warn group1` to disable the command `warn` in the group `group1`
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_long_help_en_US.ftl
deleted file mode 100644
index ba48ec06c..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_long_help_en_US.ftl
+++ /dev/null
@@ -1,2 +0,0 @@
-Makes it impossible to execute a command in a channel group.
-A command is considered disabled for a given channel, if the command is disabled in all channel groups the channel is part of.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_parameter_channelGroupName_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_parameter_channelGroupName_en_US.ftl
deleted file mode 100644
index c03f495c6..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_parameter_channelGroupName_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The name of the channel group in which the command should be disabled.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_parameter_commandName_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_parameter_commandName_en_US.ftl
deleted file mode 100644
index 1efda49d9..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_parameter_commandName_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The command which should be disabled.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_usage_en_US.ftl
deleted file mode 100644
index 17c985eaf..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/disableCommand/help/disableCommand_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-disableCommand
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/echo/help/echo_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/echo/help/echo_description_en_US.ftl
deleted file mode 100644
index 98b4742da..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/echo/help/echo_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Echos the input back to the same channel
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/echo/help/echo_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/echo/help/echo_long_help_en_US.ftl
deleted file mode 100644
index 56141823e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/echo/help/echo_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Echos back the text put in
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/echo/help/echo_parameter_input_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/echo/help/echo_parameter_input_en_US.ftl
deleted file mode 100644
index 636f56c69..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/echo/help/echo_parameter_input_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The input to echo back.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/echo/help/echo_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/echo/help/echo_usage_en_US.ftl
deleted file mode 100644
index 906218cf0..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/echo/help/echo_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-echo
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/enable_available_features_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/enable_available_features_en_US.ftl
deleted file mode 100644
index 9e4d629ac..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/enable_available_features_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The following features are available: ${featureString}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/help/enable_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/help/enable_description_en_US.ftl
deleted file mode 100644
index 94dbb97f8..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/help/enable_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Enables a feature in the server.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/help/enable_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/help/enable_example_en_US.ftl
deleted file mode 100644
index 09becb440..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/help/enable_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-`enable moderation` to enable the moderation feature
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/help/enable_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/help/enable_long_help_en_US.ftl
deleted file mode 100644
index d65fbcabe..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/help/enable_long_help_en_US.ftl
+++ /dev/null
@@ -1,2 +0,0 @@
-Used to enable a feature of the server. If no feature is passed, this will print all the currently known features.
-This will make it possible that the commands contained in this feature will be executed again.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/help/enable_parameter_featureName_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/help/enable_parameter_featureName_en_US.ftl
deleted file mode 100644
index 6c907ba05..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/help/enable_parameter_featureName_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The feature to enable.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/help/enable_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/help/enable_usage_en_US.ftl
deleted file mode 100644
index c70fca4e8..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enable/help/enable_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-enable [featureName]
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_description_en_US.ftl
deleted file mode 100644
index cf6a897d8..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Enables a command in a channel group.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_example_en_US.ftl
deleted file mode 100644
index 8b17ced68..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-`enableCommand warn group1` to enable the command `warn` in the group `group1`
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_long_help_en_US.ftl
deleted file mode 100644
index bc87bb18b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_long_help_en_US.ftl
+++ /dev/null
@@ -1,2 +0,0 @@
-Makes it possible to execute a command in a channel group.
-A command is considered enabled for a given channel, if the command is enabled in one channel group the channel is part of.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_parameter_channelGroupName_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_parameter_channelGroupName_en_US.ftl
deleted file mode 100644
index b2096af5f..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_parameter_channelGroupName_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The name of the channel group in which the command should be enabled.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_parameter_commandName_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_parameter_commandName_en_US.ftl
deleted file mode 100644
index 78506bb24..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_parameter_commandName_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The command which should be enabled.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_usage_en_US.ftl
deleted file mode 100644
index c0efff856..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/enableCommand/help/enableCommand_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-enableCommand
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/features/help/feature_embed_key_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/features/help/feature_embed_key_en_US.ftl
deleted file mode 100644
index 4802e1c34..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/features/help/feature_embed_key_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Key
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/features/help/features_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/features/help/features_description_en_US.ftl
deleted file mode 100644
index de0359253..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/features/help/features_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Lists all currently known features and their current status.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/features/help/features_embed_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/features/help/features_embed_title_en_US.ftl
deleted file mode 100644
index 1aa124ded..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/features/help/features_embed_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Currently available features
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/features/help/features_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/features/help/features_long_help_en_US.ftl
deleted file mode 100644
index 877224992..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/features/help/features_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-This will print all the currently known features and whether they are enabled on this server or not.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/features/help/features_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/features/help/features_usage_en_US.ftl
deleted file mode 100644
index 01945426e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/features/help/features_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-features
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_aliases_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_aliases_en_US.ftl
deleted file mode 100644
index 979bf1ec8..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_aliases_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Aliases
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_description_en_US.ftl
deleted file mode 100644
index 1b3ff1efc..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Description
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_detailed_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_detailed_help_en_US.ftl
deleted file mode 100644
index a9c996998..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_detailed_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Detailed help
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_example_en_US.ftl
deleted file mode 100644
index 0c3c67e5b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Example
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_executable_by_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_executable_by_en_US.ftl
deleted file mode 100644
index 93505c1d0..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_executable_by_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Executable by
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_executable_by_nobody_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_executable_by_nobody_en_US.ftl
deleted file mode 100644
index d7f9c97d0..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_executable_by_nobody_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Nobody
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_immune_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_immune_en_US.ftl
deleted file mode 100644
index a77dd6e37..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_immune_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Immune roles
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_immune_none_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_immune_none_en_US.ftl
deleted file mode 100644
index 4af18322e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_immune_none_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-None
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_name_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_name_en_US.ftl
deleted file mode 100644
index 636ea505c..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_name_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Name
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_no_parameters_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_no_parameters_en_US.ftl
deleted file mode 100644
index f6d02d091..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_no_parameters_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-No parameters
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_not_restricted_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_not_restricted_en_US.ftl
deleted file mode 100644
index e911d8586..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_not_restricted_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Not restricted
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_optional_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_optional_en_US.ftl
deleted file mode 100644
index 7229ab64b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_optional_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Optional: ${parameter.optional?string('yes', 'no')}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_parameters_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_parameters_en_US.ftl
deleted file mode 100644
index 5ff3d394f..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_parameters_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Parameters
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_restrictions_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_restrictions_en_US.ftl
deleted file mode 100644
index b5e26e04f..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_restrictions_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Restrictions
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_usage_en_US.ftl
deleted file mode 100644
index 87feb57d1..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_command_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Usage
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_or_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_or_en_US.ftl
deleted file mode 100644
index c4fced5f4..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_or_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-or
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_title_en_US.ftl
deleted file mode 100644
index bd74d798f..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/command_embed/help_command_embed_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Help - Command ${command.name} details
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/help/help_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/help/help_description_en_US.ftl
deleted file mode 100644
index 85bd59f99..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/help/help_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Provides help on how to use certain commands.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/help/help_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/help/help_long_help_en_US.ftl
deleted file mode 100644
index a0ca21132..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/help/help_long_help_en_US.ftl
+++ /dev/null
@@ -1,4 +0,0 @@
-Provides support on how to use the commands.
-Gives an overview in which modules the commands are and what commands are available.
-Displays descriptions about commands and detailed information how to use them.
-If no parameter is provided, displays all the currently known modules and description.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/help/help_parameter_name_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/help/help_parameter_name_en_US.ftl
deleted file mode 100644
index 35849566a..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/help/help_parameter_name_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Name of module or command.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/help/help_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/help/help_usage_en_US.ftl
deleted file mode 100644
index 648a815d7..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/help/help_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-help
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_command_embed_hint_footer_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_command_embed_hint_footer_en_US.ftl
deleted file mode 100644
index 5dede8f97..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_command_embed_hint_footer_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Use 'help ' for a detailed overview of this command.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_module_embed_commands_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_module_embed_commands_en_US.ftl
deleted file mode 100644
index 22847c430..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_module_embed_commands_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Commands
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_module_embed_module_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_module_embed_module_description_en_US.ftl
deleted file mode 100644
index 1b3ff1efc..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_module_embed_module_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Description
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_module_embed_module_name_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_module_embed_module_name_en_US.ftl
deleted file mode 100644
index c3cc57f59..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_module_embed_module_name_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Module name
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_module_embed_sub_modules_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_module_embed_sub_modules_en_US.ftl
deleted file mode 100644
index 3101db002..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_module_embed_sub_modules_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Submodules
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_module_embed_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_module_embed_title_en_US.ftl
deleted file mode 100644
index 235f52a23..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/module_embed/help_module_embed_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Help - Module ${name} details
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/modules_embed/help_modules_embed_footer_hint_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/modules_embed/help_modules_embed_footer_hint_en_US.ftl
deleted file mode 100644
index a0009b9f1..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/modules_embed/help_modules_embed_footer_hint_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Use 'help ' for a list of commands of this module.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/modules_embed/help_modules_embed_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/modules_embed/help_modules_embed_title_en_US.ftl
deleted file mode 100644
index b6ca1b49e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/help/modules_embed/help_modules_embed_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Help - Module overview
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/listChannelGroups/help/listChannelGroups_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/listChannelGroups/help/listChannelGroups_description_en_US.ftl
deleted file mode 100644
index 7da5bd9e0..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/listChannelGroups/help/listChannelGroups_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Lists all currently existing channel groups.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/listChannelGroups/help/listChannelGroups_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/listChannelGroups/help/listChannelGroups_long_help_en_US.ftl
deleted file mode 100644
index 308fe2008..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/listChannelGroups/help/listChannelGroups_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-This will list all the currently known channel groups and the respective channels contained in the group.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/listChannelGroups/help/listChannelGroups_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/listChannelGroups/help/listChannelGroups_usage_en_US.ftl
deleted file mode 100644
index d949f3a50..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/listChannelGroups/help/listChannelGroups_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-listChannelGroups
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/listChannelGroups/listChannelGroups_embed_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/listChannelGroups/listChannelGroups_embed_title_en_US.ftl
deleted file mode 100644
index c1a9ed14f..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/listChannelGroups/listChannelGroups_embed_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Current configured channel groups
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/listChannelGroups/listChannelGroups_no_channel_group_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/listChannelGroups/listChannelGroups_no_channel_group_en_US.ftl
deleted file mode 100644
index feb44f2bd..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/listChannelGroups/listChannelGroups_no_channel_group_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-No channel groups available.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_description_en_US.ftl
deleted file mode 100644
index 157234398..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Makes a role affected by certain commands/features
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_example_en_US.ftl
deleted file mode 100644
index 8ce7ab8ae..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-`makeAffected ban @Staff` in order so the role `Staff` can be banned via the command (where @Staff is a role mention)
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_long_help_en_US.ftl
deleted file mode 100644
index 1f2d3f93b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_long_help_en_US.ftl
+++ /dev/null
@@ -1,5 +0,0 @@
-Makes the given role affected by certain commands like `ban`, `warn` or `mute`.
-When a feature name is used, all commands of this feature will be changed.
-Not all commands actually support this functionality.
-By default all roles are affected by the commands.
-The provided role can either be a role ID or a the mention of the role.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_parameter_component_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_parameter_component_en_US.ftl
deleted file mode 100644
index 6e4e49d1e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_parameter_component_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The command/feature name to make the role affected by.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_parameter_role_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_parameter_role_en_US.ftl
deleted file mode 100644
index 7e66e1531..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_parameter_role_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The role to make affected.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_usage_en_US.ftl
deleted file mode 100644
index 1214b73d4..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeAffected/help/makeAffected_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-makeAffected
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_description_en_US.ftl
deleted file mode 100644
index e793f8953..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Makes a role immune against certain commands/complete features
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_example_en_US.ftl
deleted file mode 100644
index 3d127cdc9..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-`makeImmune ban @Staff` in order so the role `Staff` cannot be banned via the command (where @Staff is a role mention)
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_long_help_en_US.ftl
deleted file mode 100644
index 31305b9de..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_long_help_en_US.ftl
+++ /dev/null
@@ -1,5 +0,0 @@
-Makes the given role immune to certain commands like `ban`, `warn` or `mute`.
-When a feature name is used, all commands of this feature will be changed.
-Not all commands actually support this functionality.
-By default all roles are affected by the commands.
-The provided role can either be a role ID or a the mention of the role.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_parameter_component_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_parameter_component_en_US.ftl
deleted file mode 100644
index f398a0971..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_parameter_component_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The command/feature name to make the role immune for.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_parameter_role_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_parameter_role_en_US.ftl
deleted file mode 100644
index 62029afea..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_parameter_role_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The role to make immune.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_usage_en_US.ftl
deleted file mode 100644
index 4ddfaa2d3..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/makeImmune/help/makeImmune_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-makeImmune
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/ping/help/ping_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/ping/help/ping_description_en_US.ftl
deleted file mode 100644
index f9e0e592d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/ping/help/ping_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Prints the latency between the bot and discord.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/ping/help/ping_latency_response_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/ping/help/ping_latency_response_en_US.ftl
deleted file mode 100644
index 77b2eca41..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/ping/help/ping_latency_response_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Latency: ${latency} ms.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/ping/help/ping_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/ping/help/ping_long_help_en_US.ftl
deleted file mode 100644
index dd43ad183..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/ping/help/ping_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Prints the time in milliseconds of the last heartbeat request.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/ping/help/ping_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/ping/help/ping_usage_en_US.ftl
deleted file mode 100644
index 32c35a995..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/ping/help/ping_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-ping
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_description_en_US.ftl
deleted file mode 100644
index 05a541a96..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Sets the target of the given posts to a channel.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_example_en_US.ftl
deleted file mode 100644
index 224fdcb90..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-`posttarget banLog #general` to log the bans in the #general channel.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_long_help_en_US.ftl
deleted file mode 100644
index 2126bae8b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_long_help_en_US.ftl
+++ /dev/null
@@ -1,3 +0,0 @@
-Sets the target of the given posts to a channel. You have to mention the channel with #.
-When no parameter is given, the currently available post targets are printed. If the post targets are already defined to
-point to an existing text channel, they will be mentioned.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_parameter_channel_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_parameter_channel_en_US.ftl
deleted file mode 100644
index c3494a2b8..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_parameter_channel_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The channel which should be used as the post target.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_parameter_name_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_parameter_name_en_US.ftl
deleted file mode 100644
index 42c5bcbd4..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_parameter_name_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The name of the post target which should be directed to the channel.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_usage_en_US.ftl
deleted file mode 100644
index 99b53751e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/help/posttarget_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-posttarget
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_available_post_targets_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_available_post_targets_en_US.ftl
deleted file mode 100644
index 9a61f0de5..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_available_post_targets_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The available post targets are
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_embed_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_embed_title_en_US.ftl
deleted file mode 100644
index 52bbedd72..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_embed_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Current post targets
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_invalid_post_target_response_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_invalid_post_target_response_en_US.ftl
deleted file mode 100644
index 1ca40d8a0..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_invalid_post_target_response_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The provided post target is invalid.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_no_channel_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_no_channel_en_US.ftl
deleted file mode 100644
index cf80ea199..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_no_channel_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-No channel
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_no_post_targets_found_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_no_post_targets_found_en_US.ftl
deleted file mode 100644
index 65573c141..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_no_post_targets_found_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-No post targets found.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_post_target_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_post_target_text_en_US.ftl
deleted file mode 100644
index 9aedc163f..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/posttarget/posttarget_post_target_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Post target ${postTargetName} points to ${channelMention}.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_description_en_US.ftl
deleted file mode 100644
index 4ae6aaef5..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Removes channels from a channel group.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_example_en_US.ftl
deleted file mode 100644
index a65545dc2..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-`removeFromChannelGroup group1 #general` to remove the channel #general from the group `group1`
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_long_help_en_US.ftl
deleted file mode 100644
index e071d24d9..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Removes the mentioned channel from the channel group identified by the name.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_parameter_channel_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_parameter_channel_en_US.ftl
deleted file mode 100644
index 4a4ac08cb..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_parameter_channel_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The channel to remove from the channel group.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_parameter_name_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_parameter_name_en_US.ftl
deleted file mode 100644
index a9fb24bd2..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_parameter_name_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The name of the channel group to which the channel should be removed from.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_usage_en_US.ftl
deleted file mode 100644
index ee99f78a1..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/removeFromChannelGroup/help/removeFromChannelGroup_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-removeFromChannelGroup
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/restrict/help/restrict_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/restrict/help/restrict_description_en_US.ftl
deleted file mode 100644
index df8d0fba7..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/restrict/help/restrict_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Restricts a command/feature.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/restrict/help/restrict_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/restrict/help/restrict_long_help_en_US.ftl
deleted file mode 100644
index 79dbe2865..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/restrict/help/restrict_long_help_en_US.ftl
+++ /dev/null
@@ -1,3 +0,0 @@
-Makes the command affected by role restrictions.
-If a command is not restricted, any role is able to execute it, even though there are certain roles allowed to execute it.
-If a feature name is given, all the commands in the feature are getting restricted.
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/restrict/help/restrict_parameter_component_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/restrict/help/restrict_parameter_component_en_US.ftl
deleted file mode 100644
index d5d166e66..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/restrict/help/restrict_parameter_component_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The command/feature name to restrict.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/restrict/help/restrict_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/restrict/help/restrict_usage_en_US.ftl
deleted file mode 100644
index 93f81f903..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/restrict/help/restrict_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-restrict
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_description_en_US.ftl
deleted file mode 100644
index 89b198df1..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Changes a value of the bots configuration
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_example_en_US.ftl
deleted file mode 100644
index de965ef5d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-`setConfig expMin 15` to set the minimum experience to 15
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_long_help_en_US.ftl
deleted file mode 100644
index 1fc24bba0..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Sets a value in the bots configuration to the given value.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_parameter_key_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_parameter_key_en_US.ftl
deleted file mode 100644
index a910ac9f9..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_parameter_key_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The key to change.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_parameter_value_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_parameter_value_en_US.ftl
deleted file mode 100644
index d80b7663a..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_parameter_value_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The value to set the key to.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_usage_en_US.ftl
deleted file mode 100644
index def1d432d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setConfig/help/setConfig_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-setConfig
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setEmote/help/setEmote_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setEmote/help/setEmote_description_en_US.ftl
deleted file mode 100644
index b472ea4ff..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setEmote/help/setEmote_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Changes the emotes used by the bot
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setEmote/help/setEmote_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setEmote/help/setEmote_long_help_en_US.ftl
deleted file mode 100644
index 4c4777831..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setEmote/help/setEmote_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The bot uses certain when doing certain actions. This command can be used to redefine these emotes.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setEmote/help/setEmote_parameter_emoteKey_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setEmote/help/setEmote_parameter_emoteKey_en_US.ftl
deleted file mode 100644
index e88d55db6..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setEmote/help/setEmote_parameter_emoteKey_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The internal key of the emote
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setEmote/help/setEmote_parameter_emote_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setEmote/help/setEmote_parameter_emote_en_US.ftl
deleted file mode 100644
index bbd70048d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setEmote/help/setEmote_parameter_emote_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The emote to be used
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setEmote/help/setEmote_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setEmote/help/setEmote_usage_en_US.ftl
deleted file mode 100644
index e94914f2c..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setEmote/help/setEmote_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-setEmote
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_description_en_US.ftl
deleted file mode 100644
index f3c86b969..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Changes the mode of a features.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_example_en_US.ftl
deleted file mode 100644
index c4edd321b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-setMode modmail nolog
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_long_help_en_US.ftl
deleted file mode 100644
index e247d954b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The features of the bot have different modes. These modes influence how the features behave. With this command you can change the mode of a certain feature in this guild.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_parameter_feature_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_parameter_feature_en_US.ftl
deleted file mode 100644
index 02bbfa242..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_parameter_feature_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The feature to change the mode for.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_parameter_newMode_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_parameter_newMode_en_US.ftl
deleted file mode 100644
index e88d55db6..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_parameter_newMode_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The internal key of the emote
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_usage_en_US.ftl
deleted file mode 100644
index 4595a1807..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setMode/help/setMode_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-setMode
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setPrefix/help/setPrefix_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setPrefix/help/setPrefix_description_en_US.ftl
deleted file mode 100644
index c20d1d2f8..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setPrefix/help/setPrefix_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Changes the prefix of the bot
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setPrefix/help/setPrefix_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setPrefix/help/setPrefix_long_help_en_US.ftl
deleted file mode 100644
index 2803b346b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setPrefix/help/setPrefix_long_help_en_US.ftl
+++ /dev/null
@@ -1,2 +0,0 @@
-Changes the prefix of the bot on this server. This effect is immediate.
-This prefix can also be multiple characters.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setPrefix/help/setPrefix_parameter_prefix_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setPrefix/help/setPrefix_parameter_prefix_en_US.ftl
deleted file mode 100644
index 876bab20e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setPrefix/help/setPrefix_parameter_prefix_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The new prefix to be used for this server.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setPrefix/help/setPrefix_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setPrefix/help/setPrefix_usage_en_US.ftl
deleted file mode 100644
index 867f56ffb..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setPrefix/help/setPrefix_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-setPrefix
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/help/setup_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/help/setup_description_en_US.ftl
deleted file mode 100644
index 11980f4b5..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/help/setup_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Helps to setup the necessary configuration for a feature.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/help/setup_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/help/setup_long_help_en_US.ftl
deleted file mode 100644
index dc2502ca1..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/help/setup_long_help_en_US.ftl
+++ /dev/null
@@ -1,2 +0,0 @@
-Guides you through an interactive wizard where post targets, system configs and other necessary configurations for a feature are setup.
-At the end you have the possibility to review the changes, before applying them.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/help/setup_parameter_feature_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/help/setup_parameter_feature_en_US.ftl
deleted file mode 100644
index ad14cc21e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/help/setup_parameter_feature_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The feature to setup.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/help/setup_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/help/setup_usage_en_US.ftl
deleted file mode 100644
index 80f9abfa1..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/help/setup_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-setup
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/setup_cancellation_message_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/setup_cancellation_message_en_US.ftl
deleted file mode 100644
index 3abfc4fe8..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/setup_cancellation_message_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Setup for ${featureName} has been cancelled.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/setup_completion_message_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/setup_completion_message_en_US.ftl
deleted file mode 100644
index 887763437..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/setup_completion_message_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Setup for ${featureName} has been completed successfully.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/setup_confirmation_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/setup_confirmation_title_en_US.ftl
deleted file mode 100644
index 9136016ae..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/setup_confirmation_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Do you want to apply this configuration?
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/setup_initial_message_display_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/setup_initial_message_display_en_US.ftl
deleted file mode 100644
index f27c3298a..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/commands/setup/setup_initial_message_display_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Starting setup of feature ${featureName}. Type 'exit' to stop or 'default' to keep the proposed default value.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/config/core_feature_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/config/core_feature_en_US.ftl
deleted file mode 100644
index a9f9bd175..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/config/core_feature_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Core
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/config/setup_config_cat_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/config/setup_config_cat_en_US.ftl
deleted file mode 100644
index f109ee1d3..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/config/setup_config_cat_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Mod mail category to be used for something
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/config/setup_configuration_timeout_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/config/setup_configuration_timeout_en_US.ftl
deleted file mode 100644
index 2cb715af4..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/config/setup_configuration_timeout_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Timeout when using the setup wizard.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/config/setup_post_target_action_display_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/config/setup_post_target_action_display_en_US.ftl
deleted file mode 100644
index f113b93e0..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/config/setup_post_target_action_display_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Post target ${postTargetKey} will be set to channel ${channel}.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/config/setup_post_target_no_channel_set_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/config/setup_post_target_no_channel_set_en_US.ftl
deleted file mode 100644
index baef6758f..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/config/setup_post_target_no_channel_set_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-No channel set
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/config/setup_system_config_action_display_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/config/setup_system_config_action_display_en_US.ftl
deleted file mode 100644
index e93636934..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/config/setup_system_config_action_display_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-System config ${configKey} will be set to ${newValue}.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/category_not_found_exception_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/category_not_found_exception_text_en_US.ftl
deleted file mode 100644
index c366e6b67..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/category_not_found_exception_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The category ${categoryId?c} was not found in guild ${guildId?c}.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/channel_group_exists_exception_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/channel_group_exists_exception_text_en_US.ftl
deleted file mode 100644
index 537a9fc94..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/channel_group_exists_exception_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Channel group ${name} already exists.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/channel_group_not_found_exception_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/channel_group_not_found_exception_text_en_US.ftl
deleted file mode 100644
index 61eb5492b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/channel_group_not_found_exception_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Channel group ${name} does not exist. The available channel groups are ${available}.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/channel_not_found_exception_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/channel_not_found_exception_text_en_US.ftl
deleted file mode 100644
index da7d70d81..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/channel_not_found_exception_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "channel_not_found_exception_text">
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/command_not_found_exception_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/command_not_found_exception_text_en_US.ftl
deleted file mode 100644
index 244065545..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/command_not_found_exception_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Command not found.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/command_not_found_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/command_not_found_text_en_US.ftl
deleted file mode 100644
index 508de0b6d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/command_not_found_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Command was not found.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/config_key_not_found_exception_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/config_key_not_found_exception_text_en_US.ftl
deleted file mode 100644
index 99070425b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/config_key_not_found_exception_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The key ${key} was not found.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/core_user_in_server_not_found_exception_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/core_user_in_server_not_found_exception_text_en_US.ftl
deleted file mode 100644
index e61a5a7a3..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/core_user_in_server_not_found_exception_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-User in server ${userInServerId} was not found.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/could_not_find_role_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/could_not_find_role_text_en_US.ftl
deleted file mode 100644
index 7b0b30023..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/could_not_find_role_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Could not find role.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/duration_invalid_time_format_exception_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/duration_invalid_time_format_exception_text_en_US.ftl
deleted file mode 100644
index d9dcc480b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/duration_invalid_time_format_exception_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Invalid time format: ${format}. Valid formats are ${valid}. Beware to not use a space between the number and the unit.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/emote_not_defined_exception_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/emote_not_defined_exception_text_en_US.ftl
deleted file mode 100644
index 0c37c0b39..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/emote_not_defined_exception_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The emote ${emoteKey} was not defined for this server.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/emote_not_found_exception_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/emote_not_found_exception_text_en_US.ftl
deleted file mode 100644
index 8ddc8636e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/emote_not_found_exception_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The emote ${emoteKey} was not found. The available emotes are: ${available}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/feature_disabled_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/feature_disabled_text_en_US.ftl
deleted file mode 100644
index 4e32f8875..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/feature_disabled_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Feature has been disabled. Necessary feature is: ${featureName}, you can enable it by executing `enable ${featureKey}`.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/feature_mode_not_correct_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/feature_mode_not_correct_text_en_US.ftl
deleted file mode 100644
index 6d418a0c3..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/feature_mode_not_correct_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The feature `${featureName}` (with the key `${featureKey}`) is in the wrong mode to execute this command. One of the following is required: ${requiredModes}.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/feature_mode_not_found_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/feature_mode_not_found_text_en_US.ftl
deleted file mode 100644
index c6f85a234..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/feature_mode_not_found_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Feature mode `${featureMode}` not available. The available feature modes are: ${availableModes}.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/feature_not_found_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/feature_not_found_text_en_US.ftl
deleted file mode 100644
index ac25aec6e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/feature_not_found_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Feature ${featureName} not available. The available features are: ${availableFeatures}.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/guild_not_found_exception_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/guild_not_found_exception_text_en_US.ftl
deleted file mode 100644
index 5af147827..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/guild_not_found_exception_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Guild ${guildId} was not found.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/immune_role_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/immune_role_text_en_US.ftl
deleted file mode 100644
index 914c2ba27..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/immune_role_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The targeted user is immune against this command, because of the role: ${roleName}.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/incorrect_parameters_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/incorrect_parameters_text_en_US.ftl
deleted file mode 100644
index 92224eebe..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/incorrect_parameters_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The necessary parameters were not found. A '${expectedType}' was expected as '${parameterName}'. Consult help to see the correct syntax.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/insufficient_parameters_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/insufficient_parameters_text_en_US.ftl
deleted file mode 100644
index 0d58143cd..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/insufficient_parameters_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Insufficient parameters: ${parameterName} was not found.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/insufficient_role_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/insufficient_role_text_en_US.ftl
deleted file mode 100644
index 89e79e86a..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/insufficient_role_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-You lack the necessary role to execute this command. One of the following is needed: ${roles}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/member_not_foound_exception_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/member_not_foound_exception_text_en_US.ftl
deleted file mode 100644
index 28cef3149..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/member_not_foound_exception_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Member not found.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/no_feature_command_found_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/no_feature_command_found_text_en_US.ftl
deleted file mode 100644
index df861ef58..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/no_feature_command_found_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-No Feature/Command with that name.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/parameter_too_long_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/parameter_too_long_text_en_US.ftl
deleted file mode 100644
index 013e2ea27..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/parameter_too_long_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The parameter ${parameterName} had a too large value: ${actualLength}. The maximum is: ${maximumLength}.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/post_target_not_found_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/post_target_not_found_text_en_US.ftl
deleted file mode 100644
index aef2235fa..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/post_target_not_found_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Post target ${key} was not found.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/post_target_not_valid_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/post_target_not_valid_text_en_US.ftl
deleted file mode 100644
index 33d821dd3..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/post_target_not_valid_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Post target ${key} is not available. The possible post targets are: ${available}.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/role_not_found_in_db_exception_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/role_not_found_in_db_exception_text_en_US.ftl
deleted file mode 100644
index 3dc60b0bd..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/role_not_found_in_db_exception_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Role ${roleId} was not found in the database.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/role_not_found_in_guild_exception_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/role_not_found_in_guild_exception_text_en_US.ftl
deleted file mode 100644
index f85739090..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/role_not_found_in_guild_exception_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Role ${roleId} was not found in server ${serverId}.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/setup_no_channel_provided_exception_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/setup_no_channel_provided_exception_text_en_US.ftl
deleted file mode 100644
index c5bf27580..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/setup_no_channel_provided_exception_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-No channel was entered.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/setup_step_exception_message_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/setup_step_exception_message_en_US.ftl
deleted file mode 100644
index 0cfe02511..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/exception/setup_step_exception_message_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Failed to execute wizard step: ${text}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/config_key_not_setup_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/config_key_not_setup_text_en_US.ftl
deleted file mode 100644
index 7aa742d01..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/config_key_not_setup_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-System config `${configKey}` is not set up.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_day_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_day_en_US.ftl
deleted file mode 100644
index 524d69531..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_day_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-1 day
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_days_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_days_en_US.ftl
deleted file mode 100644
index a3ccfece8..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_days_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-${days} days
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_hour_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_hour_en_US.ftl
deleted file mode 100644
index 5be7fa748..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_hour_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-1 hour
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_hours_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_hours_en_US.ftl
deleted file mode 100644
index 90ff70cf4..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_hours_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-${hours} hours
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_minute_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_minute_en_US.ftl
deleted file mode 100644
index ac6602da2..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_minute_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-1 minute
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_minutes_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_minutes_en_US.ftl
deleted file mode 100644
index 86d6099a1..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_minutes_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-${minutes} minutes
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_second_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_second_en_US.ftl
deleted file mode 100644
index df3fbee70..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_second_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-1 second
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_seconds_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_seconds_en_US.ftl
deleted file mode 100644
index d3f79ec2b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/duration_seconds_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-${seconds} seconds
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/embed_page_count_page_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/embed_page_count_page_en_US.ftl
deleted file mode 100644
index d95c047ca..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/embed_page_count_page_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Page ${count}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/emote_key_not_setup_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/emote_key_not_setup_text_en_US.ftl
deleted file mode 100644
index 09441b75c..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/emote_key_not_setup_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Emote `${emoteKey}` is not set up.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/feature_not_setup_message_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/feature_not_setup_message_text_en_US.ftl
deleted file mode 100644
index 516cfad0c..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/feature_not_setup_message_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Feature ${featureKey} not properly setup. The feature is enabled regardless. You need to configure the missing properties in order for it to function properly.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/post_target_not_setup_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/post_target_not_setup_text_en_US.ftl
deleted file mode 100644
index e837cfe65..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/post_target_not_setup_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Post target `${postTargetKey}` is not set up.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/user_left_server_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/user_left_server_en_US.ftl
deleted file mode 100644
index be6704a8f..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/core/general/user_left_server_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-User has left the server
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpForRole/help/disableExpForRole_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpForRole/help/disableExpForRole_description_en_US.ftl
deleted file mode 100644
index 5b03b0b0b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpForRole/help/disableExpForRole_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Sets the role which should not gain experience.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpForRole/help/disableExpForRole_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpForRole/help/disableExpForRole_long_help_en_US.ftl
deleted file mode 100644
index 16bd3f87f..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpForRole/help/disableExpForRole_long_help_en_US.ftl
+++ /dev/null
@@ -1,2 +0,0 @@
-Adds the given role to the roles for which the users having this role should not gain any experience.
-If a member has *any* of these roles, the user will not gain experience.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpForRole/help/disableExpForRole_parameter_role_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpForRole/help/disableExpForRole_parameter_role_en_US.ftl
deleted file mode 100644
index 0e3410add..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpForRole/help/disableExpForRole_parameter_role_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The role which should not gain any experience anymore
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpForRole/help/disableExpForRole_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpForRole/help/disableExpForRole_usage_en_US.ftl
deleted file mode 100644
index 94043e504..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpForRole/help/disableExpForRole_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-disableExpForRole
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpGain/help/disableExpGain_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpGain/help/disableExpGain_description_en_US.ftl
deleted file mode 100644
index f2de327cb..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpGain/help/disableExpGain_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Disables experience gain for a particular member
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpGain/help/disableExpGain_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpGain/help/disableExpGain_long_help_en_US.ftl
deleted file mode 100644
index fb2d06687..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpGain/help/disableExpGain_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Disables the experience gain for one specific user. This user will not gain experience and will not gain ranks.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpGain/help/disableExpGain_parameter_user_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpGain/help/disableExpGain_parameter_user_en_US.ftl
deleted file mode 100644
index c4607e1b5..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpGain/help/disableExpGain_parameter_user_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The user to disable experience gain for.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpGain/help/disableExpGain_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpGain/help/disableExpGain_usage_en_US.ftl
deleted file mode 100644
index 11dca1119..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/disableExpGain/help/disableExpGain_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-disableExpGain
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpForRole/help/enableExpForRole_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpForRole/help/enableExpForRole_description_en_US.ftl
deleted file mode 100644
index ebcc05d57..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpForRole/help/enableExpForRole_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Re-enables the experience gain for the specified role.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpForRole/help/enableExpForRole_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpForRole/help/enableExpForRole_long_help_en_US.ftl
deleted file mode 100644
index 88bb2d27c..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpForRole/help/enableExpForRole_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Enables the experience gain for the specified role. If a user has any of the roles for which experience gain is disabled, the user will not gain experience.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpForRole/help/enableExpForRole_parameter_role_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpForRole/help/enableExpForRole_parameter_role_en_US.ftl
deleted file mode 100644
index f20e4fb53..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpForRole/help/enableExpForRole_parameter_role_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The role to re-enable experience gain for.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpForRole/help/enableExpForRole_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpForRole/help/enableExpForRole_usage_en_US.ftl
deleted file mode 100644
index a83303129..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpForRole/help/enableExpForRole_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-enableExpForRole
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpGain/help/enableExpGain_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpGain/help/enableExpGain_description_en_US.ftl
deleted file mode 100644
index 4ddbaccf5..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpGain/help/enableExpGain_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Enables experience gain for a particular member
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpGain/help/enableExpGain_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpGain/help/enableExpGain_long_help_en_US.ftl
deleted file mode 100644
index afa742bb5..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpGain/help/enableExpGain_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Enables the experience gain for one specific user. This user will gain experience and will gain ranks.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpGain/help/enableExpGain_parameter_user_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpGain/help/enableExpGain_parameter_user_en_US.ftl
deleted file mode 100644
index 54bf14b84..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpGain/help/enableExpGain_parameter_user_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The user to enable experience gain for.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpGain/help/enableExpGain_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpGain/help/enableExpGain_usage_en_US.ftl
deleted file mode 100644
index 41625fcc3..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/enableExpGain/help/enableExpGain_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-enableExpGain
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/expScale/help/expScale_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/expScale/help/expScale_description_en_US.ftl
deleted file mode 100644
index 2ecb8249d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/expScale/help/expScale_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Changes the experience scale of this server to the new given value.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/expScale/help/expScale_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/expScale/help/expScale_long_help_en_US.ftl
deleted file mode 100644
index b3b80c568..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/expScale/help/expScale_long_help_en_US.ftl
+++ /dev/null
@@ -1,2 +0,0 @@
-Changes the experience scale on this server. This will only affect messages in the future. This scales the experience *after* the calculation has been done.
-So if the range is 10-25, a random experience in this range will be determined and *then* multiplied by this scale.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/expScale/help/expScale_parameter_scale_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/expScale/help/expScale_parameter_scale_en_US.ftl
deleted file mode 100644
index 80c89b026..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/expScale/help/expScale_parameter_scale_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The new value the experience should be scaled by.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/expScale/help/expScale_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/expScale/help/expScale_usage_en_US.ftl
deleted file mode 100644
index 61b5c7d19..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/expScale/help/expScale_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-expScale
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/help/leaderboard_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/help/leaderboard_description_en_US.ftl
deleted file mode 100644
index 833ff575a..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/help/leaderboard_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Shows 10 places of the leader board of this server.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/help/leaderboard_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/help/leaderboard_long_help_en_US.ftl
deleted file mode 100644
index c055dc650..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/help/leaderboard_long_help_en_US.ftl
+++ /dev/null
@@ -1,3 +0,0 @@
-Shows 10 members of the sever in the form of a leader board.
-The information include posted messages/gained experience/current level and rank within the server.
-An optional parameter is possible to chose a page. So, `leaderboard 3` would show members from rank 30 to 40.
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/help/leaderboard_parameter_page_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/help/leaderboard_parameter_page_en_US.ftl
deleted file mode 100644
index 304fd1ff0..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/help/leaderboard_parameter_page_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The page of the leader board you want to see.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/help/leaderboard_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/help/leaderboard_usage_en_US.ftl
deleted file mode 100644
index db864ba40..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/help/leaderboard_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-leaderboard [page]
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/leaderboard_experience_column_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/leaderboard_experience_column_en_US.ftl
deleted file mode 100644
index 286c35717..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/leaderboard_experience_column_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Experience
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/leaderboard_level_column_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/leaderboard_level_column_en_US.ftl
deleted file mode 100644
index 3f48e6587..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/leaderboard_level_column_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Level
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/leaderboard_messages_column_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/leaderboard_messages_column_en_US.ftl
deleted file mode 100644
index fd3cda205..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/leaderboard_messages_column_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Messages
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/leaderboard_name_column_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/leaderboard_name_column_en_US.ftl
deleted file mode 100644
index 636ea505c..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/leaderboard_name_column_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Name
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/leaderboard_rank_column_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/leaderboard_rank_column_en_US.ftl
deleted file mode 100644
index 33ae572a2..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/leaderboard/leaderboard_rank_column_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Rank
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/listDisabledExperienceRoles/help/listDisabledExperienceRoles_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/listDisabledExperienceRoles/help/listDisabledExperienceRoles_description_en_US.ftl
deleted file mode 100644
index e0e8904f8..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/listDisabledExperienceRoles/help/listDisabledExperienceRoles_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Lists the roles for which experience gain is disabled.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/listDisabledExperienceRoles/help/listDisabledExperienceRoles_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/listDisabledExperienceRoles/help/listDisabledExperienceRoles_long_help_en_US.ftl
deleted file mode 100644
index 8e90e5ce0..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/listDisabledExperienceRoles/help/listDisabledExperienceRoles_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Lists all of the roles (if any) for which experience gain is disabled.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/listDisabledExperienceRoles/help/listDisabledExperienceRoles_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/listDisabledExperienceRoles/help/listDisabledExperienceRoles_usage_en_US.ftl
deleted file mode 100644
index 22ea005c7..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/listDisabledExperienceRoles/help/listDisabledExperienceRoles_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-listDisabledExperienceRoles
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/listDisabledExperienceRoles/list_disabled_experience_roles_embed_no_roles_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/listDisabledExperienceRoles/list_disabled_experience_roles_embed_no_roles_en_US.ftl
deleted file mode 100644
index b860a5157..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/listDisabledExperienceRoles/list_disabled_experience_roles_embed_no_roles_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-No roles.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/listDisabledExperienceRoles/list_disabled_experience_roles_embed_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/listDisabledExperienceRoles/list_disabled_experience_roles_embed_title_en_US.ftl
deleted file mode 100644
index 3f388c718..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/listDisabledExperienceRoles/list_disabled_experience_roles_embed_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Roles for which experience has been disabled.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/help/rank_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/help/rank_description_en_US.ftl
deleted file mode 100644
index e05f2694e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/help/rank_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Shows you your current experience information.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/help/rank_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/help/rank_long_help_en_US.ftl
deleted file mode 100644
index e107cf952..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/help/rank_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Shows your messages, tracked experience, current level and the experience needed to the next level.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/help/rank_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/help/rank_usage_en_US.ftl
deleted file mode 100644
index 6d0a4e876..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/help/rank_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-rank
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/rank_level_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/rank_level_field_title_en_US.ftl
deleted file mode 100644
index 3f48e6587..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/rank_level_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Level
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/rank_messages_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/rank_messages_field_title_en_US.ftl
deleted file mode 100644
index fd3cda205..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/rank_messages_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Messages
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/rank_rank_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/rank_rank_field_title_en_US.ftl
deleted file mode 100644
index 33ae572a2..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/rank_rank_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Rank
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/rank_to_next_level_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/rank_to_next_level_field_title_en_US.ftl
deleted file mode 100644
index 61052e7e6..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/rank_to_next_level_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-XP to next Level
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/rank_xp_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/rank_xp_field_title_en_US.ftl
deleted file mode 100644
index 93b682f8c..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/rank/rank_xp_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-XP
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_description_en_US.ftl
deleted file mode 100644
index 232ff14b9..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Sets the given role to be awarded at the given level
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_example_en_US.ftl
deleted file mode 100644
index cc3d8a95a..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-`setExpRole 50 @HighLevel` in order to award the role `HighLevel` at level `50` (the @HighLevel is a role mention)
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_long_help_en_US.ftl
deleted file mode 100644
index e19606fcb..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_long_help_en_US.ftl
+++ /dev/null
@@ -1,2 +0,0 @@
-This causes the given role to be awarded at the given level. This will remove previously levels this role was assigned to, and also recalculate the users of the previous levels.
-This will not, however, award the users the new role immediately. This needs to be done by a separate `syncExpRole`.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_parameter_level_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_parameter_level_en_US.ftl
deleted file mode 100644
index 42501a4e8..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_parameter_level_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The level at which the role should be awarded.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_parameter_role_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_parameter_role_en_US.ftl
deleted file mode 100644
index 78491a014..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_parameter_role_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The role which should be awarded at the given level.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_usage_en_US.ftl
deleted file mode 100644
index 6bbb4cfdd..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/setExpRole/help/setExpRole_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-setExpRole
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/syncExpRoles/help/syncExpRoles_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/syncExpRoles/help/syncExpRoles_description_en_US.ftl
deleted file mode 100644
index f572fbecd..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/syncExpRoles/help/syncExpRoles_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Synchronizes the roles of all users with their respective level.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/syncExpRoles/help/syncExpRoles_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/syncExpRoles/help/syncExpRoles_long_help_en_US.ftl
deleted file mode 100644
index 4861c101e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/syncExpRoles/help/syncExpRoles_long_help_en_US.ftl
+++ /dev/null
@@ -1,3 +0,0 @@
-This is a process, which iterates over all tracked users and checks if the current experience role aligns with what they should have according to configuration.
-If this is not the case, the role is updated. This is necessary after you added a new role to the experience system. This process might take a while to complete
-and a progress indicator is shown.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/syncExpRoles/help/syncExpRoles_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/syncExpRoles/help/syncExpRoles_usage_en_US.ftl
deleted file mode 100644
index 7be0fa590..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/syncExpRoles/help/syncExpRoles_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-syncRoles
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/syncExpRoles/syncExpRoles_updating_users_label_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/syncExpRoles/syncExpRoles_updating_users_label_en_US.ftl
deleted file mode 100644
index 1d8db2f19..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/syncExpRoles/syncExpRoles_updating_users_label_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Updating users
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/unSetExpRole/help/unSetExpRole_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/unSetExpRole/help/unSetExpRole_description_en_US.ftl
deleted file mode 100644
index 84e4a8ede..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/unSetExpRole/help/unSetExpRole_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Removes the role from experience role tracking.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/unSetExpRole/help/unSetExpRole_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/unSetExpRole/help/unSetExpRole_long_help_en_US.ftl
deleted file mode 100644
index 5794ffc7d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/unSetExpRole/help/unSetExpRole_long_help_en_US.ftl
+++ /dev/null
@@ -1,3 +0,0 @@
-Removes the role from experience tracking, so users do not gain the role when they reach the configured level.
-Executing this means that users currently owning this role, lose it and their role will be recalculated.
-This process might take a while depending on the users. A progress indicator is shown
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/unSetExpRole/help/unSetExpRole_parameter_role_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/unSetExpRole/help/unSetExpRole_parameter_role_en_US.ftl
deleted file mode 100644
index 3fa19d2f8..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/unSetExpRole/help/unSetExpRole_parameter_role_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The role which should be removed from the experience award system.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/unSetExpRole/help/unSetExpRole_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/unSetExpRole/help/unSetExpRole_usage_en_US.ftl
deleted file mode 100644
index b95ee1ee0..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/commands/unSetExpRole/help/unSetExpRole_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-unSetExpRole
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/config/experience_feature_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/config/experience_feature_en_US.ftl
deleted file mode 100644
index f45a1db9c..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/config/experience_feature_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Experience tracking
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/config/setup_config_expMultiplier_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/config/setup_config_expMultiplier_en_US.ftl
deleted file mode 100644
index 28cffd4e0..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/config/setup_config_expMultiplier_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The value each gained experience is multiplied by. Default: ${defaultValue}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/config/setup_config_maxExp_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/config/setup_config_maxExp_en_US.ftl
deleted file mode 100644
index 19562f5bd..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/config/setup_config_maxExp_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The maximum of experience given randomly. Default: ${defaultValue}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/config/setup_config_minExp_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/experience/config/setup_config_minExp_en_US.ftl
deleted file mode 100644
index b63c94af9..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/experience/config/setup_config_minExp_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The minimum experience given randomly. Default: ${defaultValue}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_default_reason_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_default_reason_en_US.ftl
deleted file mode 100644
index 56f334261..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_default_reason_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-default reason
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_log_banned_user_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_log_banned_user_field_title_en_US.ftl
deleted file mode 100644
index e085edf28..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_log_banned_user_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Banned user
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_log_banning_user_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_log_banning_user_field_title_en_US.ftl
deleted file mode 100644
index 5add7ba5f..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_log_banning_user_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Banned by
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_log_jump_link_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_log_jump_link_field_title_en_US.ftl
deleted file mode 100644
index 75dba258b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_log_jump_link_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Link
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_log_reason_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_log_reason_field_title_en_US.ftl
deleted file mode 100644
index 8ad1810c5..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_log_reason_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Reason
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_log_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_log_title_en_US.ftl
deleted file mode 100644
index fae4f2686..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_log_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-User has been banned
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_notification_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_notification_en_US.ftl
deleted file mode 100644
index 782514150..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/ban_notification_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-You were banned from the server ${serverName} for the following reason: ${warning.reason}.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_description_en_US.ftl
deleted file mode 100644
index 2e463b644..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Bans the user with the given reason
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_example_en_US.ftl
deleted file mode 100644
index 4bcc9bfb5..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-`ban @Member bad` in order to ban `Member` with the reason `bad` (the @Member is a user mention)
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_long_help_en_US.ftl
deleted file mode 100644
index 004273810..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Bans the user with the given reason.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_parameter_reason_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_parameter_reason_en_US.ftl
deleted file mode 100644
index b07c48288..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_parameter_reason_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The reason which should be used for the ban.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_parameter_user_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_parameter_user_en_US.ftl
deleted file mode 100644
index d2d480d2b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_parameter_user_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The member to ban from the server.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_usage_en_US.ftl
deleted file mode 100644
index 524ed0507..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/ban/help/ban_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-ban [reason]
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_description_en_US.ftl
deleted file mode 100644
index 2e463b644..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Bans the user with the given reason
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_example_en_US.ftl
deleted file mode 100644
index 3c67a0992..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-`banId 1234 bad` in order to ban the user with ID `1234` with the reason `bad`
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_long_help_en_US.ftl
deleted file mode 100644
index 072a42362..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Bans the user by ID. This is necessary, if the user already left the server for example.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_parameter_reason_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_parameter_reason_en_US.ftl
deleted file mode 100644
index b07c48288..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_parameter_reason_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The reason which should be used for the ban.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_parameter_user_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_parameter_user_en_US.ftl
deleted file mode 100644
index 3562ca2a1..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_parameter_user_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The id of the user to ban.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_usage_en_US.ftl
deleted file mode 100644
index 3565032b2..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/banId/help/banId_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-banId [reason]
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayAllWarnings/help/decayAllWarnings_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayAllWarnings/help/decayAllWarnings_description_en_US.ftl
deleted file mode 100644
index 8ba1109ba..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayAllWarnings/help/decayAllWarnings_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Decays all currently active warnings
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayAllWarnings/help/decayAllWarnings_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayAllWarnings/help/decayAllWarnings_long_help_en_US.ftl
deleted file mode 100644
index ab19f56a5..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayAllWarnings/help/decayAllWarnings_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Decays all warnings which are currently active on this server, and logs them to the `decayLog` post target, if the parameter was true.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayAllWarnings/help/decayAllWarnings_parameter_writeLog_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayAllWarnings/help/decayAllWarnings_parameter_writeLog_en_US.ftl
deleted file mode 100644
index 65ca173fc..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayAllWarnings/help/decayAllWarnings_parameter_writeLog_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-"true"/"false" whether or not the decayed warnings should be logged.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayAllWarnings/help/decayAllWarnings_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayAllWarnings/help/decayAllWarnings_usage_en_US.ftl
deleted file mode 100644
index c0902a793..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayAllWarnings/help/decayAllWarnings_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-decayAllWarnings [true/false]
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayWarnings/help/decayWarnings_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayWarnings/help/decayWarnings_description_en_US.ftl
deleted file mode 100644
index 5782158dd..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayWarnings/help/decayWarnings_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Decays the warnings in this server.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayWarnings/help/decayWarnings_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayWarnings/help/decayWarnings_long_help_en_US.ftl
deleted file mode 100644
index 1241ee515..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayWarnings/help/decayWarnings_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Causes the warnings older than the configured threshold in days to be decayed. They are still stored but there is an indication, that they are now longer active.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayWarnings/help/decayWarnings_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayWarnings/help/decayWarnings_usage_en_US.ftl
deleted file mode 100644
index 3a4c5a319..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/decayWarnings/help/decayWarnings_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-decayWarnings
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/deleteWarning/help/deleteWarning_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/deleteWarning/help/deleteWarning_description_en_US.ftl
deleted file mode 100644
index 557ed3a69..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/deleteWarning/help/deleteWarning_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Deletes one specific warning
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/deleteWarning/help/deleteWarning_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/deleteWarning/help/deleteWarning_long_help_en_US.ftl
deleted file mode 100644
index 91dbda03e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/deleteWarning/help/deleteWarning_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Deletes one specific warning by id completely.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/deleteWarning/help/deleteWarning_parameter_warnId_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/deleteWarning/help/deleteWarning_parameter_warnId_en_US.ftl
deleted file mode 100644
index dac31b6c0..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/deleteWarning/help/deleteWarning_parameter_warnId_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The ID of the warning to delete.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/deleteWarning/help/deleteWarning_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/deleteWarning/help/deleteWarning_usage_en_US.ftl
deleted file mode 100644
index 54873c6ed..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/deleteWarning/help/deleteWarning_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-deleteWarning
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_description_en_US.ftl
deleted file mode 100644
index 8224af7d2..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Kicks the user with the given reason
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_example_en_US.ftl
deleted file mode 100644
index f6f6dd010..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-`kick @Member bad` in order to kick `Member` with the reason `bad` (the @Member is a user mention)
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_long_help_en_US.ftl
deleted file mode 100644
index 54d81d855..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Kicks the user with the given reason.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_parameter_reason_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_parameter_reason_en_US.ftl
deleted file mode 100644
index 9ab9c56f8..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_parameter_reason_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The reason why the user should be kicked for.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_parameter_user_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_parameter_user_en_US.ftl
deleted file mode 100644
index 42ff22779..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_parameter_user_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The user which should be kicked.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_usage_en_US.ftl
deleted file mode 100644
index 91a9bb2b9..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/help/kick_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-kick [reason]
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_default_reason_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_default_reason_en_US.ftl
deleted file mode 100644
index 56f334261..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_default_reason_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-default reason
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_log_jump_link_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_log_jump_link_field_title_en_US.ftl
deleted file mode 100644
index 341c2ffd9..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_log_jump_link_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Jump
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_log_kicked_user_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_log_kicked_user_field_title_en_US.ftl
deleted file mode 100644
index b6347edac..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_log_kicked_user_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Kicked user
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_log_kicking_user_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_log_kicking_user_field_title_en_US.ftl
deleted file mode 100644
index 7eec84ac9..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_log_kicking_user_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Kicking user
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_log_reason_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_log_reason_field_title_en_US.ftl
deleted file mode 100644
index 8ad1810c5..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_log_reason_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Reason
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_log_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_log_title_en_US.ftl
deleted file mode 100644
index 20eaa5651..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_log_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-User has been kicked
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_notification_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_notification_en_US.ftl
deleted file mode 100644
index 24407e480..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/kick/kick_notification_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-You were kicked from the server ${serverName} for the following reason: ${warning.reason}.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_description_en_US.ftl
deleted file mode 100644
index 2ebc005c4..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Mutes a user
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_example_en_US.ftl
deleted file mode 100644
index f256f2418..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-`mute @Member 1h2m3s bad` in order to mute the member `Member` for 1 hour 2 minutes and 3 seconds with the reason `bad` (the @Member is a user mention)
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_long_help_en_US.ftl
deleted file mode 100644
index 1bc4bd754..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_long_help_en_US.ftl
+++ /dev/null
@@ -1,10 +0,0 @@
-Applies the muted role to the user and logs the mute in the `mutes` post target.
-The user will be automatically un muted after the time period is over and another un mute notification will be send to the
-`mutes` post target.
-The syntax for duration is the following:
-s - seconds
-m - minutes
-h - hours
-d - days
-
-They must be positive and do no spaces between for example `1h23m` is one hour and twenty three minutes.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_parameter_duration_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_parameter_duration_en_US.ftl
deleted file mode 100644
index 87f3ebe27..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_parameter_duration_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The duration of the mute with the duration parsing rules.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_parameter_reason_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_parameter_reason_en_US.ftl
deleted file mode 100644
index 927d266bf..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_parameter_reason_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The reason why the user should be muted.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_parameter_user_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_parameter_user_en_US.ftl
deleted file mode 100644
index 834f483a4..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_parameter_user_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The user which should be muted.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_usage_en_US.ftl
deleted file mode 100644
index 1e131ac2b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/help/mute_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-mute
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_mute_duration_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_mute_duration_field_title_en_US.ftl
deleted file mode 100644
index 5aba4a0b8..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_mute_duration_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Muted for
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_mute_id_footer_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_mute_id_footer_en_US.ftl
deleted file mode 100644
index 2e89f5c12..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_mute_id_footer_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Mute
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_mute_location_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_mute_location_field_title_en_US.ftl
deleted file mode 100644
index 19c9467e6..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_mute_location_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Mute location
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_mute_reason_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_mute_reason_field_title_en_US.ftl
deleted file mode 100644
index 8ad1810c5..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_mute_reason_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Reason
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_muted_until_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_muted_until_field_title_en_US.ftl
deleted file mode 100644
index bfc1134a5..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_muted_until_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Muted until
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_muted_user_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_muted_user_field_title_en_US.ftl
deleted file mode 100644
index 5fade5f25..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_muted_user_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Muted user
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_muting_user_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_muting_user_field_title_en_US.ftl
deleted file mode 100644
index 1f3b9d416..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_muting_user_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Muted by
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_title_en_US.ftl
deleted file mode 100644
index 4ccb724b6..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_log_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-User has been muted
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_notification_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_notification_en_US.ftl
deleted file mode 100644
index e1f2c8faa..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/mute_notification_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-You were muted on the server ${serverName} for the following reason: ${mute.reason}.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/unMute_log_muted_since_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/unMute_log_muted_since_field_title_en_US.ftl
deleted file mode 100644
index ce35f161a..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/unMute_log_muted_since_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Muted since
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/unMute_log_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/unMute_log_title_en_US.ftl
deleted file mode 100644
index 3f00b3b38..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/unMute_log_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-User has been unmuted
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/unMute_log_unmuted_user_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/unMute_log_unmuted_user_field_title_en_US.ftl
deleted file mode 100644
index 3e75b6298..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/mute/unMute_log_unmuted_user_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Un-Muted user
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/myWarnings/help/myWarnings_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/myWarnings/help/myWarnings_description_en_US.ftl
deleted file mode 100644
index 50b43fd19..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/myWarnings/help/myWarnings_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Shows your warnings.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/myWarnings/help/myWarnings_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/myWarnings/help/myWarnings_long_help_en_US.ftl
deleted file mode 100644
index 73a73c05c..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/myWarnings/help/myWarnings_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Shows your warnings on this server.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/myWarnings/help/myWarnings_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/myWarnings/help/myWarnings_usage_en_US.ftl
deleted file mode 100644
index 5115ed158..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/myWarnings/help/myWarnings_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-myWarnings
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/myWarnings/myWarnings_with_decay_embed_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/myWarnings/myWarnings_with_decay_embed_description_en_US.ftl
deleted file mode 100644
index 2ac1f01fe..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/myWarnings/myWarnings_with_decay_embed_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-${userMention} has current ${currentWarnCount} Warnings and ${totalWarnCount} warnings in total.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/help/purge_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/help/purge_description_en_US.ftl
deleted file mode 100644
index 7be1b6cb7..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/help/purge_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Deletes the last n messages in the channel
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/help/purge_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/help/purge_long_help_en_US.ftl
deleted file mode 100644
index 2247dd8cc..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/help/purge_long_help_en_US.ftl
+++ /dev/null
@@ -1,6 +0,0 @@
-Deletes the last n messages in the channel. The messages are allowed to be at most 2 weeks old.
-If a member is provided as a parameter, only messages by this member are deleted, but at most n messages are considered.
-For example, if you execute the command with 200 messages and specify member User#1234, and User#1234 does not have any messages
-in the last 200 message, no message will be deleted.
-While the command is going on a status message indicating how many messages are currently being deleted is shown.
-If messages older than two weeks are found, the command will stop and post an error message.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/help/purge_parameter_amount_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/help/purge_parameter_amount_en_US.ftl
deleted file mode 100644
index 1a254096f..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/help/purge_parameter_amount_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Amount of messages do delete.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/help/purge_parameter_member_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/help/purge_parameter_member_en_US.ftl
deleted file mode 100644
index 536f26b99..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/help/purge_parameter_member_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The member to delete messages of.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/help/purge_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/help/purge_usage_en_US.ftl
deleted file mode 100644
index 3ad3aba6a..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/help/purge_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-purge [member]
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/purge_status_update_message_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/purge_status_update_message_en_US.ftl
deleted file mode 100644
index 88f8bcff0..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/purge/purge_status_update_message_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-${currentlyDeleted} out of ${totalToDelete} messages deleted.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/setMuteRole/help/setMuteRole_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/setMuteRole/help/setMuteRole_description_en_US.ftl
deleted file mode 100644
index 24a2a1ce3..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/setMuteRole/help/setMuteRole_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Used to configure the mute role on this server.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/setMuteRole/help/setMuteRole_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/setMuteRole/help/setMuteRole_long_help_en_US.ftl
deleted file mode 100644
index ae19ac353..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/setMuteRole/help/setMuteRole_long_help_en_US.ftl
+++ /dev/null
@@ -1,2 +0,0 @@
-Sets the used mute role on the server. If there are previously roles assigned, this will be overwritten.
-The configuration to make the role muting, needs to be done by you.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/setMuteRole/help/setMuteRole_parameter_role_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/setMuteRole/help/setMuteRole_parameter_role_en_US.ftl
deleted file mode 100644
index 62bf49e53..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/setMuteRole/help/setMuteRole_parameter_role_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The role which should be used to mute user.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/setMuteRole/help/setMuteRole_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/setMuteRole/help/setMuteRole_usage_en_US.ftl
deleted file mode 100644
index a46f2ca83..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/setMuteRole/help/setMuteRole_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-setMuteRole
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowMode_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowMode_example_en_US.ftl
deleted file mode 100644
index e0be9b609..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowMode_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-slowMode 1h2m3s #general` in order to set the slow mode in channel `general` to 1 hour 2 minutes and 3 seconds (the #general is a user mention)
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowMode_parameter_channel_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowMode_parameter_channel_en_US.ftl
deleted file mode 100644
index 25a7a16f9..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowMode_parameter_channel_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The channel for which the slow mode should be set. If not provided, the current channel is changed.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowMode_parameter_duration_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowMode_parameter_duration_en_US.ftl
deleted file mode 100644
index d4f0fe9bc..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowMode_parameter_duration_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The interval which should be the time between each allowed message in the channel. Use 'off', to disable slow mode.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowmode_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowmode_description_en_US.ftl
deleted file mode 100644
index 2a83f4aa1..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowmode_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Sets the slow mode of the the current (or given channel) to the given duration.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowmode_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowmode_long_help_en_US.ftl
deleted file mode 100644
index e273ac9cc..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowmode_long_help_en_US.ftl
+++ /dev/null
@@ -1,8 +0,0 @@
-Sets the slow mode of the the current (or given channel) to the given interval.
-The syntax for interval is the following:
-s - seconds
-m - minutes
-h - hours
-d - days
-
-They must be positive and do no spaces between for example `1h23m` is one hour and twenty three minutes.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowmode_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowmode_usage_en_US.ftl
deleted file mode 100644
index c5bd53f8a..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/slowMode/help/slowmode_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-slowmode [channel]
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/unMute/help/unMute_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/unMute/help/unMute_description_en_US.ftl
deleted file mode 100644
index f19a5a421..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/unMute/help/unMute_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Un-mutes the user immediately.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/unMute/help/unMute_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/unMute/help/unMute_long_help_en_US.ftl
deleted file mode 100644
index cf51a0b30..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/unMute/help/unMute_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Un-mutes the user. This does not send a notification in the `mutes` post target. Also removes any mutes towards the user on this server.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/unMute/help/unMute_parameter_user_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/unMute/help/unMute_parameter_user_en_US.ftl
deleted file mode 100644
index 449ad9f66..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/unMute/help/unMute_parameter_user_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The member to un-mute.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/unMute/help/unMute_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/unMute/help/unMute_usage_en_US.ftl
deleted file mode 100644
index 2899c840d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/unMute/help/unMute_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-unMute
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/unMute/unMute_has_no_active_mute_message_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/unMute/unMute_has_no_active_mute_message_en_US.ftl
deleted file mode 100644
index f319da060..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/unMute/unMute_has_no_active_mute_message_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-User has no active mute.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/help/userNotes_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/help/userNotes_description_en_US.ftl
deleted file mode 100644
index a4a192c3d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/help/userNotes_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Shows all user notes/user notes from a user
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/help/userNotes_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/help/userNotes_long_help_en_US.ftl
deleted file mode 100644
index ecd0fe4bf..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/help/userNotes_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Lists all the user notes or only the user notes from a singular user from this server. The output contains the text of the note, the date it was created and the id of the user note.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/help/userNotes_parameter_user_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/help/userNotes_parameter_user_en_US.ftl
deleted file mode 100644
index 263f95ea1..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/help/userNotes_parameter_user_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The user to retrieve the user notes for.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/help/userNotes_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/help/userNotes_usage_en_US.ftl
deleted file mode 100644
index 2e1da2937..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/help/userNotes_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-listNotes [user]
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/user_notes_embed_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/user_notes_embed_title_en_US.ftl
deleted file mode 100644
index 02cf87df0..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/user_notes_embed_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-User notes on this server
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/user_notes_embed_user_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/user_notes_embed_user_title_en_US.ftl
deleted file mode 100644
index ec7158f3e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/user_notes_embed_user_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-User notes for user ${user}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/user_notes_no_notes_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/user_notes_no_notes_en_US.ftl
deleted file mode 100644
index 87ef1f6c9..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/user_notes_no_notes_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-No notes.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/user_notes_note_entry_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/user_notes_note_entry_en_US.ftl
deleted file mode 100644
index 7b99561b0..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/userNotes/user_notes_note_entry_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-${user} has note ${noteId} with text ${noteText} on ${date}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_description_en_US.ftl
deleted file mode 100644
index d13e00fca..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Warns the user with the given reason
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_example_en_US.ftl
deleted file mode 100644
index 180db3aa1..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-`warn @Member bad` in order to warn `Member` with the reason `bad` (the @Member is a user mention)
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_long_help_en_US.ftl
deleted file mode 100644
index f5d11c06d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Warns the user with the given reason.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_parameter_reason_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_parameter_reason_en_US.ftl
deleted file mode 100644
index d10f697f7..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_parameter_reason_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The reason why the user should be warned.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_parameter_user_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_parameter_user_en_US.ftl
deleted file mode 100644
index 87ea17d46..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_parameter_user_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The member which should be warned.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_usage_en_US.ftl
deleted file mode 100644
index ff50c8f6f..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/help/warn_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-warn
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_default_reason_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_default_reason_en_US.ftl
deleted file mode 100644
index 56f334261..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_default_reason_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-default reason
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_title_en_US.ftl
deleted file mode 100644
index 42c858626..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-User has been warned
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_warn_id_footer_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_warn_id_footer_en_US.ftl
deleted file mode 100644
index 147336dfc..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_warn_id_footer_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Warning
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_warn_location_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_warn_location_field_title_en_US.ftl
deleted file mode 100644
index 6fbcfedc7..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_warn_location_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Warn location
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_warn_reason_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_warn_reason_field_title_en_US.ftl
deleted file mode 100644
index bf30cc30b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_warn_reason_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Warn reason
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_warned_user_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_warned_user_field_title_en_US.ftl
deleted file mode 100644
index 858fab3af..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_warned_user_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Warned user
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_warning_user_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_warning_user_field_title_en_US.ftl
deleted file mode 100644
index 8991ab01f..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_log_warning_user_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Warned by
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_notification_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_notification_en_US.ftl
deleted file mode 100644
index d525fbb01..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warn/warn_notification_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-You were warned on the server ${serverName} for the following reason: ${warning.reason}.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/help/warnings_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/help/warnings_description_en_US.ftl
deleted file mode 100644
index 37d8fe46d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/help/warnings_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Lists the warnings on the server/of one specific user
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/help/warnings_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/help/warnings_long_help_en_US.ftl
deleted file mode 100644
index c5711b7cf..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/help/warnings_long_help_en_US.ftl
+++ /dev/null
@@ -1,2 +0,0 @@
-Lists the warnings of the whole server or of one particular user in a paginated form.
-Shows the warn date, who warned and whether nor the warning is still active.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/help/warnings_parameter_user_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/help/warnings_parameter_user_en_US.ftl
deleted file mode 100644
index c0719f920..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/help/warnings_parameter_user_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The user to display the warnings for.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/help/warnings_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/help/warnings_usage_en_US.ftl
deleted file mode 100644
index d04dbfbf6..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/help/warnings_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-warnings [user]
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/warnings_header_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/warnings_header_text_en_US.ftl
deleted file mode 100644
index 66cbdfc0f..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/warnings_header_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Amount of warns ${warnCount}.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/warnings_warn_entry_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/warnings_warn_entry_text_en_US.ftl
deleted file mode 100644
index 6506d8a57..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/warnings_warn_entry_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Warning #${warnId} with reason: ${reason} towards user ${warnedUserText} by user ${warningUserText} on `${warnDate}`.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/warnings_warn_is_decayed_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/warnings_warn_is_decayed_en_US.ftl
deleted file mode 100644
index 9e9bc44b0..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/commands/warnings/warnings_warn_is_decayed_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-This warning was decayed on ${decayDate}.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/logging_feature_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/logging_feature_en_US.ftl
deleted file mode 100644
index 5c2e9c57b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/logging_feature_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Logging
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/moderation_feature_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/moderation_feature_en_US.ftl
deleted file mode 100644
index 117293768..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/moderation_feature_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Moderation
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/muting_feature_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/muting_feature_en_US.ftl
deleted file mode 100644
index d1bdeec26..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/muting_feature_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Mutes
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_config_decayDays_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_config_decayDays_en_US.ftl
deleted file mode 100644
index 5cb0f4343..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_config_decayDays_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The amount of days after which a warning is decayed. Default: ${defaultValue}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_banLog_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_banLog_en_US.ftl
deleted file mode 100644
index 512d95296..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_banLog_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The channel in which where bans should be logged to. Currently: ${currentTarget}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_decayLog_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_decayLog_en_US.ftl
deleted file mode 100644
index 41f9841f6..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_decayLog_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The channel in which decayed warnings should be logged to. Currently: ${currentTarget}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_deleteLog_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_deleteLog_en_US.ftl
deleted file mode 100644
index 99b0d6ebe..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_deleteLog_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The channel in which deleted messages should be logged to. Currently: ${currentTarget}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_editLog_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_editLog_en_US.ftl
deleted file mode 100644
index f69c8fe9f..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_editLog_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The channel in which edited messages should be logged to. Currently: ${currentTarget}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_joinLog_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_joinLog_en_US.ftl
deleted file mode 100644
index 473fd23f3..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_joinLog_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The channel in which guild joins should be logged to. Currently: ${currentTarget}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_kickLog_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_kickLog_en_US.ftl
deleted file mode 100644
index 42c82dcd9..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_kickLog_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The channel in which kicks should be logged to. Currently: ${currentTarget}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_leaveLog_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_leaveLog_en_US.ftl
deleted file mode 100644
index c9499133e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_leaveLog_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The channel where guild leavers should be logged to. Currently: ${currentTarget}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_muteLog_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_muteLog_en_US.ftl
deleted file mode 100644
index 2a61fcaec..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_muteLog_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The channel where mutes should be logged to. Un-mutes will also be in this channel. Currently: ${currentTarget}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_warnLog_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_warnLog_en_US.ftl
deleted file mode 100644
index a0ecff705..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/setup_posttarget_warnLog_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The channel where warnings should be logged to. Currently: ${currentTarget}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/userNotes_feature_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/userNotes_feature_en_US.ftl
deleted file mode 100644
index a5ceba109..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/userNotes_feature_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-User notes
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/warnDecay_feature_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/warnDecay_feature_en_US.ftl
deleted file mode 100644
index cc0947e66..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/warnDecay_feature_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Warn decaying
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/warnings_feature_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/warnings_feature_en_US.ftl
deleted file mode 100644
index 147336dfc..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/config/warnings_feature_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Warning
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/exception/no_message_found_exception_message_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/exception/no_message_found_exception_message_en_US.ftl
deleted file mode 100644
index 3539f17d6..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/exception/no_message_found_exception_message_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-No more messages found to delete.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/exception/note_not_found_exception_message_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/exception/note_not_found_exception_message_en_US.ftl
deleted file mode 100644
index 87dbdf3d6..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/exception/note_not_found_exception_message_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Note not found.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/job/warnDecay_log_no_warnings_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/job/warnDecay_log_no_warnings_en_US.ftl
deleted file mode 100644
index 9b3a8fdee..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/job/warnDecay_log_no_warnings_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-No warnings to decay.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/job/warnDecay_log_warn_entry_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/job/warnDecay_log_warn_entry_en_US.ftl
deleted file mode 100644
index 78bcafeb2..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/job/warnDecay_log_warn_entry_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-${warnedUser} was warned on ${formatDate(warning.warning.warnDate, "yyyy-MM-dd HH:mm:ss")} with reason `${warning.warning.reason}` by ${warningUser}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/job/warnDecay_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/job/warnDecay_title_en_US.ftl
deleted file mode 100644
index c67202d4b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/job/warnDecay_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Warnings have been decayed
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_attachment_footer_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_attachment_footer_en_US.ftl
deleted file mode 100644
index 084a8dbdb..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_attachment_footer_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Attachment
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_attachment_link_display_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_attachment_link_display_text_en_US.ftl
deleted file mode 100644
index 75dba258b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_attachment_link_display_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Link
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_attachment_link_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_attachment_link_field_title_en_US.ftl
deleted file mode 100644
index bd72e103d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_attachment_link_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Direct URL
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_description_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_description_text_en_US.ftl
deleted file mode 100644
index 533ae868e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_description_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Message from ${member.effectiveName}#${member.user.discriminator} (${member.idLong?c}) removed in ${messageChannel.asMention}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_message_link_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_message_link_field_title_en_US.ftl
deleted file mode 100644
index 75dba258b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_message_link_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Link
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_original_message_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_original_message_field_title_en_US.ftl
deleted file mode 100644
index 2e4a95b4e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_deleted/messageDeleted_original_message_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-:x: Original Message:
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_edited/messageEdited_description_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_edited/messageEdited_description_text_en_US.ftl
deleted file mode 100644
index 218136438..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_edited/messageEdited_description_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Message from ${member.effectiveName}#${member.user.discriminator} (${member.idLong?c}) edited in ${messageChannel.asMention}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_edited/messageEdited_link_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_edited/messageEdited_link_field_title_en_US.ftl
deleted file mode 100644
index b0f57c51d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_edited/messageEdited_link_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Jump Link
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_edited/messageEdited_new_message_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_edited/messageEdited_new_message_field_title_en_US.ftl
deleted file mode 100644
index d632dcd6c..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_edited/messageEdited_new_message_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-New message
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_edited/messageEdited_original_message_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_edited/messageEdited_original_message_field_title_en_US.ftl
deleted file mode 100644
index 2e62fcadb..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_edited/messageEdited_original_message_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Original message
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_embed/message_embed_embed_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_embed/message_embed_embed_description_en_US.ftl
deleted file mode 100644
index 1b3ff1efc..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_embed/message_embed_embed_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Description
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_embed/message_embed_embed_embeds_name_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_embed/message_embed_embed_embeds_name_en_US.ftl
deleted file mode 100644
index 20fc96144..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_embed/message_embed_embed_embeds_name_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Embeds
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_embed/message_embed_embed_image_url_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_embed/message_embed_embed_image_url_en_US.ftl
deleted file mode 100644
index 22deafc42..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_embed/message_embed_embed_image_url_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-ImageURL
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_embed/message_embed_embed_quoted_by_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_embed/message_embed_embed_quoted_by_field_title_en_US.ftl
deleted file mode 100644
index f4d487a87..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_embed/message_embed_embed_quoted_by_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Quoted by
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_embed/message_embed_embed_quoted_by_field_value_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_embed/message_embed_embed_quoted_by_field_value_en_US.ftl
deleted file mode 100644
index dbeb41faf..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/message_embed/message_embed_embed_quoted_by_field_value_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-${user} from [${channelName}](${messageLink})
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/user_joined/user_joined_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/user_joined/user_joined_text_en_US.ftl
deleted file mode 100644
index dafa3d91c..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/user_joined/user_joined_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-User ${user} has joined the guild.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/user_left/user_left_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/user_left/user_left_text_en_US.ftl
deleted file mode 100644
index 71e15aa04..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/moderation/listener/user_left/user_left_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-User ${user} has left the guild.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/closing/logging/modmail_anonymous_message_note_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/closing/logging/modmail_anonymous_message_note_en_US.ftl
deleted file mode 100644
index 2c5af033c..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/closing/logging/modmail_anonymous_message_note_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-This message was sent anonymous.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/closing/logging/modmail_closing_notification_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/closing/logging/modmail_closing_notification_title_en_US.ftl
deleted file mode 100644
index 7521f7067..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/closing/logging/modmail_closing_notification_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Mod mail thread has been closed
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/closing/modmail_close_default_note_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/closing/modmail_close_default_note_en_US.ftl
deleted file mode 100644
index df2484da8..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/closing/modmail_close_default_note_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-No note
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/closing/modmail_closing_user_message_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/closing/modmail_closing_user_message_description_en_US.ftl
deleted file mode 100644
index d87101cc3..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/closing/modmail_closing_user_message_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Mod mail thread has been closed. If you have any questions please do not hesitate to contact us again.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/anonReply/help/anonReply_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/anonReply/help/anonReply_description_en_US.ftl
deleted file mode 100644
index b3a43cdcc..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/anonReply/help/anonReply_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Sends the given message to the user anonymously.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/anonReply/help/anonReply_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/anonReply/help/anonReply_long_help_en_US.ftl
deleted file mode 100644
index 2cdcc1888..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/anonReply/help/anonReply_long_help_en_US.ftl
+++ /dev/null
@@ -1,3 +0,0 @@
-Replies to the mod mail thread without showing who authored the text. Instead the bot will be used as an author.
-If the mod mail message is logged, the correct author is shown in the embed, with a small note saying that the message was send anonymously.
-Only pictures as attachments are supported. In order to use attachments, this command must be used when the text accompanying the attachment is chosen.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/anonReply/help/anonReply_parameter_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/anonReply/help/anonReply_parameter_text_en_US.ftl
deleted file mode 100644
index ce97adcee..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/anonReply/help/anonReply_parameter_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The text to reply with.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/anonReply/help/anonReply_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/anonReply/help/anonReply_usage_en_US.ftl
deleted file mode 100644
index 6e6a339d2..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/anonReply/help/anonReply_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-anonReply [text]
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/close_closing_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/close_closing_description_en_US.ftl
deleted file mode 100644
index edf36dd9a..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/close_closing_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-A mod mail thread has been closed with the note '${note}'. There were ${messageCount} interactions with the user ${user}. It has been opened on ${startDate} and lasted ${duration}.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/close_failed_to_delete_text_channel_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/close_failed_to_delete_text_channel_en_US.ftl
deleted file mode 100644
index ad73dd767..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/close_failed_to_delete_text_channel_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Failed to delete text channel containing mod mail thread. The bot does not have permissions to do so.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/help/close_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/help/close_description_en_US.ftl
deleted file mode 100644
index 9434999a9..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/help/close_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Closes the mod mail thread and notifies the user.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/help/close_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/help/close_long_help_en_US.ftl
deleted file mode 100644
index e150eb12c..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/help/close_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Closes the mod mail thread, which means: logging the messages to mod mail log (if `modmail_logging` is enabled), deleting the channel the thread was in and notifying the use that the thread was closed.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/help/close_parameter_note_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/help/close_parameter_note_en_US.ftl
deleted file mode 100644
index 344370f67..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/help/close_parameter_note_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The note with which this mod mail thread is being closed.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/help/close_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/help/close_usage_en_US.ftl
deleted file mode 100644
index f8b4a41ef..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/close/help/close_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-close [note]
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeNoLog/help/closeNoLog_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeNoLog/help/closeNoLog_description_en_US.ftl
deleted file mode 100644
index d0c12c98f..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeNoLog/help/closeNoLog_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Closes the mod mail thread, does *not* notify the user and does *not* log the thread.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeNoLog/help/closeNoLog_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeNoLog/help/closeNoLog_long_help_en_US.ftl
deleted file mode 100644
index a6ba698c3..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeNoLog/help/closeNoLog_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Closes the mod mail thread, which means deleting the channel the thread was in. This command does not notify the user nor does it log the content of the thread.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeNoLog/help/closeNoLog_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeNoLog/help/closeNoLog_usage_en_US.ftl
deleted file mode 100644
index b3ed0aaf6..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeNoLog/help/closeNoLog_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-closeNoLog
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeSilently/help/closeSilently_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeSilently/help/closeSilently_description_en_US.ftl
deleted file mode 100644
index 33d6e4321..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeSilently/help/closeSilently_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Closes the mod mail thread and does not notify the user.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeSilently/help/closeSilently_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeSilently/help/closeSilently_long_help_en_US.ftl
deleted file mode 100644
index 8f5bdf3f4..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeSilently/help/closeSilently_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Closes the mod mail thread, which means: logging the messages to mod mail log (if `modmail_logging` is enabled) and deleting the channel the thread was in.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeSilently/help/closeSilently_parameter_note_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeSilently/help/closeSilently_parameter_note_en_US.ftl
deleted file mode 100644
index 344370f67..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeSilently/help/closeSilently_parameter_note_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The note with which this mod mail thread is being closed.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeSilently/help/closeSilently_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeSilently/help/closeSilently_usage_en_US.ftl
deleted file mode 100644
index a774cba80..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/closeSilently/help/closeSilently_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-closeSilently [note]
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/help/contact_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/help/contact_description_en_US.ftl
deleted file mode 100644
index d18fe2ed3..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/help/contact_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Opens a mod mail thread with the given user.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/help/contact_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/help/contact_long_help_en_US.ftl
deleted file mode 100644
index 4251bb9b5..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/help/contact_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Opens a new mod mail thread with the user, and posts a message containing a link to the thread if one is already open.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/help/contact_parameter_user_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/help/contact_parameter_user_en_US.ftl
deleted file mode 100644
index 2fcd4e17e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/help/contact_parameter_user_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The use to open a mod mail thread for.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/help/contact_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/help/contact_usage_en_US.ftl
deleted file mode 100644
index 0aea4edc2..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/help/contact_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-contact
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/modmail_existing_thread_link_content_display_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/modmail_existing_thread_link_content_display_text_en_US.ftl
deleted file mode 100644
index 341c2ffd9..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/modmail_existing_thread_link_content_display_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Jump
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/modmail_existing_thread_link_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/modmail_existing_thread_link_field_title_en_US.ftl
deleted file mode 100644
index 75dba258b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/modmail_existing_thread_link_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Link
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/modmail_thread_already_exists_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/modmail_thread_already_exists_en_US.ftl
deleted file mode 100644
index 4ba4f5f5c..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/contact/modmail_thread_already_exists_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Thread already exists.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/removeModMailRole.help/removeModMailRole_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/removeModMailRole.help/removeModMailRole_description_en_US.ftl
deleted file mode 100644
index a2fb91269..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/removeModMailRole.help/removeModMailRole_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Removes the role from the roles being notified when a new thread is created by an user.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/removeModMailRole.help/removeModMailRole_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/removeModMailRole.help/removeModMailRole_long_help_en_US.ftl
deleted file mode 100644
index 89fa0fe34..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/removeModMailRole.help/removeModMailRole_long_help_en_US.ftl
+++ /dev/null
@@ -1,2 +0,0 @@
-Removes this role from the roles being notified when a new thread is opened by a user.
-This also automatically removes them from the allowed roles of all commands in the mod mail feature.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/removeModMailRole.help/removeModMailRole_parameter_role_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/removeModMailRole.help/removeModMailRole_parameter_role_en_US.ftl
deleted file mode 100644
index caa614e16..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/removeModMailRole.help/removeModMailRole_parameter_role_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The role to not be notified about new threads anymore.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/removeModMailRole.help/removeModMailRole_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/removeModMailRole.help/removeModMailRole_usage_en_US.ftl
deleted file mode 100644
index 8e9d20276..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/removeModMailRole.help/removeModMailRole_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-removeModMailRole
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/reply/help/reply_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/reply/help/reply_description_en_US.ftl
deleted file mode 100644
index 726dec57d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/reply/help/reply_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Sends the given message to the user.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/reply/help/reply_exception_cannot_send_message_to_use_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/reply/help/reply_exception_cannot_send_message_to_use_en_US.ftl
deleted file mode 100644
index 50a28d62c..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/reply/help/reply_exception_cannot_send_message_to_use_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Failed to send message to user.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/reply/help/reply_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/reply/help/reply_long_help_en_US.ftl
deleted file mode 100644
index 03dafe015..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/reply/help/reply_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Sends the given text to the user in an embed containing you as the author of the message. Only pictures as attachments are supported.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/reply/help/reply_parameter_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/reply/help/reply_parameter_text_en_US.ftl
deleted file mode 100644
index ce97adcee..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/reply/help/reply_parameter_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The text to reply with.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/reply/help/reply_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/reply/help/reply_usage_en_US.ftl
deleted file mode 100644
index b1bd1344b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/reply/help/reply_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-reply [message]
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailCategory/help/setModMailCategory_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailCategory/help/setModMailCategory_description_en_US.ftl
deleted file mode 100644
index e6b8b40a2..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailCategory/help/setModMailCategory_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Sets the category under which the mod mail threads should be created.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailCategory/help/setModMailCategory_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailCategory/help/setModMailCategory_long_help_en_US.ftl
deleted file mode 100644
index 20bb723ec..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailCategory/help/setModMailCategory_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Sets the category under which *new* mod mail threads are being created. Does not change the position of the old ones.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailCategory/help/setModMailCategory_parameter_categoryId_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailCategory/help/setModMailCategory_parameter_categoryId_en_US.ftl
deleted file mode 100644
index b3d345ce0..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailCategory/help/setModMailCategory_parameter_categoryId_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The category id to be used for creating mod mail text channels.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailCategory/help/setModMailCategory_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailCategory/help/setModMailCategory_usage_en_US.ftl
deleted file mode 100644
index b675504f6..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailCategory/help/setModMailCategory_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-setModMailCategory
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailRole/help/setModMailRole_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailRole/help/setModMailRole_description_en_US.ftl
deleted file mode 100644
index f0dad5f40..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailRole/help/setModMailRole_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Adds the role to the roles being notified when a new thread is created by an user.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailRole/help/setModMailRole_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailRole/help/setModMailRole_long_help_en_US.ftl
deleted file mode 100644
index 862d1b736..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailRole/help/setModMailRole_long_help_en_US.ftl
+++ /dev/null
@@ -1,2 +0,0 @@
-Adds this role to the roles being notified when a new thread is opened by a user.
-This also automatically adds them to the allowed roles of all commands in the mod mail feature.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailRole/help/setModMailRole_parameter_role_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailRole/help/setModMailRole_parameter_role_en_US.ftl
deleted file mode 100644
index ae6aeead4..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailRole/help/setModMailRole_parameter_role_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The role to be notified by new mod mail threads.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailRole/help/setModMailRole_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailRole/help/setModMailRole_usage_en_US.ftl
deleted file mode 100644
index 799149f23..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/setModMailRole/help/setModMailRole_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-setModMailRole
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/subscribe/help/subscribe_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/subscribe/help/subscribe_description_en_US.ftl
deleted file mode 100644
index 21df467a1..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/subscribe/help/subscribe_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Subscribes to the current mod mail thread.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/subscribe/help/subscribe_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/subscribe/help/subscribe_long_help_en_US.ftl
deleted file mode 100644
index b0952135b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/subscribe/help/subscribe_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Subscribes to the current mod mail thread and pings you whenever there is a new message from the user until you un-subscribe.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/subscribe/help/subscribe_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/subscribe/help/subscribe_usage_en_US.ftl
deleted file mode 100644
index 2a9bad92d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/subscribe/help/subscribe_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-subscribe
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/unSubscribe/help/unSubscribe_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/unSubscribe/help/unSubscribe_description_en_US.ftl
deleted file mode 100644
index 04ac93872..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/unSubscribe/help/unSubscribe_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Un-subscribes from the current mod mail thread.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/unSubscribe/help/unSubscribe_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/unSubscribe/help/unSubscribe_long_help_en_US.ftl
deleted file mode 100644
index b662af032..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/unSubscribe/help/unSubscribe_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Causes you to not be pinged in case the user sends another message to this mod mail thread.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/unSubscribe/help/unSubscribe_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/unSubscribe/help/unSubscribe_usage_en_US.ftl
deleted file mode 100644
index 635efbc09..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/commands/unSubscribe/help/unSubscribe_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-unSubscribe
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/modmail_feature_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/modmail_feature_en_US.ftl
deleted file mode 100644
index 076a26637..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/modmail_feature_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Mod mail
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/modmail_help_module_info_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/modmail_help_module_info_en_US.ftl
deleted file mode 100644
index 5190e86fd..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/modmail_help_module_info_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Commands to be used for mod mail.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/modmail_logging_feature_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/modmail_logging_feature_en_US.ftl
deleted file mode 100644
index fc38b01c5..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/modmail_logging_feature_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Mod mail logging
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_config_modMailClosingText_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_config_modMailClosingText_en_US.ftl
deleted file mode 100644
index 1759d7bb0..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_config_modMailClosingText_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The text to close mod mail threads with. Default: `${defaultValue}`
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_modmail_category_action_display_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_modmail_category_action_display_en_US.ftl
deleted file mode 100644
index 0780409f2..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_modmail_category_action_display_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Mod mail threads will be created in category `${category}`.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_modmail_category_message_display_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_modmail_category_message_display_en_US.ftl
deleted file mode 100644
index 33040c788..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_modmail_category_message_display_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The ID of the category you want to create the mod mail threads in. Currently the used category is: ${categoryName}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_modmail_category_message_no_category_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_modmail_category_message_no_category_en_US.ftl
deleted file mode 100644
index 22b4460bb..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_modmail_category_message_no_category_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-No category set
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_posttarget_modmailLog_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_posttarget_modmailLog_en_US.ftl
deleted file mode 100644
index 77eb498fa..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_posttarget_modmailLog_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The channel towards which the closed mod mail threads should be logged to. (In the appropriate mode) Currently: ${currentTarget}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_posttarget_modmailPing_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_posttarget_modmailPing_en_US.ftl
deleted file mode 100644
index a61ad3380..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/config/setup_posttarget_modmailPing_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The channel which should be used to notify the responsible people about new mod mail threads. Currently: ${currentTarget}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_already_subscribed_exception_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_already_subscribed_exception_en_US.ftl
deleted file mode 100644
index 225bf97d8..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_already_subscribed_exception_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-You are already subscribed to this mod mail thread.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_cannot_find_modmail_thread_exception_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_cannot_find_modmail_thread_exception_text_en_US.ftl
deleted file mode 100644
index ad630aab4..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_cannot_find_modmail_thread_exception_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Cannot find mod mail thread with id ${id}.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_failed_to_create_mod_mail_thread_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_failed_to_create_mod_mail_thread_en_US.ftl
deleted file mode 100644
index 8a761818e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_failed_to_create_mod_mail_thread_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Failed to create mod mail thread.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_failed_to_forward_message_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_failed_to_forward_message_en_US.ftl
deleted file mode 100644
index 0ca14bd95..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_failed_to_forward_message_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Failed to forward message. Existing mod mail thread has been deleted. Send another message to start a new one.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_generic_error_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_generic_error_en_US.ftl
deleted file mode 100644
index ca79195db..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_generic_error_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Generic mod mail failure. Check the logs.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_no_server_available_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_no_server_available_en_US.ftl
deleted file mode 100644
index 3e7ce99ad..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_no_server_available_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-No server for mod mail available.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_not_in_modmail_thread_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_not_in_modmail_thread_en_US.ftl
deleted file mode 100644
index c38b4ad17..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_not_in_modmail_thread_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Not in a mod mail thread.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_not_subscribed_exception_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_not_subscribed_exception_en_US.ftl
deleted file mode 100644
index a189f6f5d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_not_subscribed_exception_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-You are not subscribed to this mod mail thread.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_post_target_error_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_post_target_error_en_US.ftl
deleted file mode 100644
index 15c761a0d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/modmail_post_target_error_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Post target `modmailLog` was not found.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/setup_category_not_valid_exception_message_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/setup_category_not_valid_exception_message_en_US.ftl
deleted file mode 100644
index 06d682170..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/exception/setup_category_not_valid_exception_message_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The provided category ID is not valid.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/general/modmail_category_not_setup_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/general/modmail_category_not_setup_text_en_US.ftl
deleted file mode 100644
index 12ddf0b74..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/general/modmail_category_not_setup_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Mod mail category is not correctly set up. `${categoryId}` is not valid.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/listener/server_chooser/server_chooser_server_list_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/listener/server_chooser/server_chooser_server_list_description_en_US.ftl
deleted file mode 100644
index b9e29496f..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/listener/server_chooser/server_chooser_server_list_description_en_US.ftl
+++ /dev/null
@@ -1,2 +0,0 @@
-For which server do you want to open a modmail?
-The available servers are:
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/notification/modmail_notification_message_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/notification/modmail_notification_message_description_en_US.ftl
deleted file mode 100644
index e12ee4051..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/notification/modmail_notification_message_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The thread concerns ${user}.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/notification/modmail_notification_message_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/notification/modmail_notification_message_title_en_US.ftl
deleted file mode 100644
index 678142cd2..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/notification/modmail_notification_message_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-A new mod mail thread has been opened.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/notification/modmail_thread_header_embed_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/notification/modmail_thread_header_embed_description_en_US.ftl
deleted file mode 100644
index b94257d5e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/notification/modmail_thread_header_embed_description_en_US.ftl
+++ /dev/null
@@ -1,3 +0,0 @@
-This is a mod mail thread concerning ${user}.
-The user has the roles ${roles} and joined on ${joinDate}
-There were ${pastModMailThreadCount} threads in the past.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/notification/modmail_thread_header_no_roles_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/notification/modmail_thread_header_no_roles_en_US.ftl
deleted file mode 100644
index b860a5157..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/notification/modmail_thread_header_no_roles_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-No roles.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/threadContent/modmail_thread_staff_message_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/threadContent/modmail_thread_staff_message_title_en_US.ftl
deleted file mode 100644
index 36aef3c39..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/threadContent/modmail_thread_staff_message_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Moderator replied
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/threadContent/modmail_thread_user_message_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/threadContent/modmail_thread_user_message_title_en_US.ftl
deleted file mode 100644
index 0c0611288..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/modmail/threadContent/modmail_thread_user_message_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-User replied
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_description_en_US.ftl
deleted file mode 100644
index 4d990ef22..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Accepts the given suggestion.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_example_en_US.ftl
deleted file mode 100644
index dd88e9871..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-`accept 1 okay` in order to accept the suggestion `1` with the reason `okay`
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_long_help_en_US.ftl
deleted file mode 100644
index 121c67844..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Accepts the given suggestion. Will post the suggestion again, with the given reason for acceptance, with the old text strike through and 'Accepted by' as a notice.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_parameter_suggestionId_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_parameter_suggestionId_en_US.ftl
deleted file mode 100644
index feede95d5..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_parameter_suggestionId_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The ID of the suggestion you want to accept.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_parameter_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_parameter_text_en_US.ftl
deleted file mode 100644
index de07ca80e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_parameter_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The text you want to provide in the notification when accepting a suggestion.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_usage_en_US.ftl
deleted file mode 100644
index 0394ce13e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/accept/help/accept_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-accept [reason]
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_description_en_US.ftl
deleted file mode 100644
index 9b5faf352..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Rejects the given suggestion.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_example_en_US.ftl
deleted file mode 100644
index 5078876ca..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-`deny 1 not okay` in order to reject the suggestion `1` with the reason `not okay`
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_long_help_en_US.ftl
deleted file mode 100644
index 6e3c688a8..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Rejects the given suggestion. Will post the suggestion again, with the given reason for rejection, with the old text strike through and 'Rejected by' as a notice.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_parameter_suggestionId_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_parameter_suggestionId_en_US.ftl
deleted file mode 100644
index 299f0f0bb..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_parameter_suggestionId_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The ID of the suggestion you want to reject.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_parameter_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_parameter_text_en_US.ftl
deleted file mode 100644
index 924dfdd3f..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_parameter_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The text you want to provide in the notification when rejecting a suggestion.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_usage_en_US.ftl
deleted file mode 100644
index 9351c9245..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reject/help/reject_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-reject [reason]
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_description_en_US.ftl
deleted file mode 100644
index 529ac0d2c..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Reminds you in the given period of the given text.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_example_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_example_en_US.ftl
deleted file mode 100644
index 0e0dc1d21..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_example_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-`remind 1h2m3s text` in order to be reminded in 1 hour 2 minutes and 3 seconds with the reason `text`
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_long_help_en_US.ftl
deleted file mode 100644
index a45b09e0b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_long_help_en_US.ftl
+++ /dev/null
@@ -1,9 +0,0 @@
-Reminds you in the given duration of the given text.
-The reminder will also include a link to the original message.
-The syntax for duration is the following:
-s - seconds
-m - minutes
-h - hours
-d - days
-
-They must be positive and do no spaces between for example `1h23m` is one hour and twenty three minutes.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_parameter_duration_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_parameter_duration_en_US.ftl
deleted file mode 100644
index 6bbb74397..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_parameter_duration_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The duration in which you want to be reminded in. Uses the duration parsing.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_parameter_remindText_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_parameter_remindText_en_US.ftl
deleted file mode 100644
index e5dbb8848..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_parameter_remindText_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The text you wanted to be reminded with.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_usage_en_US.ftl
deleted file mode 100644
index 5dd2b25c3..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/help/remind_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-remind
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminder_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminder_description_en_US.ftl
deleted file mode 100644
index 65b6afeaa..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminder_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-You wanted to be reminded.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminder_duration_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminder_duration_field_title_en_US.ftl
deleted file mode 100644
index 738f6c588..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminder_duration_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Duration
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminder_link_content_display_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminder_link_content_display_text_en_US.ftl
deleted file mode 100644
index 16c669ff1..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminder_link_content_display_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Jump!
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminder_link_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminder_link_field_title_en_US.ftl
deleted file mode 100644
index 75dba258b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminder_link_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Link
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminder_note_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminder_note_field_title_en_US.ftl
deleted file mode 100644
index 168015a2f..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminder_note_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Note
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminding_description_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminding_description_text_en_US.ftl
deleted file mode 100644
index b8791ca7d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/remind/remind_reminding_description_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Scheduled reminder ${id} to remind you of [this](${messageUrl})
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/help/reminders_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/help/reminders_description_en_US.ftl
deleted file mode 100644
index 1f2e9d97a..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/help/reminders_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Shows your reminders
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/help/reminders_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/help/reminders_long_help_en_US.ftl
deleted file mode 100644
index bcd2d2729..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/help/reminders_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Displays all the currently active reminders with their due date and reminder note.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/help/reminders_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/help/reminders_usage_en_US.ftl
deleted file mode 100644
index aa0dbf5d1..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/help/reminders_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-reminders
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/reminders_due_on_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/reminders_due_on_en_US.ftl
deleted file mode 100644
index e849edfe6..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/reminders_due_on_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Due on ${reminder.targetDate} with text ${reminder.text}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/reminders_reminder_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/reminders_reminder_field_title_en_US.ftl
deleted file mode 100644
index 18bb0f031..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/reminders_reminder_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Reminder ${id}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/reminders_reminders_embed_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/reminders_reminders_embed_title_en_US.ftl
deleted file mode 100644
index c1e642bac..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/reminders/reminders_reminders_embed_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Currently active reminders
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/help/serverInfo_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/help/serverInfo_description_en_US.ftl
deleted file mode 100644
index adbd01351..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/help/serverInfo_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Shows information about the server
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/help/serverInfo_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/help/serverInfo_long_help_en_US.ftl
deleted file mode 100644
index c1855d1e7..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/help/serverInfo_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Shows the ID, owner, member count, role count, features and emotes of the server.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/help/serverInfo_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/help/serverInfo_usage_en_US.ftl
deleted file mode 100644
index 42246f343..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/help/serverInfo_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-serverInfo
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_created_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_created_field_title_en_US.ftl
deleted file mode 100644
index ba2b7e34c..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_created_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Created at
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_emotes_field_title_message_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_emotes_field_title_message_en_US.ftl
deleted file mode 100644
index c6726c4e5..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_emotes_field_title_message_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Emotes ${additionalInfo}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_emotes_title_total_emotes_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_emotes_title_total_emotes_en_US.ftl
deleted file mode 100644
index 53f510a52..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_emotes_title_total_emotes_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-(Total emotes ${count})
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_features_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_features_field_title_en_US.ftl
deleted file mode 100644
index 9c364a39b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_features_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Features
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_id_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_id_field_title_en_US.ftl
deleted file mode 100644
index 47d7bac34..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_id_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Server ID
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_members_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_members_field_title_en_US.ftl
deleted file mode 100644
index 0e5ac6c9e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_members_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Member count
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_owner_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_owner_field_title_en_US.ftl
deleted file mode 100644
index aef7501ab..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_owner_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Owner
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_role_count_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_role_count_field_title_en_US.ftl
deleted file mode 100644
index b111dc383..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_role_count_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Role count
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_title_en_US.ftl
deleted file mode 100644
index 6ffed4f6e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/serverInfo/serverinfo_embed_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Server info of ${name}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/help/showAvatar_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/help/showAvatar_description_en_US.ftl
deleted file mode 100644
index ab39872f2..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/help/showAvatar_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Shows the avatar of a user
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/help/showAvatar_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/help/showAvatar_long_help_en_US.ftl
deleted file mode 100644
index 334ca123e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/help/showAvatar_long_help_en_US.ftl
+++ /dev/null
@@ -1,2 +0,0 @@
-Shows the avatar of a member and provides a link to easier access it.
-Takes a member as a parameter, if this parameter is not available, it uses the member executing the command.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/help/showAvatar_parameter_member_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/help/showAvatar_parameter_member_en_US.ftl
deleted file mode 100644
index cfe878a8e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/help/showAvatar_parameter_member_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The member you want to see the avatar for. If not provided will use the member executing the command.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/help/showAvatar_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/help/showAvatar_usage_en_US.ftl
deleted file mode 100644
index f59e47695..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/help/showAvatar_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-showAvatar [member]
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/showAvatar_response_embed_image_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/showAvatar_response_embed_image_field_title_en_US.ftl
deleted file mode 100644
index 65b277bc2..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/showAvatar_response_embed_image_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Image
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/showAvatar_response_embed_image_field_value_display_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/showAvatar_response_embed_image_field_value_display_en_US.ftl
deleted file mode 100644
index 75dba258b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/showAvatar_response_embed_image_field_value_display_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Link
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/showAvatar_response_embed_user_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/showAvatar_response_embed_user_field_title_en_US.ftl
deleted file mode 100644
index cd0fe7a3d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showAvatar/showAvatar_response_embed_user_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-User
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/help/showEmote_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/help/showEmote_description_en_US.ftl
deleted file mode 100644
index ef9c39b82..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/help/showEmote_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Retrieves the URL to the given emote.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/help/showEmote_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/help/showEmote_long_help_en_US.ftl
deleted file mode 100644
index d3cee623a..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/help/showEmote_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Shows the URL and the name of the given emote.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/help/showEmote_parameter_emote_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/help/showEmote_parameter_emote_en_US.ftl
deleted file mode 100644
index ff8bd227b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/help/showEmote_parameter_emote_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The emote you want to retrieve the name and URL for.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/help/showEmote_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/help/showEmote_usage_en_US.ftl
deleted file mode 100644
index dbbd9d278..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/help/showEmote_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-showEmote
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/showEmote_link_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/showEmote_link_en_US.ftl
deleted file mode 100644
index 75dba258b..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/showEmote_link_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Link
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/showEmote_name_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/showEmote_name_en_US.ftl
deleted file mode 100644
index 636ea505c..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/showEmote/showEmote_name_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Name
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/help/starStats_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/help/starStats_description_en_US.ftl
deleted file mode 100644
index 38b7cac36..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/help/starStats_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Shows the current leader board of starboard posts.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/help/starStats_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/help/starStats_long_help_en_US.ftl
deleted file mode 100644
index 38b7cac36..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/help/starStats_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Shows the current leader board of starboard posts.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/help/starStats_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/help/starStats_usage_en_US.ftl
deleted file mode 100644
index 03c516016..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/help/starStats_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-starStats
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_no_starred_messages_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_no_starred_messages_en_US.ftl
deleted file mode 100644
index 59822d675..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_no_starred_messages_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-No starred messages.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_receiver_entry_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_receiver_entry_en_US.ftl
deleted file mode 100644
index c144ac611..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_receiver_entry_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-${badge} - ${count} :star: ${user}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_receiver_entry_left_guild_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_receiver_entry_left_guild_en_US.ftl
deleted file mode 100644
index 2d580f15e..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_receiver_entry_left_guild_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-${badge} - ${count} :star: [Jump!](${link}) <#include "user_left_server">
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_response_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_response_title_en_US.ftl
deleted file mode 100644
index 68bb17f8c..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_response_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Server starboard stats
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_starred_entry_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_starred_entry_en_US.ftl
deleted file mode 100644
index 875c8fd4c..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_starred_entry_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-${badge} - ${count} :star: [Jump!](${link})
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_starrer_entry_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_starrer_entry_en_US.ftl
deleted file mode 100644
index c144ac611..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_starrer_entry_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-${badge} - ${count} :star: ${user}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_starrer_entry_left_guild_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_starrer_entry_left_guild_en_US.ftl
deleted file mode 100644
index b60d7d150..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_starrer_entry_left_guild_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-${badge} - ${count} :star: ${user} <#include "user_left_server">
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_top_receiver_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_top_receiver_field_title_en_US.ftl
deleted file mode 100644
index ceeb32d52..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_top_receiver_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Top star receiver
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_top_starred_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_top_starred_field_title_en_US.ftl
deleted file mode 100644
index a6965979a..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_top_starred_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Top starred posts
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_top_starrer_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_top_starrer_field_title_en_US.ftl
deleted file mode 100644
index 7aeb69e92..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/starStats_top_starrer_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Top starrer
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/startStats_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/startStats_description_en_US.ftl
deleted file mode 100644
index fd06d7593..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/startStats/startStats_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-${starredMessages} starred messages with ${totalStars} stars in total
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/help/suggest_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/help/suggest_description_en_US.ftl
deleted file mode 100644
index 030829280..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/help/suggest_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Suggests the given text in the `suggestions` post target to be voted on.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/help/suggest_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/help/suggest_long_help_en_US.ftl
deleted file mode 100644
index d6aab3e7d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/help/suggest_long_help_en_US.ftl
+++ /dev/null
@@ -1,2 +0,0 @@
-Suggests the given text in the `suggestions` post target to be voted on. Such a suggestion will have a globally unique id
-and a suggestion can be accepted with `accept` or denied with `reject`.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/help/suggest_parameter_text_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/help/suggest_parameter_text_en_US.ftl
deleted file mode 100644
index e17e1c341..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/help/suggest_parameter_text_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The text describing your suggestion.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/help/suggest_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/help/suggest_usage_en_US.ftl
deleted file mode 100644
index 21890d59d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/help/suggest_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-suggest
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/suggest_accepted_by_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/suggest_accepted_by_en_US.ftl
deleted file mode 100644
index 080f8ae22..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/suggest_accepted_by_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Accepted by ${user}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/suggest_link_display_value_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/suggest_link_display_value_en_US.ftl
deleted file mode 100644
index e69de29bb..000000000
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/suggest_link_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/suggest_link_field_title_en_US.ftl
deleted file mode 100644
index e69de29bb..000000000
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/suggest_rejected_by_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/suggest_rejected_by_en_US.ftl
deleted file mode 100644
index 9bdfc727d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/suggest_rejected_by_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Rejected by ${user}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/suggest_suggestion_id_footer_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/suggest_suggestion_id_footer_en_US.ftl
deleted file mode 100644
index 634faf1f7..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/suggest/suggest_suggestion_id_footer_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Suggestion #${id}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/unRemind/help/unRemind_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/unRemind/help/unRemind_description_en_US.ftl
deleted file mode 100644
index 43c25c47f..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/unRemind/help/unRemind_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Cancels the given reminder.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/unRemind/help/unRemind_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/unRemind/help/unRemind_long_help_en_US.ftl
deleted file mode 100644
index 9ca945221..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/unRemind/help/unRemind_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Cancels the given reminder to not be executed anymore.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/unRemind/help/unRemind_parameter_reminderId_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/unRemind/help/unRemind_parameter_reminderId_en_US.ftl
deleted file mode 100644
index a62347d9f..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/unRemind/help/unRemind_parameter_reminderId_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The ID of the reminder you want to cancel.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/unRemind/help/unRemind_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/unRemind/help/unRemind_usage_en_US.ftl
deleted file mode 100644
index d9c043aae..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/unRemind/help/unRemind_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-unRemind
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/help/userInfo_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/help/userInfo_description_en_US.ftl
deleted file mode 100644
index b09df875f..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/help/userInfo_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Shows information about a user
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/help/userInfo_long_help_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/help/userInfo_long_help_en_US.ftl
deleted file mode 100644
index 9ca945221..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/help/userInfo_long_help_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Cancels the given reminder to not be executed anymore.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/help/userInfo_parameter_member_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/help/userInfo_parameter_member_en_US.ftl
deleted file mode 100644
index c84a1da83..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/help/userInfo_parameter_member_en_US.ftl
+++ /dev/null
@@ -1,3 +0,0 @@
-Shows the ID, nickname (if set), joined date, registration date, status and activities of a user.
-Has an optional parameter to define for which user the information should be shown.
-If no parameter is given, it shows this information for the user executing the command.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/help/userInfo_usage_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/help/userInfo_usage_en_US.ftl
deleted file mode 100644
index 8be503524..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/help/userInfo_usage_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-userInfo [member]
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_activity_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_activity_field_title_en_US.ftl
deleted file mode 100644
index 73e34f14d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_activity_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Activity
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_id_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_id_field_title_en_US.ftl
deleted file mode 100644
index 262f9394c..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_id_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-User ID
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_joined_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_joined_field_title_en_US.ftl
deleted file mode 100644
index fffa8ea72..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_joined_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Joined at
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_nickname_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_nickname_field_title_en_US.ftl
deleted file mode 100644
index 9e41a5658..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_nickname_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Nickname
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_registered_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_registered_field_title_en_US.ftl
deleted file mode 100644
index 288b12684..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_registered_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Registered at
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_status_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_status_field_title_en_US.ftl
deleted file mode 100644
index 3272fb3c0..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/commands/userInfo/userInfo_response_embed_status_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Status
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/link_embeds_feature_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/link_embeds_feature_en_US.ftl
deleted file mode 100644
index c4c282063..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/link_embeds_feature_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Link embeds
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/remind_feature_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/remind_feature_en_US.ftl
deleted file mode 100644
index aa218fad6..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/remind_feature_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Reminders
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/setup_posttarget_starboard_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/setup_posttarget_starboard_en_US.ftl
deleted file mode 100644
index 330ad3713..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/setup_posttarget_starboard_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The channel where starboard posts should be posted to. Currently: ${currentTarget}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/setup_posttarget_suggestions_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/setup_posttarget_suggestions_en_US.ftl
deleted file mode 100644
index d4b7b358d..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/setup_posttarget_suggestions_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-The channel where suggestions should be posted to. Currently: ${currentTarget}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/starboard_feature_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/starboard_feature_en_US.ftl
deleted file mode 100644
index 39477b219..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/starboard_feature_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Starboard
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/suggestion_feature_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/suggestion_feature_en_US.ftl
deleted file mode 100644
index bfeb805b5..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/suggestion_feature_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Suggestions
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/utility_feature_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/utility_feature_en_US.ftl
deleted file mode 100644
index 4bd283f03..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/config/utility_feature_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Utility
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/exception/reminder_does_not_exist_exception_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/exception/reminder_does_not_exist_exception_en_US.ftl
deleted file mode 100644
index 2f6a0e6b1..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/exception/reminder_does_not_exist_exception_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Reminder ${id} does not exist, was already reminded or does not belong to you.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/exception/suggestion_does_not_exist_exception_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/exception/suggestion_does_not_exist_exception_en_US.ftl
deleted file mode 100644
index 7b8ead66a..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/exception/suggestion_does_not_exist_exception_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Suggestion ${id} does not exist.
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/listener/starboard_post/starboard_post_embed_additional_message_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/listener/starboard_post/starboard_post_embed_additional_message_en_US.ftl
deleted file mode 100644
index bb5715654..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/listener/starboard_post/starboard_post_embed_additional_message_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-${emote} ${count} ${channelMention} ID: ${messageId}
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/listener/starboard_post/starboard_post_embed_description_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/listener/starboard_post/starboard_post_embed_description_en_US.ftl
deleted file mode 100644
index 1b3ff1efc..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/listener/starboard_post/starboard_post_embed_description_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Description
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/listener/starboard_post/starboard_post_embed_embeds_name_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/listener/starboard_post/starboard_post_embed_embeds_name_en_US.ftl
deleted file mode 100644
index 20fc96144..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/listener/starboard_post/starboard_post_embed_embeds_name_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Embeds
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/listener/starboard_post/starboard_post_embed_image_url_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/listener/starboard_post/starboard_post_embed_image_url_en_US.ftl
deleted file mode 100644
index 22deafc42..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/listener/starboard_post/starboard_post_embed_image_url_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-ImageURL
\ No newline at end of file
diff --git a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/listener/starboard_post/starboard_post_embed_original_field_title_en_US.ftl b/abstracto-application/template-config/src/main/resources/templates/en_US/utility/listener/starboard_post/starboard_post_embed_original_field_title_en_US.ftl
deleted file mode 100644
index c4c663609..000000000
--- a/abstracto-application/template-config/src/main/resources/templates/en_US/utility/listener/starboard_post/starboard_post_embed_original_field_title_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-Original
\ No newline at end of file
diff --git a/abstracto-application/templating/templating-impl/pom.xml b/abstracto-application/templating/templating-impl/pom.xml
index 10e868245..3babf0f07 100644
--- a/abstracto-application/templating/templating-impl/pom.xml
+++ b/abstracto-application/templating/templating-impl/pom.xml
@@ -3,14 +3,35 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- templating
dev.sheldan.abstracto.templating
+ templating
1.0-SNAPSHOT
4.0.0
templating-impl
+
+
+
+ maven-assembly-plugin
+
+
+ src/main/assembly/liquibase.xml
+
+
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+
@@ -32,7 +53,6 @@
com.google.code.gson
gson
-
\ No newline at end of file
diff --git a/abstracto-application/templating/templating-impl/src/main/assembly/liquibase.xml b/abstracto-application/templating/templating-impl/src/main/assembly/liquibase.xml
new file mode 100644
index 000000000..8b4774fa0
--- /dev/null
+++ b/abstracto-application/templating/templating-impl/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/abstracto-application/templating/templating-impl/src/main/java/dev/sheldan/abstracto/templating/config/TemplateSeedDataLoader.java b/abstracto-application/templating/templating-impl/src/main/java/dev/sheldan/abstracto/templating/config/TemplateSeedDataLoader.java
deleted file mode 100644
index 8b230bb23..000000000
--- a/abstracto-application/templating/templating-impl/src/main/java/dev/sheldan/abstracto/templating/config/TemplateSeedDataLoader.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package dev.sheldan.abstracto.templating.config;
-
-import dev.sheldan.abstracto.templating.service.management.TemplateManagementService;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.io.FilenameUtils;
-import org.apache.commons.io.IOUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.event.ContextRefreshedEvent;
-import org.springframework.context.event.EventListener;
-import org.springframework.core.io.Resource;
-import org.springframework.stereotype.Component;
-
-import java.io.IOException;
-import java.nio.charset.Charset;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * Loads the available templates from the class path and uploads them to the database, overriding existing templates in the process.
- * This will load all *.ftl files at any level within a folder named 'templates' in the resources folder.
- */
-@Component
-@Slf4j
-public class TemplateSeedDataLoader {
-
- @Value("classpath*:**/templates/**/*.ftl")
- private Resource[] resources;
-
- @Autowired
- private TemplateManagementService service;
-
- /**
- * Is executed when the spring context is started, this will load all templates from the class path and
- * store them in the database overriding the existing ones in the process.
- */
- @EventListener
- public void handleContextRefreshEvent(ContextRefreshedEvent ctxStartEvt) {
- log.info("Updating templates.");
- List templatesToLoad = Arrays.asList(resources);
- templatesToLoad.forEach(resource -> {
- try {
- String templateKey = FilenameUtils.getBaseName(resource.getFilename());
- String templateContent = IOUtils.toString(resource.getURI(), Charset.defaultCharset());
- log.trace("Creating template {}", templateKey);
- service.createTemplate(templateKey, templateContent);
- } catch (IOException e) {
- log.error("Failed to upload template", e);
- }
- });
- }
-}
diff --git a/abstracto-application/templating/templating-impl/src/main/resources/migrations/1.0-templating/collection.xml b/abstracto-application/templating/templating-impl/src/main/resources/migrations/1.0-templating/collection.xml
new file mode 100644
index 000000000..8776a71ff
--- /dev/null
+++ b/abstracto-application/templating/templating-impl/src/main/resources/migrations/1.0-templating/collection.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/templating/templating-impl/src/main/resources/migrations/1.0-templating/templating-tables/tables.xml b/abstracto-application/templating/templating-impl/src/main/resources/migrations/1.0-templating/templating-tables/tables.xml
new file mode 100644
index 000000000..a27f40853
--- /dev/null
+++ b/abstracto-application/templating/templating-impl/src/main/resources/migrations/1.0-templating/templating-tables/tables.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/templating/templating-impl/src/main/resources/migrations/1.0-templating/templating-tables/template.xml b/abstracto-application/templating/templating-impl/src/main/resources/migrations/1.0-templating/templating-tables/template.xml
new file mode 100644
index 000000000..e8ae16517
--- /dev/null
+++ b/abstracto-application/templating/templating-impl/src/main/resources/migrations/1.0-templating/templating-tables/template.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/templating/templating-impl/src/main/resources/migrations/dbchangelog-3.8.xsd b/abstracto-application/templating/templating-impl/src/main/resources/migrations/dbchangelog-3.8.xsd
new file mode 100644
index 000000000..ebfe6d612
--- /dev/null
+++ b/abstracto-application/templating/templating-impl/src/main/resources/migrations/dbchangelog-3.8.xsd
@@ -0,0 +1,1377 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/abstracto-application/templating/templating-impl/src/main/resources/migrations/templating-changeLog.xml b/abstracto-application/templating/templating-impl/src/main/resources/migrations/templating-changeLog.xml
new file mode 100644
index 000000000..a8ef59f9c
--- /dev/null
+++ b/abstracto-application/templating/templating-impl/src/main/resources/migrations/templating-changeLog.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/builtins/duration_formatting_en_US.ftl b/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/builtins/duration_formatting_en_US.ftl
deleted file mode 100644
index 1b2241108..000000000
--- a/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/builtins/duration_formatting_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#if days gt 1><#include "duration_days"><#elseif days = 1><#include "duration_day">#if> <#if hours gt 1><#include "duration_hours"><#elseif hours = 1><#include "duration_hour">#if> <#if minutes gt 1><#include "duration_minutes"><#elseif minutes = 1><#include "duration_minute">#if> <#if seconds gt 1><#include "duration_seconds"><#elseif seconds = 1><#include "duration_second">#if>
\ No newline at end of file
diff --git a/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/builtins/emote_mention_en_US.ftl b/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/builtins/emote_mention_en_US.ftl
deleted file mode 100644
index d32473eb6..000000000
--- a/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/builtins/emote_mention_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-${object.asMention}
\ No newline at end of file
diff --git a/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/embed_page_count_en_US.ftl b/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/embed_page_count_en_US.ftl
deleted file mode 100644
index 085e5e592..000000000
--- a/abstracto-application/templating/templating-impl/src/main/resources/templates/embeds/embed_page_count_en_US.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "embed_page_count_page">
\ No newline at end of file
diff --git a/bundled-licenses/not-packaged/ansible/COPYING b/bundled-licenses/not-packaged/ansible/COPYING
new file mode 100644
index 000000000..94a9ed024
--- /dev/null
+++ b/bundled-licenses/not-packaged/ansible/COPYING
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ Copyright (C)
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+.
diff --git a/bundled-licenses/not-packaged/compose/LICENSE b/bundled-licenses/not-packaged/compose/LICENSE
new file mode 100644
index 000000000..207cbf3af
--- /dev/null
+++ b/bundled-licenses/not-packaged/compose/LICENSE
@@ -0,0 +1,191 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ Copyright 2014 Docker, Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/bundled-licenses/not-packaged/docker/LICENSE b/bundled-licenses/not-packaged/docker/LICENSE
new file mode 100644
index 000000000..47e2a5df9
--- /dev/null
+++ b/bundled-licenses/not-packaged/docker/LICENSE
@@ -0,0 +1,201 @@
+Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "{}"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright 2016 Docker, Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/bundled-licenses/not-packaged/liquibase/LICENSE.txt b/bundled-licenses/not-packaged/liquibase/LICENSE.txt
new file mode 100644
index 000000000..7a4a3ea24
--- /dev/null
+++ b/bundled-licenses/not-packaged/liquibase/LICENSE.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file