added setup command which includes an interactive process in order to setup features

the current supported features are post targets and system config
the wizard includes a summary step where the user can confirm the changes
removed some unnecessary validators, which were basically just validating the system config from some features
fixed post target name
This commit is contained in:
Sheldan
2020-05-22 17:25:44 +02:00
parent e2f71ef7a3
commit 992357b2cb
81 changed files with 1074 additions and 92 deletions

View File

@@ -9,7 +9,6 @@ import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.command.execution.ContextConverter;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.models.FullRole;
import dev.sheldan.abstracto.core.models.database.ARole;
import dev.sheldan.abstracto.core.service.ChannelService;
import dev.sheldan.abstracto.core.service.RoleService;
import dev.sheldan.abstracto.experience.config.features.ExperienceFeature;
@@ -46,7 +45,7 @@ public class ListDisabledExperienceRoles extends AbstractConditionableCommand {
.build();
disabledExperienceRolesModel.getRoles().add(role);
});
channelService.sendTemplateInChannel("list_disabled_experience_roles", disabledExperienceRolesModel, commandContext.getChannel());
channelService.sendEmbedTemplateInChannel("list_disabled_experience_roles", disabledExperienceRolesModel, commandContext.getChannel());
return CommandResult.fromSuccess();
}

View File

@@ -1,22 +0,0 @@
package dev.sheldan.abstracto.experience.validator;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.models.FeatureValidationResult;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.service.FeatureValidatorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class ExperienceFeatureValidatorBean implements ExperienceFeatureValidator {
@Autowired
private FeatureValidatorService featureValidatorService;
@Override
public void featureIsSetup(FeatureConfig featureConfig, AServer server, FeatureValidationResult validationResult) {
featureValidatorService.checkSystemConfig("expMultiplier", server, validationResult);
featureValidatorService.checkSystemConfig("minExp", server, validationResult);
featureValidatorService.checkSystemConfig("maxExp", server, validationResult);
}
}

View File

@@ -2,9 +2,6 @@ package dev.sheldan.abstracto.experience.config.features;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.service.FeatureValidator;
import dev.sheldan.abstracto.experience.validator.ExperienceFeatureValidator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Arrays;
@@ -13,16 +10,13 @@ import java.util.List;
@Component
public class ExperienceFeatureConfig implements FeatureConfig {
@Autowired
private ExperienceFeatureValidator experienceFeatureValidator;
@Override
public FeatureEnum getFeature() {
return ExperienceFeature.EXPERIENCE;
}
@Override
public List<FeatureValidator> getAdditionalFeatureValidators() {
return Arrays.asList(experienceFeatureValidator);
public List<String> getRequiredSystemConfigKeys() {
return Arrays.asList("expMultiplier", "minExp", "maxExp");
}
}

View File

@@ -1,6 +0,0 @@
package dev.sheldan.abstracto.experience.validator;
import dev.sheldan.abstracto.core.service.FeatureValidator;
public interface ExperienceFeatureValidator extends FeatureValidator {
}