[AB-197] splitting utility maven module into separate maven modules

aligning some package names
removing some unnecessary computed values from liquibase
This commit is contained in:
Sheldan
2021-03-12 17:29:49 +01:00
parent e2da800d84
commit 2ed456c164
835 changed files with 12790 additions and 3310 deletions

View File

@@ -17,9 +17,9 @@ import dev.sheldan.abstracto.core.command.service.CommandService;
import dev.sheldan.abstracto.core.command.service.ExceptionService;
import dev.sheldan.abstracto.core.command.service.PostCommandExecution;
import dev.sheldan.abstracto.core.exception.AbstractoRunTimeException;
import dev.sheldan.abstracto.core.metrics.service.CounterMetric;
import dev.sheldan.abstracto.core.metrics.service.MetricService;
import dev.sheldan.abstracto.core.metrics.service.MetricTag;
import dev.sheldan.abstracto.core.metric.service.CounterMetric;
import dev.sheldan.abstracto.core.metric.service.MetricService;
import dev.sheldan.abstracto.core.metric.service.MetricTag;
import dev.sheldan.abstracto.core.models.context.UserInitiatedServerContext;
import dev.sheldan.abstracto.core.service.EmoteService;
import dev.sheldan.abstracto.core.service.RoleService;

View File

@@ -3,11 +3,11 @@ package dev.sheldan.abstracto.core.command.service;
import dev.sheldan.abstracto.core.command.Command;
import dev.sheldan.abstracto.core.command.CommandReceivedHandler;
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.ModuleInterface;
import dev.sheldan.abstracto.core.command.config.ModuleDefinition;
import dev.sheldan.abstracto.core.command.exception.CommandNotFoundException;
import dev.sheldan.abstracto.core.command.exception.InsufficientParametersException;
import dev.sheldan.abstracto.core.command.execution.UnParsedCommandParameter;
import dev.sheldan.abstracto.core.metrics.service.MetricService;
import dev.sheldan.abstracto.core.metric.service.MetricService;
import dev.sheldan.abstracto.core.service.ConfigService;
import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
import net.dv8tion.jda.api.entities.Message;
@@ -88,11 +88,11 @@ public class CommandManager implements CommandRegistry {
}
@Override
public List<Command> getAllCommandsFromModule(ModuleInterface moduleInterface) {
public List<Command> getAllCommandsFromModule(ModuleDefinition moduleDefinition) {
List<Command> commandsFromModule = new ArrayList<>();
this.getAllCommands().forEach(command -> {
CommandConfiguration configuration = command.getConfiguration();
if(configuration != null && configuration.getModule().equals(moduleInterface.getInfo().getName())){
if(configuration != null && configuration.getModule().equals(moduleDefinition.getInfo().getName())){
commandsFromModule.add(command);
}
});

View File

@@ -17,7 +17,7 @@ import dev.sheldan.abstracto.core.command.service.management.CommandInServerMana
import dev.sheldan.abstracto.core.command.service.management.CommandManagementService;
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
import dev.sheldan.abstracto.core.command.service.management.ModuleManagementService;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.models.database.AFeature;
import dev.sheldan.abstracto.core.models.database.ARole;
import dev.sheldan.abstracto.core.models.database.AServer;
@@ -57,13 +57,13 @@ public class CommandServiceBean implements CommandService {
private CommandReceivedHandler commandReceivedHandler;
@Override
public ACommand createCommand(String name, String moduleName, FeatureEnum featureEnum) {
public ACommand createCommand(String name, String moduleName, FeatureDefinition featureDefinition) {
AModule module = moduleManagementService.getOrCreate(moduleName);
if(featureEnum == null) {
if(featureDefinition == null) {
log.warn("Command {} in module {} has no feature.", name, moduleName);
return null;
}
AFeature feature = featureManagementService.getFeature(featureEnum.getKey());
AFeature feature = featureManagementService.getFeature(featureDefinition.getKey());
return commandManagementService.createCommand(name, module, feature);
}
@@ -83,8 +83,8 @@ public class CommandServiceBean implements CommandService {
}
@Override
public void allowFeatureForRole(FeatureEnum featureEnum, ARole role) {
AFeature feature = featureManagementService.getFeature(featureEnum.getKey());
public void allowFeatureForRole(FeatureDefinition featureDefinition, ARole role) {
AFeature feature = featureManagementService.getFeature(featureDefinition.getKey());
feature.getCommands().forEach(command -> this.allowCommandForRole(command, role));
log.info("Allowing feature {} for role {} in server {}.", feature.getKey(), role.getId(), role.getServer().getId());
}
@@ -151,8 +151,8 @@ public class CommandServiceBean implements CommandService {
}
@Override
public void disAllowFeatureForRole(FeatureEnum featureEnum, ARole role) {
AFeature feature = featureManagementService.getFeature(featureEnum.getKey());
public void disAllowFeatureForRole(FeatureDefinition featureDefinition, ARole role) {
AFeature feature = featureManagementService.getFeature(featureDefinition.getKey());
feature.getCommands().forEach(command -> this.disAllowCommandForRole(command, role));
log.info("Disallowing feature {} for role {} in server {}.", feature.getKey(), role.getId(), role.getServer().getId());
}

View File

@@ -1,7 +1,7 @@
package dev.sheldan.abstracto.core.command.service;
import dev.sheldan.abstracto.core.command.Command;
import dev.sheldan.abstracto.core.command.config.ModuleInterface;
import dev.sheldan.abstracto.core.command.config.ModuleDefinition;
import dev.sheldan.abstracto.core.command.config.SingleLevelPackedModule;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -13,43 +13,43 @@ import java.util.stream.Collectors;
public class ModuleManager implements ModuleRegistry {
@Autowired
private List<ModuleInterface> moduleInterfaces;
private List<ModuleDefinition> moduleDefinitions;
@Autowired
private CommandRegistry commandRegistry;
@Override
public List<ModuleInterface> getModuleInterfaces() {
return moduleInterfaces;
public List<ModuleDefinition> getModuleInterfaces() {
return moduleDefinitions;
}
@Override
public SingleLevelPackedModule getPackedModule(ModuleInterface moduleInterface) {
List<Command> commands = commandRegistry.getAllCommandsFromModule(moduleInterface);
public SingleLevelPackedModule getPackedModule(ModuleDefinition moduleDefinition) {
List<Command> commands = commandRegistry.getAllCommandsFromModule(moduleDefinition);
return SingleLevelPackedModule
.builder()
.commands(commands)
.moduleInterface(moduleInterface)
.moduleDefinition(moduleDefinition)
.build();
}
@Override
public boolean moduleExists(String name) {
return moduleInterfaces.stream().anyMatch(moduleInterface -> moduleInterface.getInfo().getName().equalsIgnoreCase(name));
return moduleDefinitions.stream().anyMatch(moduleInterface -> moduleInterface.getInfo().getName().equalsIgnoreCase(name));
}
@Override
public ModuleInterface getModuleByName(String name) {
return moduleInterfaces.stream().filter(moduleInterface -> moduleInterface.getInfo().getName().equalsIgnoreCase(name)).findFirst().orElse(null);
public ModuleDefinition getModuleByName(String name) {
return moduleDefinitions.stream().filter(moduleInterface -> moduleInterface.getInfo().getName().equalsIgnoreCase(name)).findFirst().orElse(null);
}
@Override
public List<ModuleInterface> getSubModules(ModuleInterface parentModuleInterface) {
return moduleInterfaces.stream().filter(moduleInterface -> moduleInterface.getParentModule() != null && moduleInterface.getParentModule().equals(parentModuleInterface.getInfo().getName())).collect(Collectors.toList());
public List<ModuleDefinition> getSubModules(ModuleDefinition parentModuleDefinition) {
return moduleDefinitions.stream().filter(moduleInterface -> moduleInterface.getParentModule() != null && moduleInterface.getParentModule().equals(parentModuleDefinition.getInfo().getName())).collect(Collectors.toList());
}
@Override
public ModuleInterface getDefaultModule() {
public ModuleDefinition getDefaultModule() {
return getModuleByName("default");
}

View File

@@ -4,10 +4,10 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.service.ChannelGroupService;
import net.dv8tion.jda.api.entities.TextChannel;
import org.springframework.beans.factory.annotation.Autowired;
@@ -40,7 +40,7 @@ public class AddToChannelGroup extends AbstractConditionableCommand {
List<String> aliases = Arrays.asList("addTChGrp", "chGrpCh+");
return CommandConfiguration.builder()
.name("addToChannelGroup")
.module(ChannelsModuleInterface.CHANNELS)
.module(ChannelsModuleDefinition.CHANNELS)
.aliases(aliases)
.parameters(parameters)
.supportsEmbedException(true)
@@ -51,7 +51,7 @@ public class AddToChannelGroup extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -1,11 +1,11 @@
package dev.sheldan.abstracto.core.commands.channels;
import dev.sheldan.abstracto.core.command.config.ModuleInfo;
import dev.sheldan.abstracto.core.command.config.ModuleInterface;
import dev.sheldan.abstracto.core.command.config.ModuleDefinition;
import org.springframework.stereotype.Component;
@Component
public class ChannelsModuleInterface implements ModuleInterface {
public class ChannelsModuleDefinition implements ModuleDefinition {
public static final String CHANNELS = "channels";

View File

@@ -4,10 +4,10 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.models.database.ChannelGroupType;
import dev.sheldan.abstracto.core.service.ChannelGroupService;
import dev.sheldan.abstracto.core.service.management.ChannelGroupTypeManagementService;
@@ -45,7 +45,7 @@ public class CreateChannelGroup extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("createChannelGroup")
.module(ChannelsModuleInterface.CHANNELS)
.module(ChannelsModuleDefinition.CHANNELS)
.parameters(parameters)
.aliases(aliases)
.supportsEmbedException(true)
@@ -56,7 +56,7 @@ public class CreateChannelGroup extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -4,10 +4,10 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.service.ChannelGroupService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -36,7 +36,7 @@ public class DeleteChannelGroup extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("deleteChannelGroup")
.module(ChannelsModuleInterface.CHANNELS)
.module(ChannelsModuleDefinition.CHANNELS)
.parameters(parameters)
.aliases(aliases)
.supportsEmbedException(true)
@@ -47,7 +47,7 @@ public class DeleteChannelGroup extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -5,10 +5,10 @@ import dev.sheldan.abstracto.core.command.condition.CommandCondition;
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.service.ChannelGroupService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -38,7 +38,7 @@ public class DisableCommand extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).hasExample(true).build();
return CommandConfiguration.builder()
.name("disableCommand")
.module(ChannelsModuleInterface.CHANNELS)
.module(ChannelsModuleDefinition.CHANNELS)
.parameters(parameters)
.supportsEmbedException(true)
.help(helpInfo)
@@ -48,8 +48,8 @@ public class DisableCommand extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
@Override

View File

@@ -5,10 +5,10 @@ import dev.sheldan.abstracto.core.command.condition.CommandCondition;
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.service.ChannelGroupService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -38,7 +38,7 @@ public class EnableCommand extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).hasExample(true).build();
return CommandConfiguration.builder()
.name("enableCommand")
.module(ChannelsModuleInterface.CHANNELS)
.module(ChannelsModuleDefinition.CHANNELS)
.parameters(parameters)
.supportsEmbedException(true)
.templated(true)
@@ -48,8 +48,8 @@ public class EnableCommand extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
@Override

View File

@@ -3,11 +3,11 @@ package dev.sheldan.abstracto.core.commands.channels;
import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand;
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
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.config.FeatureDefinition;
import dev.sheldan.abstracto.core.models.database.AChannelGroup;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.models.template.commands.ChannelGroupChannelModel;
@@ -83,7 +83,7 @@ public class ListChannelGroups extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("listChannelGroups")
.module(ChannelsModuleInterface.CHANNELS)
.module(ChannelsModuleDefinition.CHANNELS)
.aliases(aliases)
.templated(true)
.help(helpInfo)
@@ -93,7 +93,7 @@ public class ListChannelGroups extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -4,11 +4,11 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
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.config.FeatureDefinition;
import dev.sheldan.abstracto.core.exception.PostTargetNotValidException;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.models.database.PostTarget;
@@ -93,7 +93,7 @@ public class PostTargetCommand extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).hasExample(true).build();
return CommandConfiguration.builder()
.name("posttarget")
.module(ChannelsModuleInterface.CHANNELS)
.module(ChannelsModuleDefinition.CHANNELS)
.parameters(parameters)
.async(true)
.supportsEmbedException(true)
@@ -104,7 +104,7 @@ public class PostTargetCommand extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -4,10 +4,10 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.models.database.AChannel;
import dev.sheldan.abstracto.core.service.ChannelGroupService;
import dev.sheldan.abstracto.core.service.management.ChannelManagementService;
@@ -44,7 +44,7 @@ public class RemoveFromChannelGroup extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).hasExample(true).build();
return CommandConfiguration.builder()
.name("removeFromChannelGroup")
.module(ChannelsModuleInterface.CHANNELS)
.module(ChannelsModuleDefinition.CHANNELS)
.aliases(aliases)
.parameters(parameters)
.templated(true)
@@ -55,7 +55,7 @@ public class RemoveFromChannelGroup extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -4,10 +4,10 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.service.CacheServiceBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -33,7 +33,7 @@ public class ClearCache extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("clearCache")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.parameters(parameters)
.supportsEmbedException(true)
.help(helpInfo)
@@ -43,7 +43,7 @@ public class ClearCache extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -1,11 +1,11 @@
package dev.sheldan.abstracto.core.commands.config;
import dev.sheldan.abstracto.core.command.config.ModuleInfo;
import dev.sheldan.abstracto.core.command.config.ModuleInterface;
import dev.sheldan.abstracto.core.command.config.ModuleDefinition;
import org.springframework.stereotype.Component;
@Component
public class ConfigModuleInterface implements ModuleInterface {
public class ConfigModuleDefinition implements ModuleDefinition {
public static final String CONFIG = "config";

View File

@@ -4,11 +4,11 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.exception.ConfigurationKeyNotFoundException;
import dev.sheldan.abstracto.core.service.ConfigService;
import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
@@ -56,7 +56,7 @@ public class ResetConfig extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).hasExample(true).build();
return CommandConfiguration.builder()
.name("resetConfig")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.parameters(parameters)
.templated(true)
.async(true)
@@ -67,8 +67,8 @@ public class ResetConfig extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -4,10 +4,10 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.service.ServerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -35,7 +35,7 @@ public class SetAdminMode extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).hasExample(true).build();
return CommandConfiguration.builder()
.name("setAdminMode")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.parameters(parameters)
.templated(true)
.supportsEmbedException(true)
@@ -45,7 +45,7 @@ public class SetAdminMode extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -4,10 +4,10 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.service.ConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -38,7 +38,7 @@ public class SetConfig extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).hasExample(true).build();
return CommandConfiguration.builder()
.name("setConfig")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.parameters(parameters)
.templated(true)
.supportsEmbedException(true)
@@ -48,7 +48,7 @@ public class SetConfig extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -5,11 +5,11 @@ import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.ParameterValidator;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.config.validator.MaxStringLengthValidator;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.service.ConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -38,7 +38,7 @@ public class SetPrefix extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("setPrefix")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.parameters(parameters)
.supportsEmbedException(true)
.help(helpInfo)
@@ -48,7 +48,7 @@ public class SetPrefix extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -4,12 +4,12 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.exception.FeatureNotFoundException;
import dev.sheldan.abstracto.core.interactive.InteractiveService;
import dev.sheldan.abstracto.core.models.AServerChannelUserId;
@@ -61,7 +61,7 @@ public class SetupFeature extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("setupFeature")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.parameters(parameters)
.templated(true)
.async(true)
@@ -72,7 +72,7 @@ public class SetupFeature extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -4,7 +4,7 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.command.models.database.ACommand;
@@ -12,8 +12,8 @@ import dev.sheldan.abstracto.core.command.service.CommandService;
import dev.sheldan.abstracto.core.command.service.CommandServiceBean;
import dev.sheldan.abstracto.core.command.service.management.CommandManagementService;
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleDefinition;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.models.database.AFeature;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.service.management.RoleManagementService;
@@ -72,7 +72,7 @@ public class Allow extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("allow")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.parameters(parameters)
.templated(true)
.help(helpInfo)
@@ -81,7 +81,7 @@ public class Allow extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -4,7 +4,7 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.command.models.database.ACommand;
@@ -12,8 +12,8 @@ import dev.sheldan.abstracto.core.command.service.CommandService;
import dev.sheldan.abstracto.core.command.service.CommandServiceBean;
import dev.sheldan.abstracto.core.command.service.management.CommandManagementService;
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleDefinition;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.models.database.ARole;
import dev.sheldan.abstracto.core.service.FeatureConfigService;
import dev.sheldan.abstracto.core.service.management.RoleManagementService;
@@ -51,8 +51,8 @@ public class AllowRole extends AbstractConditionableCommand {
ARole fakeRole = (ARole) commandContext.getParameters().getParameters().get(1);
ARole actualRole = roleManagementService.findRole(fakeRole.getId());
if(featureManagementService.featureExists(name)) {
FeatureEnum featureEnum = featureFlagService.getFeatureEnum(name);
commandService.allowFeatureForRole(featureEnum, actualRole);
FeatureDefinition featureDefinition = featureFlagService.getFeatureEnum(name);
commandService.allowFeatureForRole(featureDefinition, actualRole);
} else if(commandManagementService.doesCommandExist(name)) {
ACommand command = commandManagementService.findCommandByName(name);
commandService.allowCommandForRole(command, actualRole);
@@ -70,7 +70,7 @@ public class AllowRole extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).hasExample(true).build();
return CommandConfiguration.builder()
.name("allowRole")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.parameters(parameters)
.templated(true)
.help(helpInfo)
@@ -79,7 +79,7 @@ public class AllowRole extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -4,7 +4,7 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.command.models.database.ACommand;
@@ -12,8 +12,8 @@ import dev.sheldan.abstracto.core.command.service.CommandService;
import dev.sheldan.abstracto.core.command.service.CommandServiceBean;
import dev.sheldan.abstracto.core.command.service.management.CommandManagementService;
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleDefinition;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.models.database.AFeature;
import dev.sheldan.abstracto.core.models.database.ARole;
import dev.sheldan.abstracto.core.service.management.RoleManagementService;
@@ -70,7 +70,7 @@ public class DisAllowRole extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).hasExample(true).build();
return CommandConfiguration.builder()
.name("disAllowRole")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.parameters(parameters)
.help(helpInfo)
.templated(true)
@@ -79,7 +79,7 @@ public class DisAllowRole extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -5,13 +5,13 @@ import dev.sheldan.abstracto.core.command.condition.CommandCondition;
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.command.execution.ContextConverter;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleDefinition;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.models.template.commands.EnableModel;
import dev.sheldan.abstracto.core.service.ChannelService;
@@ -73,7 +73,7 @@ public class DisableFeature extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).hasExample(true).build();
return CommandConfiguration.builder()
.name("disableFeature")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.parameters(parameters)
.async(true)
.help(helpInfo)
@@ -84,8 +84,8 @@ public class DisableFeature extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
@Override

View File

@@ -4,12 +4,12 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleDefinition;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.config.FeatureMode;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.service.FeatureConfigService;
@@ -44,10 +44,10 @@ public class DisableMode extends AbstractConditionableCommand {
public CommandResult execute(CommandContext commandContext) {
String featureName = (String) commandContext.getParameters().getParameters().get(0);
String modeName = (String) commandContext.getParameters().getParameters().get(1);
FeatureEnum featureEnum = featureConfigService.getFeatureEnum(featureName);
FeatureDefinition featureDefinition = featureConfigService.getFeatureEnum(featureName);
FeatureMode featureMode = featureModeService.getFeatureModeForKey(modeName);
AServer server = serverManagementService.loadServer(commandContext.getGuild());
featureModeService.disableFeatureModeForFeature(featureEnum, server, featureMode);
featureModeService.disableFeatureModeForFeature(featureDefinition, server, featureMode);
return CommandResult.fromSuccess();
}
@@ -59,7 +59,7 @@ public class DisableMode extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("disableMode")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.parameters(parameters)
.templated(true)
.supportsEmbedException(true)
@@ -69,7 +69,7 @@ public class DisableMode extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -5,13 +5,13 @@ import dev.sheldan.abstracto.core.command.condition.CommandCondition;
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.command.execution.ContextConverter;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleDefinition;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.models.FeatureValidationResult;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.models.template.commands.EnableModel;
@@ -83,7 +83,7 @@ public class EnableFeature extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).hasExample(true).build();
return CommandConfiguration.builder()
.name("enableFeature")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.parameters(parameters)
.async(true)
.supportsEmbedException(true)
@@ -94,8 +94,8 @@ public class EnableFeature extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
@Override

View File

@@ -4,12 +4,12 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleDefinition;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.config.FeatureMode;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.service.FeatureConfigService;
@@ -44,10 +44,10 @@ public class EnableMode extends AbstractConditionableCommand {
public CommandResult execute(CommandContext commandContext) {
String featureName = (String) commandContext.getParameters().getParameters().get(0);
String modeName = (String) commandContext.getParameters().getParameters().get(1);
FeatureEnum featureEnum = featureConfigService.getFeatureEnum(featureName);
FeatureDefinition featureDefinition = featureConfigService.getFeatureEnum(featureName);
FeatureMode featureMode = featureModeService.getFeatureModeForKey(modeName);
AServer server = serverManagementService.loadServer(commandContext.getGuild().getIdLong());
featureModeService.enableFeatureModeForFeature(featureEnum, server, featureMode);
featureModeService.enableFeatureModeForFeature(featureDefinition, server, featureMode);
return CommandResult.fromSuccess();
}
@@ -59,7 +59,7 @@ public class EnableMode extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("enableMode")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.parameters(parameters)
.templated(true)
.supportsEmbedException(true)
@@ -69,7 +69,7 @@ public class EnableMode extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -4,12 +4,12 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleDefinition;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.models.database.AFeature;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.models.template.commands.FeatureModeDisplay;
@@ -53,8 +53,8 @@ public class FeatureModes extends AbstractConditionableCommand {
featureModes = featureModeService.getEffectiveFeatureModes(server);
} else {
String featureName = (String) commandContext.getParameters().getParameters().get(0);
FeatureEnum featureEnum = featureConfigService.getFeatureEnum(featureName);
AFeature feature = featureManagementService.getFeature(featureEnum.getKey());
FeatureDefinition featureDefinition = featureConfigService.getFeatureEnum(featureName);
AFeature feature = featureManagementService.getFeature(featureDefinition.getKey());
featureModes = featureModeService.getEffectiveFeatureModes(server, feature);
}
FeatureModesModel model = FeatureModesModel.builder().featureModes(featureModes).build();
@@ -69,7 +69,7 @@ public class FeatureModes extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("featureModes")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.parameters(parameters)
.templated(true)
.supportsEmbedException(true)
@@ -80,7 +80,7 @@ public class FeatureModes extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -3,12 +3,12 @@ package dev.sheldan.abstracto.core.commands.config.features;
import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand;
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.command.execution.ContextConverter;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleDefinition;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.converter.FeatureFlagConverter;
import dev.sheldan.abstracto.core.models.database.AFeatureFlag;
import dev.sheldan.abstracto.core.models.database.AServer;
@@ -79,7 +79,7 @@ public class Features extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("features")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.templated(true)
.async(true)
.supportsEmbedException(true)
@@ -89,7 +89,7 @@ public class Features extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -4,7 +4,7 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.command.models.database.ACommand;
@@ -12,8 +12,8 @@ import dev.sheldan.abstracto.core.command.service.CommandService;
import dev.sheldan.abstracto.core.command.service.CommandServiceBean;
import dev.sheldan.abstracto.core.command.service.management.CommandManagementService;
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleDefinition;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.models.database.AFeature;
import dev.sheldan.abstracto.core.models.database.ARole;
import dev.sheldan.abstracto.core.service.management.RoleManagementService;
@@ -71,7 +71,7 @@ public class MakeAffected extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).hasExample(true).build();
return CommandConfiguration.builder()
.name("makeAffected")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.parameters(parameters)
.help(helpInfo)
.templated(true)
@@ -80,7 +80,7 @@ public class MakeAffected extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -4,7 +4,7 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.command.models.database.ACommand;
@@ -12,8 +12,8 @@ import dev.sheldan.abstracto.core.command.service.CommandService;
import dev.sheldan.abstracto.core.command.service.CommandServiceBean;
import dev.sheldan.abstracto.core.command.service.management.CommandManagementService;
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleDefinition;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.models.database.AFeature;
import dev.sheldan.abstracto.core.models.database.ARole;
import dev.sheldan.abstracto.core.service.management.RoleManagementService;
@@ -71,7 +71,7 @@ public class MakeImmune extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).hasExample(true).build();
return CommandConfiguration.builder()
.name("makeImmune")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.parameters(parameters)
.templated(true)
.help(helpInfo)
@@ -80,7 +80,7 @@ public class MakeImmune extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -4,7 +4,7 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.command.models.database.ACommand;
@@ -12,8 +12,8 @@ import dev.sheldan.abstracto.core.command.service.CommandService;
import dev.sheldan.abstracto.core.command.service.CommandServiceBean;
import dev.sheldan.abstracto.core.command.service.management.CommandManagementService;
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleDefinition;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.models.database.AFeature;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.service.management.RoleManagementService;
@@ -73,7 +73,7 @@ public class Restrict extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("restrict")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.parameters(parameters)
.templated(true)
.help(helpInfo)
@@ -82,7 +82,7 @@ public class Restrict extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -4,11 +4,11 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleDefinition;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.service.AllowedMentionService;
import net.dv8tion.jda.api.entities.Message;
import org.springframework.beans.factory.annotation.Autowired;
@@ -37,7 +37,7 @@ public class AllowMention extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("allowMention")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.parameters(parameters)
.templated(true)
.supportsEmbedException(true)
@@ -47,7 +47,7 @@ public class AllowMention extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -4,11 +4,11 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleDefinition;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.service.AllowedMentionService;
import net.dv8tion.jda.api.entities.Message;
import org.springframework.beans.factory.annotation.Autowired;
@@ -38,7 +38,7 @@ public class DisallowMention extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("disallowMention")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.parameters(parameters)
.templated(true)
.supportsEmbedException(true)
@@ -48,8 +48,8 @@ public class DisallowMention extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -4,12 +4,12 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.command.execution.ContextConverter;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleDefinition;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.exception.CustomTemplateNotFoundException;
import dev.sheldan.abstracto.core.models.template.commands.GetCustomTemplateModel;
import dev.sheldan.abstracto.core.service.ChannelService;
@@ -69,7 +69,7 @@ public class GetCustomTemplate extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("getCustomTemplate")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.supportsEmbedException(true)
.parameters(parameters)
.async(true)
@@ -80,7 +80,7 @@ public class GetCustomTemplate extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -4,12 +4,12 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.command.execution.ContextConverter;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleDefinition;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.exception.TemplateNotFoundException;
import dev.sheldan.abstracto.core.models.template.commands.GetTemplateModel;
import dev.sheldan.abstracto.core.service.ChannelService;
@@ -71,7 +71,7 @@ public class GetTemplate extends AbstractConditionableCommand {
List<Parameter> parameters = Arrays.asList(templateKeyParameter);
return CommandConfiguration.builder()
.name("getTemplate")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.supportsEmbedException(true)
.async(true)
.parameters(parameters)
@@ -82,7 +82,7 @@ public class GetTemplate extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -4,11 +4,11 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleDefinition;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.exception.CustomTemplateNotFoundException;
import dev.sheldan.abstracto.core.templating.model.database.CustomTemplate;
import dev.sheldan.abstracto.core.templating.service.TemplateService;
@@ -48,7 +48,7 @@ public class ResetTemplate extends AbstractConditionableCommand {
List<Parameter> parameters = Arrays.asList(templateKeyParameter);
return CommandConfiguration.builder()
.name("resetTemplate")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.supportsEmbedException(true)
.parameters(parameters)
.help(helpInfo)
@@ -58,7 +58,7 @@ public class ResetTemplate extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -4,12 +4,12 @@ import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.exception.AbstractoTemplatedException;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleDefinition;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.templating.service.TemplateService;
import dev.sheldan.abstracto.core.templating.service.management.CustomTemplateManagementService;
import dev.sheldan.abstracto.core.utils.FileService;
@@ -60,8 +60,8 @@ public class SetTemplate extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
@Override
@@ -72,7 +72,7 @@ public class SetTemplate extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("setTemplate")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.parameters(parameters)
.supportsEmbedException(true)
.help(helpInfo)

View File

@@ -2,7 +2,7 @@ package dev.sheldan.abstracto.core.commands.help;
import dev.sheldan.abstracto.core.command.Command;
import dev.sheldan.abstracto.core.command.config.*;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.command.execution.ContextConverter;
@@ -13,10 +13,10 @@ import dev.sheldan.abstracto.core.command.service.CommandService;
import dev.sheldan.abstracto.core.command.service.ModuleRegistry;
import dev.sheldan.abstracto.core.command.service.management.CommandInServerManagementService;
import dev.sheldan.abstracto.core.command.service.management.CommandManagementService;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.metrics.service.CounterMetric;
import dev.sheldan.abstracto.core.metrics.service.MetricService;
import dev.sheldan.abstracto.core.metrics.service.MetricTag;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.metric.service.CounterMetric;
import dev.sheldan.abstracto.core.metric.service.MetricService;
import dev.sheldan.abstracto.core.metric.service.MetricTag;
import dev.sheldan.abstracto.core.models.template.commands.help.HelpCommandDetailsModel;
import dev.sheldan.abstracto.core.models.template.commands.help.HelpModuleDetailsModel;
import dev.sheldan.abstracto.core.models.template.commands.help.HelpModuleOverviewModel;
@@ -75,7 +75,7 @@ public class Help implements Command {
CounterMetric
.builder()
.name(HELP_COMMAND_EXECUTED_METRIC)
.tagList(Arrays.asList(MetricTag.getTag(CATEGORY, "no.parmeter")))
.tagList(Arrays.asList(MetricTag.getTag(CATEGORY, "no.parameter")))
.build();
private static final CounterMetric HELP_COMMAND_MODULE_METRIC =
@@ -109,9 +109,9 @@ public class Help implements Command {
String parameter = (String) parameters.get(0);
if(moduleService.moduleExists(parameter)){
metricService.incrementCounter(HELP_COMMAND_MODULE_METRIC);
ModuleInterface moduleInterface = moduleService.getModuleByName(parameter);
log.trace("Displaying help for module {}.", moduleInterface.getInfo().getName());
SingleLevelPackedModule module = moduleService.getPackedModule(moduleInterface);
ModuleDefinition moduleDefinition = moduleService.getModuleByName(parameter);
log.trace("Displaying help for module {}.", moduleDefinition.getInfo().getName());
SingleLevelPackedModule module = moduleService.getPackedModule(moduleDefinition);
List<Command> commands = module.getCommands();
List<Command> filteredCommands = new ArrayList<>();
commands.forEach(command -> {
@@ -120,7 +120,7 @@ public class Help implements Command {
}
});
module.setCommands(filteredCommands);
List<ModuleInterface> subModules = moduleService.getSubModules(moduleInterface);
List<ModuleDefinition> subModules = moduleService.getSubModules(moduleDefinition);
HelpModuleDetailsModel model = (HelpModuleDetailsModel) ContextConverter.fromCommandContext(commandContext, HelpModuleDetailsModel.class);
model.setModule(module);
model.setSubModules(subModules);
@@ -153,8 +153,8 @@ public class Help implements Command {
private CompletableFuture<CommandResult> displayHelpOverview(CommandContext commandContext) {
log.trace("Displaying help overview response.");
ModuleInterface moduleInterface = moduleService.getDefaultModule();
List<ModuleInterface> subModules = moduleService.getSubModules(moduleInterface);
ModuleDefinition moduleDefinition = moduleService.getDefaultModule();
List<ModuleDefinition> subModules = moduleService.getSubModules(moduleDefinition);
HelpModuleOverviewModel model = (HelpModuleOverviewModel) ContextConverter.fromCommandContext(commandContext, HelpModuleOverviewModel.class);
model.setModules(subModules);
MessageToSend messageToSend = templateService.renderEmbedTemplate("help_module_overview_response", model);
@@ -174,7 +174,7 @@ public class Help implements Command {
return CommandConfiguration.builder()
.name("help")
.async(true)
.module(SupportModuleInterface.SUPPORT)
.module(SupportModuleDefinition.SUPPORT)
.parameters(Collections.singletonList(moduleOrCommandName))
.help(helpInfo)
.templated(true)
@@ -183,8 +183,8 @@ public class Help implements Command {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
@PostConstruct

View File

@@ -1,11 +1,11 @@
package dev.sheldan.abstracto.core.commands.help;
import dev.sheldan.abstracto.core.command.config.ModuleInfo;
import dev.sheldan.abstracto.core.command.config.ModuleInterface;
import dev.sheldan.abstracto.core.command.config.ModuleDefinition;
import org.springframework.stereotype.Component;
@Component
public class SupportModuleInterface implements ModuleInterface {
public class SupportModuleDefinition implements ModuleDefinition {
public static final String SUPPORT = "support";

View File

@@ -1,14 +1,14 @@
package dev.sheldan.abstracto.core.commands.utility;
import dev.sheldan.abstracto.core.command.UtilityModuleInterface;
import dev.sheldan.abstracto.core.command.UtilityModuleDefinition;
import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand;
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.models.template.commands.EchoModel;
import dev.sheldan.abstracto.core.service.ChannelService;
import dev.sheldan.abstracto.core.templating.service.TemplateService;
@@ -48,7 +48,7 @@ public class Echo extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("echo")
.module(UtilityModuleInterface.UTILITY)
.module(UtilityModuleDefinition.UTILITY)
.templated(true)
.supportsEmbedException(true)
.causesReaction(false)
@@ -58,7 +58,7 @@ public class Echo extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -1,13 +1,13 @@
package dev.sheldan.abstracto.core.commands.utility;
import dev.sheldan.abstracto.core.command.Command;
import dev.sheldan.abstracto.core.command.UtilityModuleInterface;
import dev.sheldan.abstracto.core.command.UtilityModuleDefinition;
import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.models.template.commands.PingModel;
import dev.sheldan.abstracto.core.service.ChannelService;
import dev.sheldan.abstracto.core.service.MessageService;
@@ -40,7 +40,7 @@ public class Ping implements Command {
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("ping")
.module(UtilityModuleInterface.UTILITY)
.module(UtilityModuleDefinition.UTILITY)
.templated(true)
.async(true)
.help(helpInfo)
@@ -49,8 +49,8 @@ public class Ping implements Command {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -5,12 +5,12 @@ import dev.sheldan.abstracto.core.command.config.CommandConfiguration;
import dev.sheldan.abstracto.core.command.config.HelpInfo;
import dev.sheldan.abstracto.core.command.config.Parameter;
import dev.sheldan.abstracto.core.command.config.ParameterValidator;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatures;
import dev.sheldan.abstracto.core.command.config.features.CoreFeatureDefinition;
import dev.sheldan.abstracto.core.command.config.validator.MaxStringLengthValidator;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleInterface;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.commands.config.ConfigModuleDefinition;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.models.database.AEmote;
import dev.sheldan.abstracto.core.service.EmoteService;
import dev.sheldan.abstracto.core.service.management.EmoteManagementService;
@@ -47,7 +47,7 @@ public class SetEmote extends AbstractConditionableCommand {
HelpInfo helpInfo = HelpInfo.builder().templated(true).build();
return CommandConfiguration.builder()
.name("setEmote")
.module(ConfigModuleInterface.CONFIG)
.module(ConfigModuleDefinition.CONFIG)
.parameters(parameters)
.supportsEmbedException(true)
.help(helpInfo)
@@ -57,7 +57,7 @@ public class SetEmote extends AbstractConditionableCommand {
}
@Override
public FeatureEnum getFeature() {
return CoreFeatures.CORE_FEATURE;
public FeatureDefinition getFeature() {
return CoreFeatureDefinition.CORE_FEATURE;
}
}

View File

@@ -4,7 +4,7 @@ import ch.qos.logback.core.net.ssl.SecureRandomFactoryBean;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.jagrosh.jdautilities.commons.waiter.EventWaiter;
import dev.sheldan.abstracto.core.metrics.OkHttpMetrics;
import dev.sheldan.abstracto.core.metric.OkHttpMetrics;
import dev.sheldan.abstracto.core.service.BotService;
import okhttp3.OkHttpClient;
import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -1,7 +1,7 @@
package dev.sheldan.abstracto.core.converter;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.models.database.AFeatureFlag;
import dev.sheldan.abstracto.core.models.property.FeatureFlagProperty;
import dev.sheldan.abstracto.core.models.template.commands.DefaultFeatureFlagDisplay;
@@ -20,8 +20,8 @@ public class FeatureFlagConverter {
private FeatureConfigService featureFlagService;
public FeatureFlagDisplay fromAFeatureFlag(AFeatureFlag featureFlag) {
FeatureEnum featureEnum = featureFlagService.getFeatureEnum(featureFlag.getFeature().getKey());
FeatureConfig forFeature = featureFlagService.getFeatureDisplayForFeature(featureEnum);
FeatureDefinition featureDefinition = featureFlagService.getFeatureEnum(featureFlag.getFeature().getKey());
FeatureConfig forFeature = featureFlagService.getFeatureDisplayForFeature(featureDefinition);
return FeatureFlagDisplay
.builder()
.featureConfig(forFeature)
@@ -30,8 +30,8 @@ public class FeatureFlagConverter {
}
public DefaultFeatureFlagDisplay fromFeatureFlagProperty(FeatureFlagProperty featureFlagProperty) {
FeatureEnum featureEnum = featureFlagService.getFeatureEnum(featureFlagProperty.getFeatureName());
FeatureConfig forFeature = featureFlagService.getFeatureDisplayForFeature(featureEnum);
FeatureDefinition featureDefinition = featureFlagService.getFeatureEnum(featureFlagProperty.getFeatureName());
FeatureConfig forFeature = featureFlagService.getFeatureDisplayForFeature(featureDefinition);
return DefaultFeatureFlagDisplay
.builder()
.featureConfig(forFeature)

View File

@@ -3,9 +3,9 @@ package dev.sheldan.abstracto.core.listener.sync.jda;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.exception.AbstractoRunTimeException;
import dev.sheldan.abstracto.core.exception.ChannelNotInGuildException;
import dev.sheldan.abstracto.core.metrics.service.CounterMetric;
import dev.sheldan.abstracto.core.metrics.service.MetricService;
import dev.sheldan.abstracto.core.metrics.service.MetricTag;
import dev.sheldan.abstracto.core.metric.service.CounterMetric;
import dev.sheldan.abstracto.core.metric.service.MetricService;
import dev.sheldan.abstracto.core.metric.service.MetricTag;
import dev.sheldan.abstracto.core.models.AServerAChannelAUser;
import dev.sheldan.abstracto.core.models.GuildChannelMember;
import dev.sheldan.abstracto.core.models.cache.CachedMessage;

View File

@@ -3,9 +3,9 @@ package dev.sheldan.abstracto.core.listener.sync.jda;
import dev.sheldan.abstracto.core.command.service.ExceptionService;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.execution.result.MessageReceivedListenerResult;
import dev.sheldan.abstracto.core.metrics.service.CounterMetric;
import dev.sheldan.abstracto.core.metrics.service.MetricService;
import dev.sheldan.abstracto.core.metrics.service.MetricTag;
import dev.sheldan.abstracto.core.metric.service.CounterMetric;
import dev.sheldan.abstracto.core.metric.service.MetricService;
import dev.sheldan.abstracto.core.metric.service.MetricTag;
import dev.sheldan.abstracto.core.service.BotService;
import dev.sheldan.abstracto.core.service.FeatureConfigService;
import dev.sheldan.abstracto.core.service.FeatureFlagService;

View File

@@ -2,9 +2,9 @@ package dev.sheldan.abstracto.core.listener.sync.jda;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.exception.AbstractoRunTimeException;
import dev.sheldan.abstracto.core.metrics.service.CounterMetric;
import dev.sheldan.abstracto.core.metrics.service.MetricService;
import dev.sheldan.abstracto.core.metrics.service.MetricTag;
import dev.sheldan.abstracto.core.metric.service.CounterMetric;
import dev.sheldan.abstracto.core.metric.service.MetricService;
import dev.sheldan.abstracto.core.metric.service.MetricTag;
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
import dev.sheldan.abstracto.core.service.FeatureConfigService;
import dev.sheldan.abstracto.core.service.FeatureFlagService;

View File

@@ -1,8 +1,8 @@
package dev.sheldan.abstracto.core.metrics;
package dev.sheldan.abstracto.core.metric;
import dev.sheldan.abstracto.core.metrics.service.CounterMetric;
import dev.sheldan.abstracto.core.metrics.service.MetricService;
import dev.sheldan.abstracto.core.metrics.service.MetricTag;
import dev.sheldan.abstracto.core.metric.service.CounterMetric;
import dev.sheldan.abstracto.core.metric.service.MetricService;
import dev.sheldan.abstracto.core.metric.service.MetricTag;
import lombok.extern.slf4j.Slf4j;
import okhttp3.Interceptor;
import okhttp3.Request;

View File

@@ -1,6 +1,6 @@
package dev.sheldan.abstracto.core.service;
import dev.sheldan.abstracto.core.metrics.OkHttpMetrics;
import dev.sheldan.abstracto.core.metric.OkHttpMetrics;
import lombok.extern.slf4j.Slf4j;
import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.JDABuilder;

View File

@@ -1,9 +1,9 @@
package dev.sheldan.abstracto.core.service;
import dev.sheldan.abstracto.core.exception.*;
import dev.sheldan.abstracto.core.metrics.service.CounterMetric;
import dev.sheldan.abstracto.core.metrics.service.MetricService;
import dev.sheldan.abstracto.core.metrics.service.MetricTag;
import dev.sheldan.abstracto.core.metric.service.CounterMetric;
import dev.sheldan.abstracto.core.metric.service.MetricService;
import dev.sheldan.abstracto.core.metric.service.MetricTag;
import dev.sheldan.abstracto.core.models.database.AChannel;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.templating.model.MessageToSend;

View File

@@ -1,7 +1,7 @@
package dev.sheldan.abstracto.core.service;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.config.FeatureMode;
import dev.sheldan.abstracto.core.config.PostTargetEnum;
import dev.sheldan.abstracto.core.exception.AbstractoRunTimeException;
@@ -43,12 +43,12 @@ public class FeatureConfigServiceBean implements FeatureConfigService {
}
@Override
public FeatureConfig getFeatureDisplayForFeature(FeatureEnum featureEnum) {
Optional<FeatureConfig> any = getAllFeatureConfigs().stream().filter(featureDisplay -> featureDisplay.getFeature().equals(featureEnum)).findAny();
public FeatureConfig getFeatureDisplayForFeature(FeatureDefinition featureDefinition) {
Optional<FeatureConfig> any = getAllFeatureConfigs().stream().filter(featureDisplay -> featureDisplay.getFeature().equals(featureDefinition)).findAny();
if(any.isPresent()) {
return any.get();
}
throw new FeatureNotFoundException(featureEnum.getKey(), getFeaturesAsList());
throw new FeatureNotFoundException(featureDefinition.getKey(), getFeaturesAsList());
}
@Override
@@ -81,7 +81,7 @@ public class FeatureConfigServiceBean implements FeatureConfigService {
}
@Override
public FeatureEnum getFeatureEnum(String key) {
public FeatureDefinition getFeatureEnum(String key) {
Optional<FeatureConfig> foundFeature = availableFeatures.stream().filter(featureDisplay -> featureDisplay.getFeature().getKey().equalsIgnoreCase(key)).findAny();
if(foundFeature.isPresent()) {
return foundFeature.get().getFeature();

View File

@@ -2,7 +2,7 @@ package dev.sheldan.abstracto.core.service;
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.exception.FeatureNotFoundException;
import dev.sheldan.abstracto.core.models.database.AFeature;
import dev.sheldan.abstracto.core.models.database.AFeatureFlag;
@@ -52,7 +52,7 @@ public class FeatureFlagServiceBean implements FeatureFlagService {
@Override
public void enableFeature(FeatureConfig name, AServer server) {
FeatureEnum feature = name.getFeature();
FeatureDefinition feature = name.getFeature();
if(!featureConfigService.doesFeatureExist(name)) {
throw new FeatureNotFoundException(feature.getKey(), featureConfigService.getFeaturesAsList());
}
@@ -67,7 +67,7 @@ public class FeatureFlagServiceBean implements FeatureFlagService {
@Override
public void disableFeature(FeatureConfig name, AServer server) {
FeatureEnum feature = name.getFeature();
FeatureDefinition feature = name.getFeature();
if(!featureConfigService.doesFeatureExist(name)) {
throw new FeatureNotFoundException(feature.getKey(), featureConfigService.getFeaturesAsList());
}
@@ -75,25 +75,25 @@ public class FeatureFlagServiceBean implements FeatureFlagService {
}
@Override
public AFeatureFlag createInstanceFromDefaultConfig(FeatureEnum name, Long serverId) {
public AFeatureFlag createInstanceFromDefaultConfig(FeatureDefinition name, Long serverId) {
FeatureFlagProperty defaultFeatureFlag = defaultFeatureFlagManagementService.getDefaultFeatureFlagProperty(name);
return updateFeatureFlag(name, serverId, defaultFeatureFlag.getEnabled());
}
@Override
public AFeatureFlag createInstanceFromDefaultConfig(FeatureEnum name, AServer server) {
public AFeatureFlag createInstanceFromDefaultConfig(FeatureDefinition name, AServer server) {
FeatureFlagProperty defaultFeatureFlag = defaultFeatureFlagManagementService.getDefaultFeatureFlagProperty(name);
return updateFeatureFlag(name, server, defaultFeatureFlag.getEnabled());
}
@Override
public boolean getFeatureFlagValue(FeatureEnum key, Long serverId) {
public boolean getFeatureFlagValue(FeatureDefinition key, Long serverId) {
AServer server = serverManagementService.loadOrCreate(serverId);
return getFeatureFlagValue(key, server);
}
@Override
public boolean getFeatureFlagValue(FeatureEnum key, AServer server) {
public boolean getFeatureFlagValue(FeatureDefinition key, AServer server) {
AFeature feature = featureManagementService.getFeature(key.getKey());
Optional<AFeatureFlag> featureFlagOptional = managementService.getFeatureFlag(feature, server);
return featureFlagOptional
@@ -102,13 +102,13 @@ public class FeatureFlagServiceBean implements FeatureFlagService {
}
@Override
public AFeatureFlag updateFeatureFlag(FeatureEnum key, Long serverId, Boolean newValue) {
public AFeatureFlag updateFeatureFlag(FeatureDefinition key, Long serverId, Boolean newValue) {
AServer server = serverManagementService.loadOrCreate(serverId);
return updateFeatureFlag(key, server, newValue);
}
@Override
public AFeatureFlag updateFeatureFlag(FeatureEnum key, AServer server, Boolean newValue) {
public AFeatureFlag updateFeatureFlag(FeatureDefinition key, AServer server, Boolean newValue) {
AFeature feature = featureManagementService.getFeature(key.getKey());
return managementService.setFeatureFlagValue(feature, server, newValue);
}

View File

@@ -4,7 +4,7 @@ import dev.sheldan.abstracto.core.FeatureAware;
import dev.sheldan.abstracto.core.command.exception.IncorrectFeatureModeException;
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.config.FeatureMode;
import dev.sheldan.abstracto.core.exception.FeatureModeNotFoundException;
import dev.sheldan.abstracto.core.models.database.*;
@@ -46,39 +46,39 @@ public class FeatureModeServiceBean implements FeatureModeService {
private ServerManagementService serverManagementService;
@Override
public void enableFeatureModeForFeature(FeatureEnum featureEnum, AServer server, FeatureMode mode) {
setOrCreateFeatureMode(featureEnum, server, mode, true);
public void enableFeatureModeForFeature(FeatureDefinition featureDefinition, AServer server, FeatureMode mode) {
setOrCreateFeatureMode(featureDefinition, server, mode, true);
}
private void setOrCreateFeatureMode(FeatureEnum featureEnum, AServer server, FeatureMode mode, boolean featureModeState) {
AFeature feature = featureManagementService.getFeature(featureEnum.getKey());
private void setOrCreateFeatureMode(FeatureDefinition featureDefinition, AServer server, FeatureMode mode, boolean featureModeState) {
AFeature feature = featureManagementService.getFeature(featureDefinition.getKey());
Optional<AFeatureMode> existing = featureModeManagementService.getFeatureMode(feature, server, mode);
if (existing.isPresent()) {
existing.get().setEnabled(featureModeState);
} else {
Optional<AFeatureFlag> featureFlagOptional = featureFlagManagementService.getFeatureFlag(feature, server);
AFeatureFlag featureFlagInstance = featureFlagOptional.orElseGet(() -> featureFlagService.createInstanceFromDefaultConfig(featureEnum, server));
AFeatureFlag featureFlagInstance = featureFlagOptional.orElseGet(() -> featureFlagService.createInstanceFromDefaultConfig(featureDefinition, server));
featureModeManagementService.createMode(featureFlagInstance, mode, featureModeState);
}
}
@Override
public void setFutureModeForFuture(FeatureEnum featureEnum, AServer server, FeatureMode mode, Boolean newValue) {
public void setFutureModeForFuture(FeatureDefinition featureDefinition, AServer server, FeatureMode mode, Boolean newValue) {
if(newValue) {
enableFeatureModeForFeature(featureEnum, server, mode);
enableFeatureModeForFeature(featureDefinition, server, mode);
} else {
disableFeatureModeForFeature(featureEnum, server, mode);
disableFeatureModeForFeature(featureDefinition, server, mode);
}
}
@Override
public void disableFeatureModeForFeature(FeatureEnum featureEnum, AServer server, FeatureMode mode) {
setOrCreateFeatureMode(featureEnum, server, mode, false);
public void disableFeatureModeForFeature(FeatureDefinition featureDefinition, AServer server, FeatureMode mode) {
setOrCreateFeatureMode(featureDefinition, server, mode, false);
}
@Override
public boolean featureModeActive(FeatureEnum featureEnum, AServer server, FeatureMode mode) {
AFeature feature = featureManagementService.getFeature(featureEnum.getKey());
public boolean featureModeActive(FeatureDefinition featureDefinition, AServer server, FeatureMode mode) {
AFeature feature = featureManagementService.getFeature(featureDefinition.getKey());
if(featureModeManagementService.doesFeatureModeExist(feature, server, mode)) {
return featureModeManagementService.isFeatureModeActive(feature, server, mode);
} else {
@@ -87,16 +87,16 @@ public class FeatureModeServiceBean implements FeatureModeService {
}
@Override
public boolean featureModeActive(FeatureEnum featureEnum, Long serverId, FeatureMode mode) {
public boolean featureModeActive(FeatureDefinition featureDefinition, Long serverId, FeatureMode mode) {
AServer server = serverManagementService.loadServer(serverId);
return featureModeActive(featureEnum, server, mode);
return featureModeActive(featureDefinition, server, mode);
}
@Override
public void validateActiveFeatureMode(Long serverId, FeatureEnum featureEnum, FeatureMode mode) {
boolean featureModeActive = featureModeActive(featureEnum, serverId, mode);
public void validateActiveFeatureMode(Long serverId, FeatureDefinition featureDefinition, FeatureMode mode) {
boolean featureModeActive = featureModeActive(featureDefinition, serverId, mode);
if(!featureModeActive) {
throw new IncorrectFeatureModeException(featureEnum, Arrays.asList(mode));
throw new IncorrectFeatureModeException(featureDefinition, Arrays.asList(mode));
}
}
@@ -178,9 +178,9 @@ public class FeatureModeServiceBean implements FeatureModeService {
}
@Override
public boolean necessaryFeatureModesMet(FeatureEnum featureEnum, List<FeatureMode> featureModes, Long serverId) {
public boolean necessaryFeatureModesMet(FeatureDefinition featureDefinition, List<FeatureMode> featureModes, Long serverId) {
for (FeatureMode featureMode : featureModes) {
if(featureModeActive(featureEnum, serverId, featureMode)) {
if(featureModeActive(featureDefinition, serverId, featureMode)) {
return true;
}
}

View File

@@ -1,8 +1,8 @@
package dev.sheldan.abstracto.core.service;
import dev.sheldan.abstracto.core.metrics.service.CounterMetric;
import dev.sheldan.abstracto.core.metrics.service.MetricService;
import dev.sheldan.abstracto.core.metrics.service.MetricTag;
import dev.sheldan.abstracto.core.metric.service.CounterMetric;
import dev.sheldan.abstracto.core.metric.service.MetricService;
import dev.sheldan.abstracto.core.metric.service.MetricTag;
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
import dev.sheldan.abstracto.core.models.database.AChannel;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;

View File

@@ -2,9 +2,9 @@ package dev.sheldan.abstracto.core.service;
import dev.sheldan.abstracto.core.exception.ConfiguredEmoteNotUsableException;
import dev.sheldan.abstracto.core.exception.EmoteNotInServerException;
import dev.sheldan.abstracto.core.metrics.service.CounterMetric;
import dev.sheldan.abstracto.core.metrics.service.MetricService;
import dev.sheldan.abstracto.core.metrics.service.MetricTag;
import dev.sheldan.abstracto.core.metric.service.CounterMetric;
import dev.sheldan.abstracto.core.metric.service.MetricService;
import dev.sheldan.abstracto.core.metric.service.MetricTag;
import dev.sheldan.abstracto.core.models.ServerUser;
import dev.sheldan.abstracto.core.models.cache.CachedEmote;
import dev.sheldan.abstracto.core.models.cache.CachedMessage;

View File

@@ -4,9 +4,9 @@ import dev.sheldan.abstracto.core.exception.GuildNotFoundException;
import dev.sheldan.abstracto.core.exception.RoleDeletedException;
import dev.sheldan.abstracto.core.exception.RoleNotFoundInDBException;
import dev.sheldan.abstracto.core.exception.RoleNotFoundInGuildException;
import dev.sheldan.abstracto.core.metrics.service.CounterMetric;
import dev.sheldan.abstracto.core.metrics.service.MetricService;
import dev.sheldan.abstracto.core.metrics.service.MetricTag;
import dev.sheldan.abstracto.core.metric.service.CounterMetric;
import dev.sheldan.abstracto.core.metric.service.MetricService;
import dev.sheldan.abstracto.core.metric.service.MetricTag;
import dev.sheldan.abstracto.core.models.database.ARole;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;

View File

@@ -1,7 +1,7 @@
package dev.sheldan.abstracto.core.service.management;
import dev.sheldan.abstracto.core.config.DefaultConfigProperties;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.exception.AbstractoRunTimeException;
import dev.sheldan.abstracto.core.models.database.AFeature;
import dev.sheldan.abstracto.core.models.property.FeatureFlagProperty;
@@ -28,7 +28,7 @@ public class DefaultFeatureFlagManagementServiceBean implements DefaultFeatureF
}
@Override
public FeatureFlagProperty getDefaultFeatureFlagProperty(FeatureEnum feature) {
public FeatureFlagProperty getDefaultFeatureFlagProperty(FeatureDefinition feature) {
return findFeatureFlagPropertyViaFeatureKey(feature.getKey());
}

View File

@@ -11,13 +11,11 @@
<property name="utilityModule" value="(SELECT id FROM module WHERE name = 'utility')"/>
<property name="channelsModule" value="(SELECT id FROM module WHERE name = 'channels')"/>
<property name="configModule" value="(SELECT id FROM module WHERE name = 'config')"/>
<property name="today" value="(SELECT NOW())"/>
<changeSet author="Sheldan" id="core-help-commands">
<insert tableName="command">
<column name="name" value="help"/>
<column name="module_id" valueComputed="${helpModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
</changeSet>
<changeSet author="Sheldan" id="core-utility-commands" >
@@ -25,13 +23,11 @@
<column name="name" value="ping"/>
<column name="module_id" valueComputed="${utilityModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="echo"/>
<column name="module_id" valueComputed="${utilityModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
</changeSet>
<changeSet author="Sheldan" id="core-channels-commands" >
@@ -39,49 +35,41 @@
<column name="name" value="addToChannelGroup"/>
<column name="module_id" valueComputed="${channelsModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="createChannelGroup"/>
<column name="module_id" valueComputed="${channelsModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="deleteChannelGroup"/>
<column name="module_id" valueComputed="${channelsModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="disableCommand"/>
<column name="module_id" valueComputed="${channelsModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="enableCommand"/>
<column name="module_id" valueComputed="${channelsModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="listChannelGroups"/>
<column name="module_id" valueComputed="${channelsModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="posttarget"/>
<column name="module_id" valueComputed="${channelsModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="removeFromChannelGroup"/>
<column name="module_id" valueComputed="${channelsModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
</changeSet>
<changeSet author="Sheldan" id="core-config-commands" >
@@ -89,151 +77,126 @@
<column name="name" value="clearCache"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="setConfig"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="setAdminMode"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="resetConfig"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="setPrefix"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="setTemplate"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="getTemplate"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="resetTemplate"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="getCustomTemplate"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="setupFeature"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="allow"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="allowRole"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="disableFeature"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="disAllowRole"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="enableFeature"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="features"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="makeAffected"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="makeImmune"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="restrict"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="enableMode"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="disableMode"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="featureModes"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="setEmote"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="allowMention"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="command">
<column name="name" value="disallowMention"/>
<column name="module_id" valueComputed="${configModule}"/>
<column name="feature_id" valueComputed="${coreFeature}"/>
<column name="created" valueComputed="${today}"/>
</insert>
</changeSet>
</databaseChangeLog>

View File

@@ -6,27 +6,22 @@
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="core_default_emote-insert">
<insert tableName="default_emote">
<column name="emote_key" value="warnReaction"/>
<column name="name" value="⚠️"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="default_emote">
<column name="emote_key" value="successReaction"/>
<column name="name" value="✅"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="default_emote">
<column name="emote_key" value="confirmation"/>
<column name="name" value="✅"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="default_emote">
<column name="emote_key" value="denial"/>
<column name="name" value="❌"/>
<column name="created" valueComputed="${today}"/>
</insert>
</changeSet>
</databaseChangeLog>

View File

@@ -6,11 +6,9 @@
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="feature-insertion">
<insert tableName="feature">
<column name="key" value="core"/>
<column name="created" valueComputed="${today}"/>
</insert>
</changeSet>
</databaseChangeLog>

View File

@@ -6,23 +6,18 @@
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="core-module-insertion">
<insert tableName="module">
<column name="name" value="support"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="module">
<column name="name" value="utility"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="module">
<column name="name" value="channels"/>
<column name="created" valueComputed="${today}"/>
</insert>
<insert tableName="module">
<column name="name" value="config"/>
<column name="created" valueComputed="${today}"/>
</insert>
</changeSet>
</databaseChangeLog>

View File

@@ -14,7 +14,7 @@
<column name="created" type="TIMESTAMP WITHOUT TIME ZONE">
<constraints nullable="true"/>
</column>
<column name="admin_only" type="BOOLEAN">
<column name="admin_mode" type="BOOLEAN">
<constraints nullable="false"/>
</column>
<column name="updated" type="TIMESTAMP WITHOUT TIME ZONE"/>

View File

@@ -2,7 +2,7 @@ package dev.sheldan.abstracto.core.commands.config.features;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.config.FeatureMode;
import dev.sheldan.abstracto.core.exception.FeatureModeNotFoundException;
import dev.sheldan.abstracto.core.exception.FeatureNotFoundException;
@@ -43,8 +43,8 @@ public class DisableFeatureModeTest {
public void testExecuteDisable() {
String featureName = "text";
String modeName = "mode";
FeatureEnum featureEnum = Mockito.mock(FeatureEnum.class);
when(featureConfigService.getFeatureEnum(featureName)).thenReturn(featureEnum);
FeatureDefinition featureDefinition = Mockito.mock(FeatureDefinition.class);
when(featureConfigService.getFeatureEnum(featureName)).thenReturn(featureDefinition);
FeatureMode featureMode = Mockito.mock(FeatureMode.class);
when(featureModeService.getFeatureModeForKey(modeName)).thenReturn(featureMode);
CommandContext context = CommandTestUtilities.getWithParameters(Arrays.asList(featureName, modeName));
@@ -52,7 +52,7 @@ public class DisableFeatureModeTest {
when(serverManagementService.loadServer(context.getGuild())).thenReturn(server);
CommandResult commandResultCompletableFuture = testUnit.execute(context);
CommandTestUtilities.checkSuccessfulCompletion(commandResultCompletableFuture);
verify(featureModeService, times(1)).disableFeatureModeForFeature(featureEnum, server, featureMode);
verify(featureModeService, times(1)).disableFeatureModeForFeature(featureDefinition, server, featureMode);
}
@Test(expected = FeatureNotFoundException.class)
@@ -68,8 +68,8 @@ public class DisableFeatureModeTest {
public void testExecuteDisableNotExistingFeatureMode() {
String featureName = "text";
String modeName = "mode";
FeatureEnum featureEnum = Mockito.mock(FeatureEnum.class);
when(featureConfigService.getFeatureEnum(featureName)).thenReturn(featureEnum);
FeatureDefinition featureDefinition = Mockito.mock(FeatureDefinition.class);
when(featureConfigService.getFeatureEnum(featureName)).thenReturn(featureDefinition);
when(featureModeService.getFeatureModeForKey(modeName)).thenThrow(new FeatureModeNotFoundException(modeName, new ArrayList<>()));
CommandContext context = CommandTestUtilities.getWithParameters(Arrays.asList(featureName, modeName));
testUnit.execute(context);

View File

@@ -2,7 +2,7 @@ package dev.sheldan.abstracto.core.commands.config.features;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.config.FeatureMode;
import dev.sheldan.abstracto.core.exception.FeatureModeNotFoundException;
import dev.sheldan.abstracto.core.exception.FeatureNotFoundException;
@@ -46,8 +46,8 @@ public class EnableFeatureModeTest {
public void testExecuteDisable() {
String featureName = "text";
String modeName = "mode";
FeatureEnum featureEnum = Mockito.mock(FeatureEnum.class);
when(featureConfigService.getFeatureEnum(featureName)).thenReturn(featureEnum);
FeatureDefinition featureDefinition = Mockito.mock(FeatureDefinition.class);
when(featureConfigService.getFeatureEnum(featureName)).thenReturn(featureDefinition);
FeatureMode featureMode = Mockito.mock(FeatureMode.class);
when(featureModeService.getFeatureModeForKey(modeName)).thenReturn(featureMode);
CommandContext context = CommandTestUtilities.getWithParameters(Arrays.asList(featureName, modeName));
@@ -56,7 +56,7 @@ public class EnableFeatureModeTest {
when(serverManagementService.loadServer(SERVER_ID)).thenReturn(server);
CommandResult commandResultCompletableFuture = testUnit.execute(context);
CommandTestUtilities.checkSuccessfulCompletion(commandResultCompletableFuture);
verify(featureModeService, times(1)).enableFeatureModeForFeature(featureEnum, server, featureMode);
verify(featureModeService, times(1)).enableFeatureModeForFeature(featureDefinition, server, featureMode);
}
@Test(expected = FeatureNotFoundException.class)
@@ -72,8 +72,8 @@ public class EnableFeatureModeTest {
public void testExecuteDisableNotExistingFeatureMode() {
String featureName = "text";
String modeName = "mode";
FeatureEnum featureEnum = Mockito.mock(FeatureEnum.class);
when(featureConfigService.getFeatureEnum(featureName)).thenReturn(featureEnum);
FeatureDefinition featureDefinition = Mockito.mock(FeatureDefinition.class);
when(featureConfigService.getFeatureEnum(featureName)).thenReturn(featureDefinition);
when(featureModeService.getFeatureModeForKey(modeName)).thenThrow(new FeatureModeNotFoundException(modeName, new ArrayList<>()));
CommandContext context = CommandTestUtilities.getWithParameters(Arrays.asList(featureName, modeName));
testUnit.execute(context);

View File

@@ -3,7 +3,7 @@ package dev.sheldan.abstracto.core.commands.config.features;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.exception.FeatureNotFoundException;
import dev.sheldan.abstracto.core.models.database.AFeature;
import dev.sheldan.abstracto.core.models.database.AServer;
@@ -77,9 +77,9 @@ public class FeatureModesTest {
public void testExecuteFeatureParameter() {
CommandContext noParameters = CommandTestUtilities.getWithParameters(Arrays.asList(FEATURE_NAME));
FeatureModeDisplay display1 = Mockito.mock(FeatureModeDisplay.class);
FeatureEnum featureEnum = Mockito.mock(FeatureEnum.class);
when(featureEnum.getKey()).thenReturn(FEATURE_NAME);
when(featureConfigService.getFeatureEnum(FEATURE_NAME)).thenReturn(featureEnum);
FeatureDefinition featureDefinition = Mockito.mock(FeatureDefinition.class);
when(featureDefinition.getKey()).thenReturn(FEATURE_NAME);
when(featureConfigService.getFeatureEnum(FEATURE_NAME)).thenReturn(featureDefinition);
AFeature feature = Mockito.mock(AFeature.class);
when(featureManagementService.getFeature(FEATURE_NAME)).thenReturn(feature);
List<FeatureModeDisplay> featureModeDisplays = Arrays.asList(display1);

View File

@@ -2,7 +2,7 @@ package dev.sheldan.abstracto.core.service;
import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureEnum;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.core.config.FeatureMode;
import dev.sheldan.abstracto.core.models.database.*;
import dev.sheldan.abstracto.core.models.property.FeatureModeProperty;
@@ -56,7 +56,7 @@ public class FeatureModeServiceBeanTest {
private AServer server;
@Mock
private FeatureEnum featureEnum;
private FeatureDefinition featureDefinition;
@Mock
private AFeature feature;
@@ -75,79 +75,79 @@ public class FeatureModeServiceBeanTest {
@Test
public void enableFeatureModeForFeatureWhichAlreadyExists() {
when(featureEnum.getKey()).thenReturn(FEATURE_NAME);
when(featureManagementService.getFeature(featureEnum.getKey())).thenReturn(feature);
when(featureDefinition.getKey()).thenReturn(FEATURE_NAME);
when(featureManagementService.getFeature(featureDefinition.getKey())).thenReturn(feature);
when(featureModeManagementService.getFeatureMode(feature, server, featureMode)).thenReturn(Optional.of(aFeatureMode));
testUnit.enableFeatureModeForFeature(featureEnum, server, featureMode);
testUnit.enableFeatureModeForFeature(featureDefinition, server, featureMode);
verify(aFeatureMode, times(1)).setEnabled(true);
}
@Test
public void enableFeatureModeForFeatureCreatingNewMode() {
when(featureEnum.getKey()).thenReturn(FEATURE_NAME);
when(featureManagementService.getFeature(featureEnum.getKey())).thenReturn(feature);
when(featureDefinition.getKey()).thenReturn(FEATURE_NAME);
when(featureManagementService.getFeature(featureDefinition.getKey())).thenReturn(feature);
when(featureModeManagementService.getFeatureMode(feature, server, featureMode)).thenReturn(Optional.empty());
when(featureFlagManagementService.getFeatureFlag(feature, server)).thenReturn(Optional.of(featureFlag));
testUnit.enableFeatureModeForFeature(featureEnum, server, featureMode);
testUnit.enableFeatureModeForFeature(featureDefinition, server, featureMode);
verify(featureModeManagementService, times(1)).createMode(featureFlag, featureMode, true);
}
@Test
public void setFutureModeForFutureEnable() {
when(featureEnum.getKey()).thenReturn(FEATURE_NAME);
when(featureManagementService.getFeature(featureEnum.getKey())).thenReturn(feature);
when(featureDefinition.getKey()).thenReturn(FEATURE_NAME);
when(featureManagementService.getFeature(featureDefinition.getKey())).thenReturn(feature);
when(featureModeManagementService.getFeatureMode(feature, server, featureMode)).thenReturn(Optional.of(aFeatureMode));
testUnit.setFutureModeForFuture(featureEnum, server, featureMode, true);
testUnit.setFutureModeForFuture(featureDefinition, server, featureMode, true);
verify(aFeatureMode, times(1)).setEnabled(true);
}
@Test
public void setFutureModeForFutureDisable() {
when(featureEnum.getKey()).thenReturn(FEATURE_NAME);
when(featureManagementService.getFeature(featureEnum.getKey())).thenReturn(feature);
when(featureDefinition.getKey()).thenReturn(FEATURE_NAME);
when(featureManagementService.getFeature(featureDefinition.getKey())).thenReturn(feature);
when(featureModeManagementService.getFeatureMode(feature, server, featureMode)).thenReturn(Optional.of(aFeatureMode));
testUnit.setFutureModeForFuture(featureEnum, server, featureMode, false);
testUnit.setFutureModeForFuture(featureDefinition, server, featureMode, false);
verify(aFeatureMode, times(1)).setEnabled(false);
}
@Test
public void disableFeatureModeForFeatureWhichAlreadyExists() {
when(featureEnum.getKey()).thenReturn(FEATURE_NAME);
when(featureManagementService.getFeature(featureEnum.getKey())).thenReturn(feature);
when(featureDefinition.getKey()).thenReturn(FEATURE_NAME);
when(featureManagementService.getFeature(featureDefinition.getKey())).thenReturn(feature);
when(featureModeManagementService.getFeatureMode(feature, server, featureMode)).thenReturn(Optional.of(aFeatureMode));
testUnit.disableFeatureModeForFeature(featureEnum, server, featureMode);
testUnit.disableFeatureModeForFeature(featureDefinition, server, featureMode);
verify(aFeatureMode, times(1)).setEnabled(false);
}
@Test
public void disableFeatureModeForFeatureCreatingNewMode() {
when(featureEnum.getKey()).thenReturn(FEATURE_NAME);
when(featureManagementService.getFeature(featureEnum.getKey())).thenReturn(feature);
when(featureDefinition.getKey()).thenReturn(FEATURE_NAME);
when(featureManagementService.getFeature(featureDefinition.getKey())).thenReturn(feature);
when(featureModeManagementService.getFeatureMode(feature, server, featureMode)).thenReturn(Optional.empty());
when(featureFlagManagementService.getFeatureFlag(feature, server)).thenReturn(Optional.of(featureFlag));
testUnit.disableFeatureModeForFeature(featureEnum, server, featureMode);
testUnit.disableFeatureModeForFeature(featureDefinition, server, featureMode);
verify(featureModeManagementService, times(1)).createMode(featureFlag, featureMode, false);
}
@Test
public void testFeatureModeActiveForCustomizedFeatureMode() {
when(featureEnum.getKey()).thenReturn(FEATURE_NAME);
when(featureManagementService.getFeature(featureEnum.getKey())).thenReturn(feature);
when(featureDefinition.getKey()).thenReturn(FEATURE_NAME);
when(featureManagementService.getFeature(featureDefinition.getKey())).thenReturn(feature);
when(featureModeManagementService.doesFeatureModeExist(feature, server, featureMode)).thenReturn(true);
when(featureModeManagementService.isFeatureModeActive(feature, server, featureMode)).thenReturn(true);
boolean actualResult = testUnit.featureModeActive(featureEnum, server, featureMode);
boolean actualResult = testUnit.featureModeActive(featureDefinition, server, featureMode);
Assert.assertTrue(actualResult);
}
@Test
public void testFeatureModeActiveForDefaultFeatureMode() {
when(featureEnum.getKey()).thenReturn(FEATURE_NAME);
when(featureDefinition.getKey()).thenReturn(FEATURE_NAME);
when(featureMode.getKey()).thenReturn(FEATURE_MODE);
when(featureManagementService.getFeature(featureEnum.getKey())).thenReturn(feature);
when(featureManagementService.getFeature(featureDefinition.getKey())).thenReturn(feature);
when(featureModeManagementService.doesFeatureModeExist(feature, server, featureMode)).thenReturn(false);
when(defaultFeatureModeManagement.getFeatureMode(feature, FEATURE_MODE)).thenReturn(defaultFeatureMode);
when(defaultFeatureMode.getEnabled()).thenReturn(true);
boolean actualResult = testUnit.featureModeActive(featureEnum, server, featureMode);
boolean actualResult = testUnit.featureModeActive(featureDefinition, server, featureMode);
Assert.assertTrue(actualResult);
}