mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-15 12:10:21 +00:00
[AB-112] adding star levels to setup feature wizard
moving star level configuration to only be instantiated when needed
This commit is contained in:
@@ -4,20 +4,30 @@ import dev.sheldan.abstracto.core.config.FeatureConfig;
|
||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||
import dev.sheldan.abstracto.core.config.PostTargetEnum;
|
||||
import dev.sheldan.abstracto.core.service.FeatureValidator;
|
||||
import dev.sheldan.abstracto.core.service.management.DefaultConfigManagementService;
|
||||
import dev.sheldan.abstracto.utility.StarboardFeatureValidator;
|
||||
import dev.sheldan.abstracto.utility.config.posttargets.StarboardPostTarget;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
public class StarboardFeature implements FeatureConfig {
|
||||
|
||||
public static final String STAR_LVL_CONFIG_PREFIX = "starLvl";
|
||||
public static final String STAR_EMOTE_PREFIX = "star";
|
||||
public static final String STAR_BADGE_EMOTE_PREFIX = "starboardBadge";
|
||||
public static final String STAR_LEVELS_CONFIG_KEY = "starLvls";
|
||||
|
||||
@Autowired
|
||||
private StarboardFeatureValidator starboardFeatureValidator;
|
||||
|
||||
@Autowired
|
||||
private DefaultConfigManagementService defaultConfigManagementService;
|
||||
|
||||
@Override
|
||||
public FeatureEnum getFeature() {
|
||||
return UtilityFeature.STARBOARD;
|
||||
@@ -33,10 +43,30 @@ public class StarboardFeature implements FeatureConfig {
|
||||
return Arrays.asList(starboardFeatureValidator);
|
||||
}
|
||||
|
||||
// TODO add missing system config keys
|
||||
@Override
|
||||
public List<String> getRequiredSystemConfigKeys() {
|
||||
List<String> configKeys = new ArrayList<>();
|
||||
int maxLevels = getMaxLevels();
|
||||
for(int i = maxLevels; i > 0; i--) {
|
||||
configKeys.add(StarboardFeature.STAR_LVL_CONFIG_PREFIX + i);
|
||||
}
|
||||
return configKeys;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getRequiredEmotes() {
|
||||
return Arrays.asList("star", "star1", "star2", "star3", "star4", "starboardBadge1", "starboardBadge2", "starboardBadge3");
|
||||
List<String> emoteNames = new ArrayList<>();
|
||||
int maxLevels = getMaxLevels();
|
||||
for(int i = maxLevels; i > 0; i--) {
|
||||
emoteNames.add(StarboardFeature.STAR_EMOTE_PREFIX + i);
|
||||
}
|
||||
emoteNames.add(StarboardFeature.STAR_BADGE_EMOTE_PREFIX + 1);
|
||||
emoteNames.add(StarboardFeature.STAR_BADGE_EMOTE_PREFIX + 2);
|
||||
emoteNames.add(StarboardFeature.STAR_BADGE_EMOTE_PREFIX + 3);
|
||||
return emoteNames;
|
||||
}
|
||||
|
||||
private int getMaxLevels() {
|
||||
return defaultConfigManagementService.getDefaultConfig(STAR_LEVELS_CONFIG_KEY).getLongValue().intValue();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user