added current values to post post target

added support for custom setup steps for each feature
added mod mail category setup step
This commit is contained in:
Sheldan
2020-05-25 23:11:44 +02:00
parent 3714fd2582
commit 213f42ffbd
36 changed files with 342 additions and 24 deletions

View File

@@ -4,7 +4,9 @@ import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureMode;
import dev.sheldan.abstracto.core.config.PostTargetEnum;
import dev.sheldan.abstracto.core.interactive.SetupStep;
import dev.sheldan.abstracto.core.service.FeatureValidator;
import dev.sheldan.abstracto.modmail.setup.ModMailCategorySetup;
import dev.sheldan.abstracto.modmail.validator.ModMailFeatureValidator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -18,6 +20,9 @@ public class ModMailFeature implements FeatureConfig {
@Autowired
private ModMailFeatureValidator modMailFeatureValidator;
@Autowired
private ModMailCategorySetup modMailCategorySetup;
@Override
public FeatureEnum getFeature() {
return ModMailFeatures.MOD_MAIL;
@@ -47,4 +52,9 @@ public class ModMailFeature implements FeatureConfig {
public List<String> getRequiredSystemConfigKeys() {
return Arrays.asList("modMailClosingText");
}
@Override
public List<SetupStep> getCustomSetupSteps() {
return Arrays.asList(modMailCategorySetup);
}
}

View File

@@ -0,0 +1,14 @@
package dev.sheldan.abstracto.modmail.models.template;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import net.dv8tion.jda.api.entities.Category;
@Getter
@Setter
@Builder
public class ModMailCategoryActionModel {
private Category category;
private Long categoryId;
}

View File

@@ -0,0 +1,13 @@
package dev.sheldan.abstracto.modmail.models.template;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import net.dv8tion.jda.api.entities.Category;
@Getter
@Setter
@Builder
public class SetupModMailCategoryMessageModel {
private Category category;
}

View File

@@ -0,0 +1,6 @@
package dev.sheldan.abstracto.modmail.setup;
import dev.sheldan.abstracto.core.interactive.SetupStep;
public interface ModMailCategorySetup extends SetupStep {
}

View File

@@ -1,6 +1,9 @@
package dev.sheldan.abstracto.modmail.validator;
import dev.sheldan.abstracto.core.models.FeatureValidationResult;
import dev.sheldan.abstracto.core.service.FeatureValidator;
import net.dv8tion.jda.api.entities.Guild;
public interface ModMailFeatureValidator extends FeatureValidator {
void validateModMailCategory(FeatureValidationResult validationResult, Guild guild, Long modMailCategory);
}