mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-15 20:16:34 +00:00
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:
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
package dev.sheldan.abstracto.experience.validator;
|
||||
|
||||
import dev.sheldan.abstracto.core.service.FeatureValidator;
|
||||
|
||||
public interface ExperienceFeatureValidator extends FeatureValidator {
|
||||
}
|
||||
@@ -44,7 +44,7 @@ public class MyWarnings extends AbstractConditionableCommand {
|
||||
model.setCurrentWarnCount(currentWarnCount);
|
||||
Long totalWarnCount = warnManagementService.getTotalWarnsForUser(commandContext.getUserInitiatedContext().getAUserInAServer());
|
||||
model.setTotalWarnCount(totalWarnCount);
|
||||
channelService.sendTemplateInChannel("myWarnings_response", model, commandContext.getChannel());
|
||||
channelService.sendEmbedTemplateInChannel("myWarnings_response", model, commandContext.getChannel());
|
||||
return CommandResult.fromSuccess();
|
||||
}
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ public class UserNotes extends AbstractConditionableCommand {
|
||||
userNotes = userNoteManagementService.loadNotesForServer(commandContext.getUserInitiatedContext().getServer());
|
||||
}
|
||||
model.setUserNotes(userNotesConverter.fromNotes(userNotes));
|
||||
channelService.sendTemplateInChannel("user_notes_response", model, commandContext.getChannel());
|
||||
channelService.sendEmbedTemplateInChannel("user_notes_response", model, commandContext.getChannel());
|
||||
return CommandResult.fromSuccess();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
package dev.sheldan.abstracto.moderation.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 WarnDecayFeatureValidatorBean implements WarnDecayFeatureValidator {
|
||||
|
||||
@Autowired
|
||||
private FeatureValidatorService featureValidatorService;
|
||||
|
||||
@Override
|
||||
public void featureIsSetup(FeatureConfig featureConfig, AServer server, FeatureValidationResult validationResult) {
|
||||
featureValidatorService.checkSystemConfig("decayDays", server, validationResult);
|
||||
}
|
||||
}
|
||||
@@ -3,9 +3,7 @@ package dev.sheldan.abstracto.moderation.config.features;
|
||||
import dev.sheldan.abstracto.core.config.FeatureConfig;
|
||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||
import dev.sheldan.abstracto.core.config.PostTargetEnum;
|
||||
import dev.sheldan.abstracto.core.service.FeatureValidator;
|
||||
import dev.sheldan.abstracto.moderation.config.posttargets.WarnDecayPostTarget;
|
||||
import dev.sheldan.abstracto.moderation.validator.WarnDecayFeatureValidator;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@@ -18,14 +16,17 @@ public class WarningDecayFeature implements FeatureConfig {
|
||||
@Autowired
|
||||
private WarningFeature warningFeature;
|
||||
|
||||
@Autowired
|
||||
private WarnDecayFeatureValidator warnDecayFeatureValidator;
|
||||
|
||||
@Override
|
||||
public FeatureEnum getFeature() {
|
||||
return ModerationFeatures.AUTOMATIC_WARN_DECAY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getRequiredSystemConfigKeys() {
|
||||
return Arrays.asList("decayDays");
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FeatureConfig> getRequiredFeatures() {
|
||||
return Arrays.asList(warningFeature);
|
||||
@@ -36,8 +37,4 @@ public class WarningDecayFeature implements FeatureConfig {
|
||||
return Arrays.asList(WarnDecayPostTarget.DECAY_LOG);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FeatureValidator> getAdditionalFeatureValidators() {
|
||||
return Arrays.asList(warnDecayFeatureValidator);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public enum LoggingPostTarget implements PostTargetEnum {
|
||||
LEAVE_LOG("muteLog"), JOIN_LOG("joinLog"), DELETE_LOG("deleteLog"), EDIT_LOG("editLog");
|
||||
LEAVE_LOG("leaveLog"), JOIN_LOG("joinLog"), DELETE_LOG("deleteLog"), EDIT_LOG("editLog");
|
||||
|
||||
private String key;
|
||||
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
package dev.sheldan.abstracto.moderation.validator;
|
||||
|
||||
import dev.sheldan.abstracto.core.service.FeatureValidator;
|
||||
|
||||
public interface WarnDecayFeatureValidator extends FeatureValidator {
|
||||
}
|
||||
@@ -227,7 +227,7 @@ public class ModMailThreadServiceBean implements ModMailThreadService {
|
||||
.build();
|
||||
menu.display(initialMessage.getChannel());
|
||||
} else {
|
||||
channelService.sendTemplateInChannel("modmail_no_server_available", new Object(), initialMessage.getChannel());
|
||||
channelService.sendEmbedTemplateInChannel("modmail_no_server_available", new Object(), initialMessage.getChannel());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -243,7 +243,7 @@ public class ModMailThreadServiceBean implements ModMailThreadService {
|
||||
.latestModMailThread(latestThread)
|
||||
.pastModMailThreadCount((long)oldThreads.size())
|
||||
.build();
|
||||
List<CompletableFuture<Message>> messages = channelService.sendTemplateInChannel("modmail_thread_header", header, channel);
|
||||
List<CompletableFuture<Message>> messages = channelService.sendEmbedTemplateInChannel("modmail_thread_header", header, channel);
|
||||
CompletableFuture.allOf(messages.toArray(new CompletableFuture[0])).whenComplete((aVoid, throwable)-> {
|
||||
if(throwable != null) {
|
||||
log.error("Failed to send mod mail header for for user {}.", aUserInAServer.getAUserInAServer().getUserReference().getId(), throwable);
|
||||
@@ -351,7 +351,7 @@ public class ModMailThreadServiceBean implements ModMailThreadService {
|
||||
.user(fullUser)
|
||||
.throwable(throwable)
|
||||
.build();
|
||||
channelService.sendTemplateInChannel(template, modMailExceptionModel, channel);
|
||||
channelService.sendEmbedTemplateInChannel(template, modMailExceptionModel, channel);
|
||||
} catch (Exception e) {
|
||||
log.error("Failed to notify about mod mail exception.", e);
|
||||
}
|
||||
@@ -443,7 +443,7 @@ public class ModMailThreadServiceBean implements ModMailThreadService {
|
||||
HashMap<String, String> closingMessage = new HashMap<>();
|
||||
String defaultValue = templateService.renderSimpleTemplate("modmail_closing_user_message_description");
|
||||
closingMessage.put("closingMessage", configService.getStringValue(MODMAIL_CLOSING_MESSAGE_TEXT, modMailThread.getServer().getId(), defaultValue));
|
||||
messageFutures.addAll(channelService.sendTemplateInChannel("modmail_closing_user_message", closingMessage , privateChannel));
|
||||
messageFutures.addAll(channelService.sendEmbedTemplateInChannel("modmail_closing_user_message", closingMessage , privateChannel));
|
||||
} else {
|
||||
log.trace("*Not* notifying user {}", user.getIdLong());
|
||||
messageFutures.add(CompletableFuture.completedFuture(null));
|
||||
|
||||
@@ -25,7 +25,7 @@ public class ModMailFeature implements FeatureConfig {
|
||||
|
||||
@Override
|
||||
public List<PostTargetEnum> getRequiredPostTargets() {
|
||||
return Arrays.asList(ModMailPostTargets.MOD_MAIL_PING);
|
||||
return Arrays.asList(ModMailPostTargets.MOD_MAIL_PING, ModMailPostTargets.MOD_MAIL_LOG);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -42,4 +42,9 @@ public class ModMailFeature implements FeatureConfig {
|
||||
public List<FeatureMode> getAvailableModes() {
|
||||
return Arrays.asList(ModMailMode.LOGGING, ModMailMode.NO_LOG);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getRequiredSystemConfigKeys() {
|
||||
return Arrays.asList("modMailClosingText");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user