mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-01-01 15:28:35 +00:00
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
This commit is contained in:
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@@ -17,7 +17,7 @@ jobs:
|
|||||||
id: version
|
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)"
|
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
|
- 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:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
- name: Install SSH Client
|
- name: Install SSH Client
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
[](https://github.com/Sheldan/abstracto/blob/master/LICENSE)
|
[](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.
|
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.
|
This repository does not provide the full functionality in order to start a discord bot, because it requires a Main class.
|
||||||
|
|||||||
@@ -11,6 +11,28 @@
|
|||||||
|
|
||||||
<artifactId>experience-tracking-impl</artifactId>
|
<artifactId>experience-tracking-impl</artifactId>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-assembly-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<descriptors>
|
||||||
|
<descriptor>src/main/assembly/liquibase.xml</descriptor>
|
||||||
|
</descriptors>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>make-assembly</id>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>single</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>dev.sheldan.abstracto.modules</groupId>
|
<groupId>dev.sheldan.abstracto.modules</groupId>
|
||||||
@@ -25,6 +47,7 @@
|
|||||||
<type>test-jar</type>
|
<type>test-jar</type>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 http://maven.apache.org/xsd/assembly-2.1.0.xsd">
|
||||||
|
<id>liquibase</id>
|
||||||
|
<formats>
|
||||||
|
<format>zip</format>
|
||||||
|
</formats>
|
||||||
|
<includeBaseDirectory>false</includeBaseDirectory>
|
||||||
|
<fileSets>
|
||||||
|
<fileSet>
|
||||||
|
<outputDirectory>.</outputDirectory>
|
||||||
|
<directory>${project.basedir}/src/main/resources/migrations</directory>
|
||||||
|
<includes>
|
||||||
|
<include>**/*</include>
|
||||||
|
</includes>
|
||||||
|
</fileSet>
|
||||||
|
</fileSets>
|
||||||
|
</assembly>
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
@@ -3,6 +3,7 @@ package dev.sheldan.abstracto.experience.config;
|
|||||||
import dev.sheldan.abstracto.core.listener.ServerConfigListener;
|
import dev.sheldan.abstracto.core.listener.ServerConfigListener;
|
||||||
import dev.sheldan.abstracto.core.models.database.AServer;
|
import dev.sheldan.abstracto.core.models.database.AServer;
|
||||||
import dev.sheldan.abstracto.core.service.management.ConfigManagementService;
|
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 dev.sheldan.abstracto.experience.config.features.ExperienceFeatureConfig;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -17,7 +18,7 @@ public class ExperienceConfigListener implements ServerConfigListener {
|
|||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ExperienceConfig experienceConfig;
|
private DefaultConfigManagementService defaultConfigManagementService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ConfigManagementService service;
|
private ConfigManagementService service;
|
||||||
@@ -25,8 +26,8 @@ public class ExperienceConfigListener implements ServerConfigListener {
|
|||||||
@Override
|
@Override
|
||||||
public void updateServerConfig(AServer server) {
|
public void updateServerConfig(AServer server) {
|
||||||
log.info("Setting up experience configuration for server {}.", server.getId());
|
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.MIN_EXP_KEY, defaultConfigManagementService.getDefaultConfig(ExperienceFeatureConfig.MIN_EXP_KEY).getLongValue());
|
||||||
service.createIfNotExists(server.getId(), ExperienceFeatureConfig.MAX_EXP_KEY, experienceConfig.getMaxExp().longValue());
|
service.createIfNotExists(server.getId(), ExperienceFeatureConfig.MAX_EXP_KEY, defaultConfigManagementService.getDefaultConfig(ExperienceFeatureConfig.MAX_EXP_KEY).getLongValue());
|
||||||
service.createIfNotExists(server.getId(), ExperienceFeatureConfig.EXP_MULTIPLIER_KEY, experienceConfig.getExpMultiplier());
|
service.createIfNotExists(server.getId(), ExperienceFeatureConfig.EXP_MULTIPLIER_KEY, defaultConfigManagementService.getDefaultConfig(ExperienceFeatureConfig.EXP_MULTIPLIER_KEY).getDoubleValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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 {
|
|
||||||
}
|
|
||||||
@@ -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
|
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../dbchangelog-3.8.xsd" >
|
||||||
|
<include file="experience-tables/tables.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="experience-seedData/data.xml" relativeToChangelogFile="true"/>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<property name="experienceModule" value="(SELECT id FROM module WHERE name = 'experience')"/>
|
||||||
|
<property name="experienceFeature" value="(SELECT id FROM feature WHERE key = 'experience')"/>
|
||||||
|
<property name="today" value="(SELECT NOW())"/>
|
||||||
|
<changeSet author="Sheldan" id="experience-commands">
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="disableExpForRole"/>
|
||||||
|
<column name="module_id" valueComputed="${experienceModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${experienceFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="disableExpGain"/>
|
||||||
|
<column name="module_id" valueComputed="${experienceModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${experienceFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="enableExpForRole"/>
|
||||||
|
<column name="module_id" valueComputed="${experienceModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${experienceFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="enableExpGain"/>
|
||||||
|
<column name="module_id" valueComputed="${experienceModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${experienceFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="expScale"/>
|
||||||
|
<column name="module_id" valueComputed="${experienceModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${experienceFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="leaderboard"/>
|
||||||
|
<column name="module_id" valueComputed="${experienceModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${experienceFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="listDisabledExperienceRoles"/>
|
||||||
|
<column name="module_id" valueComputed="${experienceModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${experienceFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="rank"/>
|
||||||
|
<column name="module_id" valueComputed="${experienceModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${experienceFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="setExpRole"/>
|
||||||
|
<column name="module_id" valueComputed="${experienceModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${experienceFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="syncExpRoles"/>
|
||||||
|
<column name="module_id" valueComputed="${experienceModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${experienceFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="unSetExpRole"/>
|
||||||
|
<column name="module_id" valueComputed="${experienceModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${experienceFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<include file="experience_level.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="feature.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="module.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="command.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="default_config.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="experience_job.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="default_feature_flag.xml" relativeToChangelogFile="true"/>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<property name="today" value="(SELECT NOW())"/>
|
||||||
|
<changeSet author="Sheldan" id="experience_default_config-insert">
|
||||||
|
<insert tableName="default_config">
|
||||||
|
<column name="name" value="minExp"/>
|
||||||
|
<column name="long_value" value="10"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="default_config">
|
||||||
|
<column name="name" value="maxExp"/>
|
||||||
|
<column name="long_value" value="25"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="default_config">
|
||||||
|
<column name="name" value="expMultiplier"/>
|
||||||
|
<column name="double_value" value="1"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<property name="experienceFeature" value="(SELECT id FROM feature WHERE key = 'experience')"/>
|
||||||
|
<property name="today" value="(SELECT NOW())"/>
|
||||||
|
<changeSet author="Sheldan" id="experience_default_feature_flag-insertion">
|
||||||
|
<insert tableName="default_feature_flag">
|
||||||
|
<column name="enabled" value="false"/>
|
||||||
|
<column name="feature_id" valueComputed="${experienceFeature}" />
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<changeSet author="Sheldan" id="reminder-job-insert">
|
||||||
|
<insert tableName="scheduler_job">
|
||||||
|
<column name="name" value="experienceJob"/>
|
||||||
|
<column name="group_name" value="experience"/>
|
||||||
|
<column name="clazz" value="dev.sheldan.abstracto.experience.job.ExperiencePersistingJob"/>
|
||||||
|
<column name="active" value="true"/>
|
||||||
|
<column name="cron_expression" value="30 * * * * ?"/>
|
||||||
|
<column name="recovery" value="false"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,417 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<changeSet author="Sheldan" id="experience_levels-insert">
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="0"/>
|
||||||
|
<column name="experience_needed" value="0"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="1"/>
|
||||||
|
<column name="experience_needed" value="100"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="2"/>
|
||||||
|
<column name="experience_needed" value="255"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="3"/>
|
||||||
|
<column name="experience_needed" value="475"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="4"/>
|
||||||
|
<column name="experience_needed" value="770"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="5"/>
|
||||||
|
<column name="experience_needed" value="1150"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="6"/>
|
||||||
|
<column name="experience_needed" value="1625"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="7"/>
|
||||||
|
<column name="experience_needed" value="2205"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="8"/>
|
||||||
|
<column name="experience_needed" value="2900"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="9"/>
|
||||||
|
<column name="experience_needed" value="3720"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="10"/>
|
||||||
|
<column name="experience_needed" value="4675"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="11"/>
|
||||||
|
<column name="experience_needed" value="5775"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="12"/>
|
||||||
|
<column name="experience_needed" value="7030"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="13"/>
|
||||||
|
<column name="experience_needed" value="8450"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="14"/>
|
||||||
|
<column name="experience_needed" value="10045"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="15"/>
|
||||||
|
<column name="experience_needed" value="11825"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="16"/>
|
||||||
|
<column name="experience_needed" value="13800"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="17"/>
|
||||||
|
<column name="experience_needed" value="15980"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="18"/>
|
||||||
|
<column name="experience_needed" value="18375"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="19"/>
|
||||||
|
<column name="experience_needed" value="20995"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="20"/>
|
||||||
|
<column name="experience_needed" value="23850"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="21"/>
|
||||||
|
<column name="experience_needed" value="26950"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="22"/>
|
||||||
|
<column name="experience_needed" value="30305"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="23"/>
|
||||||
|
<column name="experience_needed" value="33925"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="24"/>
|
||||||
|
<column name="experience_needed" value="37820"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="25"/>
|
||||||
|
<column name="experience_needed" value="42000"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="26"/>
|
||||||
|
<column name="experience_needed" value="46475"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="27"/>
|
||||||
|
<column name="experience_needed" value="51255"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="28"/>
|
||||||
|
<column name="experience_needed" value="56350"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="29"/>
|
||||||
|
<column name="experience_needed" value="61770"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="30"/>
|
||||||
|
<column name="experience_needed" value="67525"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="31"/>
|
||||||
|
<column name="experience_needed" value="73625"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="32"/>
|
||||||
|
<column name="experience_needed" value="80080"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="33"/>
|
||||||
|
<column name="experience_needed" value="86900"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="34"/>
|
||||||
|
<column name="experience_needed" value="94095"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="35"/>
|
||||||
|
<column name="experience_needed" value="101675"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="36"/>
|
||||||
|
<column name="experience_needed" value="109650"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="37"/>
|
||||||
|
<column name="experience_needed" value="118030"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="38"/>
|
||||||
|
<column name="experience_needed" value="126825"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="39"/>
|
||||||
|
<column name="experience_needed" value="136045"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="40"/>
|
||||||
|
<column name="experience_needed" value="145700"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="41"/>
|
||||||
|
<column name="experience_needed" value="155800"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="42"/>
|
||||||
|
<column name="experience_needed" value="166355"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="43"/>
|
||||||
|
<column name="experience_needed" value="177375"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="44"/>
|
||||||
|
<column name="experience_needed" value="188870"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="45"/>
|
||||||
|
<column name="experience_needed" value="200850"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="46"/>
|
||||||
|
<column name="experience_needed" value="213325"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="47"/>
|
||||||
|
<column name="experience_needed" value="226305"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="48"/>
|
||||||
|
<column name="experience_needed" value="239800"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="49"/>
|
||||||
|
<column name="experience_needed" value="253820"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="50"/>
|
||||||
|
<column name="experience_needed" value="268375"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="51"/>
|
||||||
|
<column name="experience_needed" value="283475"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="52"/>
|
||||||
|
<column name="experience_needed" value="299130"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="53"/>
|
||||||
|
<column name="experience_needed" value="315350"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="54"/>
|
||||||
|
<column name="experience_needed" value="332145"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="55"/>
|
||||||
|
<column name="experience_needed" value="349525"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="56"/>
|
||||||
|
<column name="experience_needed" value="367500"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="57"/>
|
||||||
|
<column name="experience_needed" value="386080"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="58"/>
|
||||||
|
<column name="experience_needed" value="405275"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="59"/>
|
||||||
|
<column name="experience_needed" value="425095"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="60"/>
|
||||||
|
<column name="experience_needed" value="445550"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="61"/>
|
||||||
|
<column name="experience_needed" value="466650"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="62"/>
|
||||||
|
<column name="experience_needed" value="488405"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="63"/>
|
||||||
|
<column name="experience_needed" value="510825"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="64"/>
|
||||||
|
<column name="experience_needed" value="533920"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="65"/>
|
||||||
|
<column name="experience_needed" value="557700"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="66"/>
|
||||||
|
<column name="experience_needed" value="582175"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="67"/>
|
||||||
|
<column name="experience_needed" value="607355"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="68"/>
|
||||||
|
<column name="experience_needed" value="633250"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="69"/>
|
||||||
|
<column name="experience_needed" value="659870"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="70"/>
|
||||||
|
<column name="experience_needed" value="687225"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="71"/>
|
||||||
|
<column name="experience_needed" value="715325"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="72"/>
|
||||||
|
<column name="experience_needed" value="744180"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="73"/>
|
||||||
|
<column name="experience_needed" value="773800"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="74"/>
|
||||||
|
<column name="experience_needed" value="804195"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="75"/>
|
||||||
|
<column name="experience_needed" value="835375"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="76"/>
|
||||||
|
<column name="experience_needed" value="867350"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="77"/>
|
||||||
|
<column name="experience_needed" value="900130"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="78"/>
|
||||||
|
<column name="experience_needed" value="933725"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="79"/>
|
||||||
|
<column name="experience_needed" value="968145"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="80"/>
|
||||||
|
<column name="experience_needed" value="1003400"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="81"/>
|
||||||
|
<column name="experience_needed" value="1039500"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="82"/>
|
||||||
|
<column name="experience_needed" value="1076455"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="83"/>
|
||||||
|
<column name="experience_needed" value="1114275"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="84"/>
|
||||||
|
<column name="experience_needed" value="1152970"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="85"/>
|
||||||
|
<column name="experience_needed" value="1192550"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="86"/>
|
||||||
|
<column name="experience_needed" value="1233025"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="87"/>
|
||||||
|
<column name="experience_needed" value="1274405"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="88"/>
|
||||||
|
<column name="experience_needed" value="1316700"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="89"/>
|
||||||
|
<column name="experience_needed" value="1359920"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="90"/>
|
||||||
|
<column name="experience_needed" value="1404075"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="91"/>
|
||||||
|
<column name="experience_needed" value="1449175"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="92"/>
|
||||||
|
<column name="experience_needed" value="1495230"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="93"/>
|
||||||
|
<column name="experience_needed" value="1542250"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="94"/>
|
||||||
|
<column name="experience_needed" value="1590245"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="95"/>
|
||||||
|
<column name="experience_needed" value="1639225"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="96"/>
|
||||||
|
<column name="experience_needed" value="1689200"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="97"/>
|
||||||
|
<column name="experience_needed" value="1740180"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="98"/>
|
||||||
|
<column name="experience_needed" value="1792175"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="99"/>
|
||||||
|
<column name="experience_needed" value="1845195"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="experience_level">
|
||||||
|
<column name="level" value="100"/>
|
||||||
|
<column name="experience_needed" value="1899250"/>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<property name="today" value="(SELECT NOW())"/>
|
||||||
|
<changeSet author="Sheldan" id="experience_feature-insertion">
|
||||||
|
<insert tableName="feature">
|
||||||
|
<column name="key" value="experience"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<property name="today" value="(SELECT NOW())"/>
|
||||||
|
<changeSet author="Sheldan" id="experience-module-insertion">
|
||||||
|
<insert tableName="module">
|
||||||
|
<column name="name" value="experience"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<changeSet author="Sheldan" id="disabled_experience_roles-table">
|
||||||
|
<createTable tableName="disabled_experience_roles">
|
||||||
|
<column autoIncrement="true" name="id" type="BIGINT">
|
||||||
|
<constraints nullable="false" primaryKey="true" primaryKeyName="disabled_experience_roles_pkey"/>
|
||||||
|
</column>
|
||||||
|
<column name="role_id" type="BIGINT">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</createTable>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet author="Sheldan" id="disabled_experience_roles-fk_disabled_experience_role_role">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="role_id" baseTableName="disabled_experience_roles" constraintName="fk_disabled_experience_role_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="role" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<changeSet author="Sheldan" id="experience_level-table">
|
||||||
|
<createTable tableName="experience_level">
|
||||||
|
<column name="level" type="INTEGER">
|
||||||
|
<constraints nullable="false" primaryKey="true" primaryKeyName="experience_level_pkey"/>
|
||||||
|
</column>
|
||||||
|
<column name="created" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="experience_needed" type="BIGINT"/>
|
||||||
|
<column name="updated" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
</createTable>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<changeSet author="Sheldan" id="experience_role-table">
|
||||||
|
<createTable tableName="experience_role">
|
||||||
|
<column autoIncrement="true" name="id" type="BIGINT">
|
||||||
|
<constraints nullable="false" primaryKey="true" primaryKeyName="experience_role_pkey"/>
|
||||||
|
</column>
|
||||||
|
<column name="created" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="updated" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="level_id" type="INTEGER">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
<column name="role_id" type="BIGINT">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
<column name="server_id" type="BIGINT">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</createTable>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Sheldan" id="experience_role-fk_experience_role_level">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="level_id" baseTableName="experience_role" constraintName="fk_experience_role_level" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="level" referencedTableName="experience_level" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Sheldan" id="experience_role-fk_experience_role_role">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="role_id" baseTableName="experience_role" constraintName="fk_experience_role_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="role" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet author="Sheldan" id="experience_role-fk_experience_role_server">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="server_id" baseTableName="experience_role" constraintName="fk_experience_role_server" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="server" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<include file="experience_level.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="experience_role.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="user_experience.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="disabled_experience_roles.xml" relativeToChangelogFile="true"/>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<changeSet author="Sheldan" id="user_experience-table">
|
||||||
|
<createTable tableName="user_experience">
|
||||||
|
<column name="id" type="BIGINT">
|
||||||
|
<constraints nullable="false" primaryKey="true" primaryKeyName="user_experience_pkey"/>
|
||||||
|
</column>
|
||||||
|
<column name="created" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="experience" type="BIGINT"/>
|
||||||
|
<column name="experience_gain_disabled" type="BOOLEAN"/>
|
||||||
|
<column name="message_count" type="BIGINT"/>
|
||||||
|
<column name="updated" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="experience_role_id" type="BIGINT"/>
|
||||||
|
<column name="level_id" type="INTEGER">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</createTable>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet author="Sheldan" id="user_experience-fk_user_experience_level">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="level_id" baseTableName="user_experience" constraintName="fk_user_experience_level" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="level" referencedTableName="experience_level" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Sheldan" id="user_experience-fk_user_experience_role">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="experience_role_id" baseTableName="user_experience" constraintName="fk_user_experience_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="experience_role" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro dbchangelog-3.8.xsd" >
|
||||||
|
<include file="1.0-experience/collection.xml" relativeToChangelogFile="true"/>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -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 />
|
|
||||||
"
|
|
||||||
}
|
|
||||||
@@ -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>
|
|
||||||
"
|
|
||||||
}
|
|
||||||
@@ -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"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"additionalMessage": "<#include "syncExpRoles_updating_users_label">: ${currentCount}/${totalUserCount}."
|
|
||||||
}
|
|
||||||
@@ -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<Long> configValueCaptor;
|
|
||||||
|
|
||||||
@Captor
|
|
||||||
private ArgumentCaptor<String> 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<String> configKeys = configKeyCaptor.getAllValues();
|
|
||||||
List<Long> 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());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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<Long> configValueCaptor;
|
|
||||||
|
|
||||||
@Captor
|
|
||||||
private ArgumentCaptor<String> 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<String> configKeys = configKeyCaptor.getAllValues();
|
|
||||||
List<Long> 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());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -11,6 +11,28 @@
|
|||||||
|
|
||||||
<artifactId>moderation-impl</artifactId>
|
<artifactId>moderation-impl</artifactId>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-assembly-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<descriptors>
|
||||||
|
<descriptor>src/main/assembly/liquibase.xml</descriptor>
|
||||||
|
</descriptors>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>make-assembly</id>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>single</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>dev.sheldan.abstracto.modules</groupId>
|
<groupId>dev.sheldan.abstracto.modules</groupId>
|
||||||
@@ -31,6 +53,7 @@
|
|||||||
<type>test-jar</type>
|
<type>test-jar</type>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 http://maven.apache.org/xsd/assembly-2.1.0.xsd">
|
||||||
|
<id>liquibase</id>
|
||||||
|
<formats>
|
||||||
|
<format>zip</format>
|
||||||
|
</formats>
|
||||||
|
<includeBaseDirectory>false</includeBaseDirectory>
|
||||||
|
<fileSets>
|
||||||
|
<fileSet>
|
||||||
|
<outputDirectory>.</outputDirectory>
|
||||||
|
<directory>${project.basedir}/src/main/resources/migrations</directory>
|
||||||
|
<includes>
|
||||||
|
<include>**/*</include>
|
||||||
|
</includes>
|
||||||
|
</fileSet>
|
||||||
|
</fileSets>
|
||||||
|
</assembly>
|
||||||
@@ -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 {
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -3,6 +3,8 @@ package dev.sheldan.abstracto.moderation.listener;
|
|||||||
import dev.sheldan.abstracto.core.listener.ServerConfigListener;
|
import dev.sheldan.abstracto.core.listener.ServerConfigListener;
|
||||||
import dev.sheldan.abstracto.core.models.database.AServer;
|
import dev.sheldan.abstracto.core.models.database.AServer;
|
||||||
import dev.sheldan.abstracto.core.service.management.ConfigManagementService;
|
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.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@@ -13,11 +15,11 @@ public class WarnDecayConfigListener implements ServerConfigListener {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ConfigManagementService configManagementService;
|
private ConfigManagementService configManagementService;
|
||||||
|
|
||||||
@Value("${abstracto.warnings.warnDecay.days}")
|
@Autowired
|
||||||
private Long decayDays;
|
private DefaultConfigManagementService defaultConfigManagementService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateServerConfig(AServer server) {
|
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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../dbchangelog-3.8.xsd" >
|
||||||
|
<include file="moderation-tables/tables.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="moderation-seedData/data.xml" relativeToChangelogFile="true"/>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,134 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<property name="moderationModule" value="(SELECT id FROM module WHERE name = 'moderation')"/>
|
||||||
|
<property name="moderationFeature" value="(SELECT id FROM feature WHERE key = 'moderation')"/>
|
||||||
|
<property name="warningsFeature" value="(SELECT id FROM feature WHERE key = 'warnings')"/>
|
||||||
|
<property name="loggingFeature" value="(SELECT id FROM feature WHERE key = 'logging')"/>
|
||||||
|
<property name="mutingFeature" value="(SELECT id FROM feature WHERE key = 'muting')"/>
|
||||||
|
<property name="warnDecayFeature" value="(SELECT id FROM feature WHERE key = 'warnDecay')"/>
|
||||||
|
<property name="userNotesFeature" value="(SELECT id FROM feature WHERE key = 'userNotes')"/>
|
||||||
|
<property name="today" value="(SELECT NOW())"/>
|
||||||
|
|
||||||
|
<changeSet author="Sheldan" id="moderation_moderation-commands">
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="ban"/>
|
||||||
|
<column name="module_id" valueComputed="${moderationModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${moderationFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="banId"/>
|
||||||
|
<column name="module_id" valueComputed="${moderationModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${moderationFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="kick"/>
|
||||||
|
<column name="module_id" valueComputed="${moderationModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${moderationFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="purge"/>
|
||||||
|
<column name="module_id" valueComputed="${moderationModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${moderationFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="slowMode"/>
|
||||||
|
<column name="module_id" valueComputed="${moderationModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${moderationFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet author="Sheldan" id="moderation_warnings-commands">
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="deleteWarning"/>
|
||||||
|
<column name="module_id" valueComputed="${moderationModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${warningsFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="decayAllWarnings"/>
|
||||||
|
<column name="module_id" valueComputed="${moderationModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${warningsFeature}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="myWarnings"/>
|
||||||
|
<column name="module_id" valueComputed="${moderationModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${warningsFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="warn"/>
|
||||||
|
<column name="module_id" valueComputed="${moderationModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${warningsFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="warnings"/>
|
||||||
|
<column name="module_id" valueComputed="${moderationModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${warningsFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet author="Sheldan" id="moderation_muting-commands">
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="mute"/>
|
||||||
|
<column name="module_id" valueComputed="${moderationModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${mutingFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="setMuteRole"/>
|
||||||
|
<column name="module_id" valueComputed="${moderationModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${mutingFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="unMute"/>
|
||||||
|
<column name="module_id" valueComputed="${moderationModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${mutingFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet author="Sheldan" id="moderation_warnDecay-commands">
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="decayWarnings"/>
|
||||||
|
<column name="module_id" valueComputed="${moderationModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${warnDecayFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet author="Sheldan" id="moderation_userNotes-commands">
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="deleteNote"/>
|
||||||
|
<column name="module_id" valueComputed="${moderationModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${userNotesFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="userNote"/>
|
||||||
|
<column name="module_id" valueComputed="${moderationModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${userNotesFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="userNotes"/>
|
||||||
|
<column name="module_id" valueComputed="${moderationModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${userNotesFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<include file="default_config.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="un_mute_job.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="module.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="warn_decay_job.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="feature.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="default_posttarget.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="default_feature_flag.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="command.xml" relativeToChangelogFile="true"/>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd">
|
||||||
|
<property name="today" value="(SELECT NOW())"/>
|
||||||
|
<changeSet author="Sheldan" id="moderation_default_config-insert">
|
||||||
|
<insert tableName="default_config">
|
||||||
|
<column name="name" value="decayDays"/>
|
||||||
|
<column name="long_value" value="90"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<property name="moderationFeature" value="(SELECT id FROM feature WHERE key = 'moderation')"/>
|
||||||
|
<property name="warningsFeature" value="(SELECT id FROM feature WHERE key = 'warnings')"/>
|
||||||
|
<property name="warnDecayFeature" value="(SELECT id FROM feature WHERE key = 'warnDecay')"/>
|
||||||
|
<property name="loggingFeature" value="(SELECT id FROM feature WHERE key = 'logging')"/>
|
||||||
|
<property name="mutingFeature" value="(SELECT id FROM feature WHERE key = 'muting')"/>
|
||||||
|
<property name="userNotesFeature" value="(SELECT id FROM feature WHERE key = 'userNotes')"/>
|
||||||
|
<property name="today" value="(SELECT NOW())"/>
|
||||||
|
<changeSet author="Sheldan" id="moderation_default_feature_flag-insertion">
|
||||||
|
<insert tableName="default_feature_flag">
|
||||||
|
<column name="enabled" value="false"/>
|
||||||
|
<column name="feature_id" valueComputed="${moderationFeature}" />
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="default_feature_flag">
|
||||||
|
<column name="enabled" value="false"/>
|
||||||
|
<column name="feature_id" valueComputed="${warningsFeature}" />
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="default_feature_flag">
|
||||||
|
<column name="enabled" value="false"/>
|
||||||
|
<column name="feature_id" valueComputed="${warnDecayFeature}" />
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="default_feature_flag">
|
||||||
|
<column name="enabled" value="false"/>
|
||||||
|
<column name="feature_id" valueComputed="${loggingFeature}" />
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="default_feature_flag">
|
||||||
|
<column name="enabled" value="false"/>
|
||||||
|
<column name="feature_id" valueComputed="${mutingFeature}" />
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="default_feature_flag">
|
||||||
|
<column name="enabled" value="false"/>
|
||||||
|
<column name="feature_id" valueComputed="${userNotesFeature}" />
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<property name="today" value="(SELECT NOW())"/>
|
||||||
|
<changeSet author="Sheldan" id="moderation_default_posttarget-insertion">
|
||||||
|
<insert tableName="default_posttarget">
|
||||||
|
<column name="name" value="joinLog"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="default_posttarget">
|
||||||
|
<column name="name" value="leaveLog"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="default_posttarget">
|
||||||
|
<column name="name" value="warnLog"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="default_posttarget">
|
||||||
|
<column name="name" value="kickLog"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="default_posttarget">
|
||||||
|
<column name="name" value="banLog"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="default_posttarget">
|
||||||
|
<column name="name" value="editLog"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="default_posttarget">
|
||||||
|
<column name="name" value="deleteLog"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="default_posttarget">
|
||||||
|
<column name="name" value="muteLog"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="default_posttarget">
|
||||||
|
<column name="name" value="decayLog"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<property name="today" value="(SELECT NOW())"/>
|
||||||
|
<changeSet author="Sheldan" id="moderation_feature-insertion">
|
||||||
|
<insert tableName="feature">
|
||||||
|
<column name="key" value="moderation"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="feature">
|
||||||
|
<column name="key" value="warnings"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="feature">
|
||||||
|
<column name="key" value="warnDecay"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="feature">
|
||||||
|
<column name="key" value="logging"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="feature">
|
||||||
|
<column name="key" value="muting"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="feature">
|
||||||
|
<column name="key" value="userNotes"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<property name="today" value="(SELECT NOW())"/>
|
||||||
|
<changeSet author="Sheldan" id="moderation-module-insertion">
|
||||||
|
<insert tableName="module">
|
||||||
|
<column name="name" value="moderation"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<changeSet author="Sheldan" id="un-mute-job-insert">
|
||||||
|
<insert tableName="scheduler_job">
|
||||||
|
<column name="name" value="unMuteJob"/>
|
||||||
|
<column name="group_name" value="moderation"/>
|
||||||
|
<column name="clazz" value="dev.sheldan.abstracto.moderation.job.UnMuteJob"/>
|
||||||
|
<column name="active" value="true"/>
|
||||||
|
<column name="recovery" value="false"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<changeSet author="Sheldan" id="warn-decay-job-insert">
|
||||||
|
<insert tableName="scheduler_job">
|
||||||
|
<column name="name" value="warnDecayJob"/>
|
||||||
|
<column name="group_name" value="moderation"/>
|
||||||
|
<column name="clazz" value="dev.sheldan.abstracto.moderation.job.WarnDecayJob"/>
|
||||||
|
<column name="active" value="true"/>
|
||||||
|
<column name="cron_expression" value="0 0 * * * ?"/>
|
||||||
|
<column name="recovery" value="false"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<changeSet author="Sheldan" id="mute-table">
|
||||||
|
<createTable tableName="mute">
|
||||||
|
<column autoIncrement="true" name="id" type="BIGINT">
|
||||||
|
<constraints nullable="false" primaryKey="true" primaryKeyName="mute_pkey"/>
|
||||||
|
</column>
|
||||||
|
<column name="created" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="reason" type="VARCHAR(255)"/>
|
||||||
|
<column name="trigger_key" type="VARCHAR(255)"/>
|
||||||
|
<column name="updated" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="mute_date" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="mute_target_date" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="muted_user" type="BIGINT">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
<column name="muting_channel" type="BIGINT">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
<column name="muting_server" type="BIGINT">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
<column name="mute_ended" type="BOOLEAN"/>
|
||||||
|
<column name="message_id" type="BIGINT"/>
|
||||||
|
<column name="muting_user" type="BIGINT">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</createTable>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet author="Sheldan" id="mute-fk_mute_channel">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="muting_channel" baseTableName="mute" constraintName="fk_mute_channel" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="channel" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet author="Sheldan" id="mute-fk_mute_muting_user">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="muting_user" baseTableName="mute" constraintName="fk_mute_muting_user" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="user_in_server_id" referencedTableName="user_in_server" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Sheldan" id="mute-fk_mute_muted_user">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="muted_user" baseTableName="mute" constraintName="fk_mute_muted_user" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="user_in_server_id" referencedTableName="user_in_server" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Sheldan" id="mute-fk_mute_muting_server">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="muting_server" baseTableName="mute" constraintName="fk_mute_muting_server" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="server" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
|
||||||
|
<changeSet author="Sheldan" id="mute_role-table">
|
||||||
|
<createTable tableName="mute_role">
|
||||||
|
<column autoIncrement="true" name="id" type="BIGINT">
|
||||||
|
<constraints nullable="false" primaryKey="true" primaryKeyName="mute_role_pkey"/>
|
||||||
|
</column>
|
||||||
|
<column name="created" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="updated" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="role_id" type="BIGINT">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
<column name="server_id" type="BIGINT">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</createTable>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
|
||||||
|
<changeSet author="Sheldan" id="1593469295954-78">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="role_id" baseTableName="mute_role" constraintName="fk3m21mnle06e53wb4r1x5bfyxc" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="role" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet author="Sheldan" id="1593469295954-126">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="server_id" baseTableName="mute_role" constraintName="fk8bveij4p6lnc2fkoascaeb28k" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="server" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<include file="mute.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="mute_role.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="user_note.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="warning.xml" relativeToChangelogFile="true"/>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<changeSet author="Sheldan" id="user_note-table">
|
||||||
|
<createTable tableName="user_note">
|
||||||
|
<column autoIncrement="true" name="id" type="BIGINT">
|
||||||
|
<constraints nullable="false" primaryKey="true" primaryKeyName="user_note_pkey"/>
|
||||||
|
</column>
|
||||||
|
<column name="created" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="note" type="VARCHAR(2000)"/>
|
||||||
|
<column name="note_user" type="BIGINT">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</createTable>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet author="Sheldan" id="user_note-fk_user_note_user">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="note_user" baseTableName="user_note" constraintName="fk_user_note_user" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="user_in_server_id" referencedTableName="user_in_server" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<changeSet author="Sheldan" id="warning-table">
|
||||||
|
<createTable tableName="warning">
|
||||||
|
<column autoIncrement="true" name="id" type="BIGINT">
|
||||||
|
<constraints nullable="false" primaryKey="true" primaryKeyName="warning_pkey"/>
|
||||||
|
</column>
|
||||||
|
<column name="created" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="decay_date" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="decayed" type="BOOLEAN"/>
|
||||||
|
<column name="reason" type="VARCHAR(255)"/>
|
||||||
|
<column name="updated" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="warn_date" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="warned_user_id" type="BIGINT">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
<column name="warning_user_id" type="BIGINT">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</createTable>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
|
||||||
|
<changeSet author="Sheldan" id="warning-fk_warning_warned_user">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="warned_user_id" baseTableName="warning" constraintName="fk_warning_warned_user" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="user_in_server_id" referencedTableName="user_in_server" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Sheldan" id="warning-fk_warning_warning_user">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="warning_user_id" baseTableName="warning" constraintName="fk_warning_warning_user" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="user_in_server_id" referencedTableName="user_in_server" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro dbchangelog-3.8.xsd" >
|
||||||
|
<include file="1.0-moderation/collection.xml" relativeToChangelogFile="true"/>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -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
|
|
||||||
@@ -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}"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -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}"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -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}"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -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>"
|
|
||||||
}
|
|
||||||
@@ -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}"
|
|
||||||
}
|
|
||||||
@@ -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}"
|
|
||||||
}
|
|
||||||
@@ -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>
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
<#include "purge_status_update_message">
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
The slowmode in channel ${channel.name} has been set to ${channel.slowMode} seconds.
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
<#include "unMute_has_no_active_mute_message">
|
|
||||||
@@ -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>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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>
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -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>
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
<#include "no_message_found_exception_message">
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
<#include "note_not_found_exception_message">
|
|
||||||
@@ -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}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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})"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -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})"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -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>"
|
|
||||||
}
|
|
||||||
@@ -79,7 +79,7 @@ public class Mute {
|
|||||||
* The channel in which this mute was cast
|
* The channel in which this mute was cast
|
||||||
*/
|
*/
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@JoinColumn(name = "mutingChannel")
|
@JoinColumn(name = "mutingChannel", nullable = false)
|
||||||
private AChannel mutingChannel;
|
private AChannel mutingChannel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import javax.persistence.*;
|
|||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name="user_notes")
|
@Table(name="user_note")
|
||||||
@Builder
|
@Builder
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
|
|||||||
@@ -11,13 +11,34 @@
|
|||||||
|
|
||||||
<artifactId>modmail-impl</artifactId>
|
<artifactId>modmail-impl</artifactId>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-assembly-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<descriptors>
|
||||||
|
<descriptor>src/main/assembly/liquibase.xml</descriptor>
|
||||||
|
</descriptors>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>make-assembly</id>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>single</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>dev.sheldan.abstracto.modules</groupId>
|
<groupId>dev.sheldan.abstracto.modules</groupId>
|
||||||
<artifactId>modmail-int</artifactId>
|
<artifactId>modmail-int</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 http://maven.apache.org/xsd/assembly-2.1.0.xsd">
|
||||||
|
<id>liquibase</id>
|
||||||
|
<formats>
|
||||||
|
<format>zip</format>
|
||||||
|
</formats>
|
||||||
|
<includeBaseDirectory>false</includeBaseDirectory>
|
||||||
|
<fileSets>
|
||||||
|
<fileSet>
|
||||||
|
<outputDirectory>.</outputDirectory>
|
||||||
|
<directory>${project.basedir}/src/main/resources/migrations</directory>
|
||||||
|
<includes>
|
||||||
|
<include>**/*</include>
|
||||||
|
</includes>
|
||||||
|
</fileSet>
|
||||||
|
</fileSets>
|
||||||
|
</assembly>
|
||||||
@@ -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);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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
|
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../dbchangelog-3.8.xsd" >
|
||||||
|
<include file="modMail-tables/tables.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="modMail-seedData/data.xml" relativeToChangelogFile="true"/>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,82 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<property name="modmailModule" value="(SELECT id FROM module WHERE name = 'modMail')"/>
|
||||||
|
<property name="modmailFeature" value="(SELECT id FROM feature WHERE key = 'modmail')"/>
|
||||||
|
<property name="today" value="(SELECT NOW())"/>
|
||||||
|
|
||||||
|
<changeSet author="Sheldan" id="modmail_modMail-commands">
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="anonReply"/>
|
||||||
|
<column name="module_id" valueComputed="${modmailModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${modmailFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="close"/>
|
||||||
|
<column name="module_id" valueComputed="${modmailModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${modmailFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="closeNoLog"/>
|
||||||
|
<column name="module_id" valueComputed="${modmailModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${modmailFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="closeSilently"/>
|
||||||
|
<column name="module_id" valueComputed="${modmailModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${modmailFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="contact"/>
|
||||||
|
<column name="module_id" valueComputed="${modmailModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${modmailFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="removeModMailRole"/>
|
||||||
|
<column name="module_id" valueComputed="${modmailModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${modmailFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="reply"/>
|
||||||
|
<column name="module_id" valueComputed="${modmailModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${modmailFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="setModMailCategory"/>
|
||||||
|
<column name="module_id" valueComputed="${modmailModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${modmailFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="setModMailRole"/>
|
||||||
|
<column name="module_id" valueComputed="${modmailModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${modmailFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="subscribe"/>
|
||||||
|
<column name="module_id" valueComputed="${modmailModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${modmailFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="command">
|
||||||
|
<column name="name" value="unSubscribe"/>
|
||||||
|
<column name="module_id" valueComputed="${modmailModule}"/>
|
||||||
|
<column name="feature_id" valueComputed="${modmailFeature}"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<include file="default_config.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="module.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="feature.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="default_feature_flag.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="default_posttarget.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="command.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="default_emote.xml" relativeToChangelogFile="true"/>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd">
|
||||||
|
<property name="today" value="(SELECT NOW())"/>
|
||||||
|
<changeSet author="Sheldan" id="modMailClosingText-insert">
|
||||||
|
<insert tableName="default_config">
|
||||||
|
<column name="name" value="modMailClosingText"/>
|
||||||
|
<column name="string_value" value="Thread has been closed."/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<property name="today" value="(SELECT NOW())"/>
|
||||||
|
<changeSet author="Sheldan" id="modmail_default_emote-insert">
|
||||||
|
<insert tableName="default_emote">
|
||||||
|
<column name="emote_key" value="readReaction"/>
|
||||||
|
<column name="name" value="👀"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<property name="modmailFeature" value="(SELECT id FROM feature WHERE key = 'modmail')"/>
|
||||||
|
<property name="today" value="(SELECT NOW())"/>
|
||||||
|
<changeSet author="Sheldan" id="modmaildefau_default_feature_flag-insertion">
|
||||||
|
<insert tableName="default_feature_flag">
|
||||||
|
<column name="enabled" value="false"/>
|
||||||
|
<column name="feature_id" valueComputed="${modmailFeature}" />
|
||||||
|
<column name="mode" value="log"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<changeSet author="Sheldan" id="modmail_default_posttarget-insertion">
|
||||||
|
<insert tableName="default_posttarget">
|
||||||
|
<column name="name" value="modmailLog"/>
|
||||||
|
</insert>
|
||||||
|
<insert tableName="default_posttarget">
|
||||||
|
<column name="name" value="modmailPing"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<property name="today" value="(SELECT NOW())"/>
|
||||||
|
<changeSet author="Sheldan" id="modmail_feature-insertion">
|
||||||
|
<insert tableName="feature">
|
||||||
|
<column name="key" value="modmail"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<property name="today" value="(SELECT NOW())"/>
|
||||||
|
<changeSet author="Sheldan" id="modMail-module-insertion">
|
||||||
|
<insert tableName="module">
|
||||||
|
<column name="name" value="modMail"/>
|
||||||
|
<column name="created" valueComputed="${today}"/>
|
||||||
|
</insert>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<changeSet author="Sheldan" id="modmail_messages-table">
|
||||||
|
<createTable tableName="modmail_messages">
|
||||||
|
<column name="message_id" type="BIGINT">
|
||||||
|
<constraints nullable="false" primaryKey="true" primaryKeyName="modmail_messages_pkey"/>
|
||||||
|
</column>
|
||||||
|
<column name="anonymous" type="BOOLEAN"/>
|
||||||
|
<column name="created" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="dm_channel" type="BOOLEAN"/>
|
||||||
|
<column name="modmail_message_author" type="BIGINT">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
<column name="thread_reference" type="BIGINT">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</createTable>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Sheldan" id="modmail_messages-fk_modmail_message_thread">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="thread_reference" baseTableName="modmail_messages" constraintName="fk_modmail_message_thread" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="modmail_thread" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Sheldan" id="modmail_messages-fk_modmail_message_author">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="modmail_message_author" baseTableName="modmail_messages" constraintName="fk_modmail_message_author" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="user_in_server_id" referencedTableName="user_in_server" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<changeSet author="Sheldan" id="modmail_roles-table">
|
||||||
|
<createTable tableName="modmail_roles">
|
||||||
|
<column autoIncrement="true" name="mod_mail_role_id" type="BIGINT">
|
||||||
|
<constraints nullable="false" primaryKey="true" primaryKeyName="modmail_roles_pkey"/>
|
||||||
|
</column>
|
||||||
|
<column name="created" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="updated" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="modmail_role" type="BIGINT">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
<column name="modmail_role_server" type="BIGINT">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</createTable>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Sheldan" id="modmail_roles-fk_modmail_role_role">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="modmail_role" baseTableName="modmail_roles" constraintName="fk_modmail_role_role" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="role" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Sheldan" id="modmail_roles-fk_modmail_role_server">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="modmail_role_server" baseTableName="modmail_roles" constraintName="fk_modmail_role_server" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="server" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<changeSet author="Sheldan" id="modmail_subscriber-table">
|
||||||
|
<createTable tableName="modmail_subscriber">
|
||||||
|
<column autoIncrement="true" name="subscriber_id" type="BIGINT">
|
||||||
|
<constraints nullable="false" primaryKey="true" primaryKeyName="modmail_subscriber_pkey"/>
|
||||||
|
</column>
|
||||||
|
<column name="created" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="modmail_thread_subscriber" type="BIGINT">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
<column name="mod_mail_thread" type="BIGINT">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</createTable>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Sheldan" id="modmail_subscriber-fk_modmail_thread_subscriber_user">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="modmail_thread_subscriber" baseTableName="modmail_subscriber" constraintName="fk_modmail_thread_subscriber_user" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="user_in_server_id" referencedTableName="user_in_server" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet author="Sheldan" id="modmail_subscriber-fk_modmail_thread_thread">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="mod_mail_thread" baseTableName="modmail_subscriber" constraintName="fk_modmail_thread_thread" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="modmail_thread" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<changeSet author="Sheldan" id="modmail_thread-table">
|
||||||
|
<createTable tableName="modmail_thread">
|
||||||
|
<column autoIncrement="true" name="id" type="BIGINT">
|
||||||
|
<constraints nullable="false" primaryKey="true" primaryKeyName="modmail_thread_pkey"/>
|
||||||
|
</column>
|
||||||
|
<column name="closed" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="created" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="state" type="VARCHAR(255)"/>
|
||||||
|
<column name="updated" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="modmail_thread_channel" type="BIGINT">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
<column name="modmail_thread_server" type="BIGINT">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
<column name="modmail_user" type="BIGINT">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</createTable>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Sheldan" id="modmail_thread-fk_modmail_thread_channel">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="modmail_thread_channel" baseTableName="modmail_thread" constraintName="fk_modmail_thread_channel" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="channel" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Sheldan" id="modmail_thread-fk_modmail_thread_user">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="modmail_user" baseTableName="modmail_thread" constraintName="fk_modmail_thread_user" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="user_in_server_id" referencedTableName="user_in_server" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Sheldan" id="modmail_thread-fk_modmail_thread_server">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="modmail_thread_server" baseTableName="modmail_thread" constraintName="fk_modmail_thread_server" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="server" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext ../../dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro ../../dbchangelog-3.8.xsd" >
|
||||||
|
<include file="modmail_threads.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="modmail_messages.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="modmail_subscriber.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="modmail_roles.xml" relativeToChangelogFile="true"/>
|
||||||
|
</databaseChangeLog>
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
||||||
|
xmlns:pro="http://www.liquibase.org/xml/ns/pro"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext dbchangelog-3.8.xsd
|
||||||
|
http://www.liquibase.org/xml/ns/pro dbchangelog-3.8.xsd" >
|
||||||
|
<include file="1.0-modmail/collection.xml" relativeToChangelogFile="true"/>
|
||||||
|
</databaseChangeLog>
|
||||||
@@ -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})"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
<#assign categoryId>${(error.templateModel['categoryId'])!"0"}</#assign><#include "modmail_category_not_setup_text">
|
|
||||||
@@ -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">"
|
|
||||||
}
|
|
||||||
@@ -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">"
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user