mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-07 01:30:49 +00:00
[AB-163] fixing printing all possible feature modes in case an unknown one was provided for enableMode/disableMode
This commit is contained in:
@@ -45,7 +45,7 @@ public class DisableMode extends AbstractConditionableCommand {
|
||||
String featureName = (String) commandContext.getParameters().getParameters().get(0);
|
||||
String modeName = (String) commandContext.getParameters().getParameters().get(1);
|
||||
FeatureDefinition featureDefinition = featureConfigService.getFeatureEnum(featureName);
|
||||
FeatureMode featureMode = featureModeService.getFeatureModeForKey(modeName);
|
||||
FeatureMode featureMode = featureModeService.getFeatureModeForKey(featureName, modeName);
|
||||
AServer server = serverManagementService.loadServer(commandContext.getGuild());
|
||||
featureModeService.disableFeatureModeForFeature(featureDefinition, server, featureMode);
|
||||
return CommandResult.fromSuccess();
|
||||
|
||||
@@ -45,7 +45,7 @@ public class EnableMode extends AbstractConditionableCommand {
|
||||
String featureName = (String) commandContext.getParameters().getParameters().get(0);
|
||||
String modeName = (String) commandContext.getParameters().getParameters().get(1);
|
||||
FeatureDefinition featureDefinition = featureConfigService.getFeatureEnum(featureName);
|
||||
FeatureMode featureMode = featureModeService.getFeatureModeForKey(modeName);
|
||||
FeatureMode featureMode = featureModeService.getFeatureModeForKey(featureName, modeName);
|
||||
AServer server = serverManagementService.loadServer(commandContext.getGuild().getIdLong());
|
||||
featureModeService.enableFeatureModeForFeature(featureDefinition, server, featureMode);
|
||||
return CommandResult.fromSuccess();
|
||||
|
||||
@@ -18,6 +18,7 @@ import net.dv8tion.jda.api.entities.Guild;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.util.*;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -46,6 +47,8 @@ public class FeatureModeServiceBean implements FeatureModeService {
|
||||
@Autowired
|
||||
private ServerManagementService serverManagementService;
|
||||
|
||||
private HashMap<String, List<String>> featureModes = new HashMap<>();
|
||||
|
||||
@Override
|
||||
public void enableFeatureModeForFeature(FeatureDefinition featureDefinition, AServer server, FeatureMode mode) {
|
||||
setOrCreateFeatureMode(featureDefinition, server, mode, true);
|
||||
@@ -107,19 +110,23 @@ public class FeatureModeServiceBean implements FeatureModeService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public FeatureMode getFeatureModeForKey(String key) {
|
||||
return getAllAvailableFeatureModes().stream().filter(mode -> mode.getKey().equalsIgnoreCase(key)).findAny().orElseThrow(() -> new FeatureModeNotFoundException(key, getFeatureModesAsStrings()));
|
||||
public FeatureMode getFeatureModeForKey(String featureKey, String featureModeKey) {
|
||||
return getAllAvailableFeatureModes()
|
||||
.stream()
|
||||
.filter(mode -> mode.getKey().equalsIgnoreCase(featureModeKey))
|
||||
.findAny()
|
||||
.orElseThrow(() -> new FeatureModeNotFoundException(featureModeKey, getFeatureModesAsStrings(featureKey)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FeatureMode> getAllAvailableFeatureModes() {
|
||||
List<FeatureMode> featureModes = new ArrayList<>();
|
||||
featureConfigService.getAllFeatureConfigs().forEach(featureConfig -> featureModes.addAll(featureConfig.getAvailableModes()));
|
||||
return featureModes;
|
||||
List<FeatureMode> fullFeatureModes = new ArrayList<>();
|
||||
featureConfigService.getAllFeatureConfigs().forEach(featureConfig -> fullFeatureModes.addAll(featureConfig.getAvailableModes()));
|
||||
return fullFeatureModes;
|
||||
}
|
||||
|
||||
private List<String> getFeatureModesAsStrings() {
|
||||
return getAllAvailableFeatureModes().stream().map(FeatureMode::getKey).collect(Collectors.toList());
|
||||
private List<String> getFeatureModesAsStrings(String featureKey) {
|
||||
return featureModes.get(featureKey);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -199,4 +206,13 @@ public class FeatureModeServiceBean implements FeatureModeService {
|
||||
}
|
||||
|
||||
|
||||
@PostConstruct
|
||||
public void postConstruct() {
|
||||
featureConfigService.getAllFeatureConfigs().forEach(featureConfig -> {
|
||||
List<String> modes = new ArrayList<>();
|
||||
featureConfig.getAvailableModes().forEach(featureMode -> modes.add(featureMode.getKey()));
|
||||
featureModes.put(featureConfig.getFeature().getKey(), modes);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user