From dafde2d8f68c0f30c8db390e3a9102729b34c48d Mon Sep 17 00:00:00 2001 From: Sheldan <5037282+Sheldan@users.noreply.github.com> Date: Sun, 3 May 2026 00:29:28 +0200 Subject: [PATCH] [AB-xxx] refactoring enable/disableMode to the modes coming from the feature instead of the ones already present in the server --- .../commands/config/features/DisableMode.java | 15 ++++----------- .../core/commands/config/features/EnableMode.java | 15 ++++----------- 2 files changed, 8 insertions(+), 22 deletions(-) diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/config/features/DisableMode.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/config/features/DisableMode.java index 6c414adc7..2904e2e98 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/config/features/DisableMode.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/config/features/DisableMode.java @@ -1,6 +1,7 @@ package dev.sheldan.abstracto.core.commands.config.features; import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService; +import dev.sheldan.abstracto.core.config.FeatureConfig; import dev.sheldan.abstracto.core.interaction.slash.CoreSlashCommandNames; import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand; import dev.sheldan.abstracto.core.command.config.CommandConfiguration; @@ -15,9 +16,7 @@ import dev.sheldan.abstracto.core.config.FeatureMode; import dev.sheldan.abstracto.core.interaction.InteractionService; import dev.sheldan.abstracto.core.interaction.slash.SlashCommandPrivilegeLevels; import dev.sheldan.abstracto.core.interaction.slash.parameter.SlashCommandAutoCompleteService; -import dev.sheldan.abstracto.core.models.database.AFeature; import dev.sheldan.abstracto.core.models.database.AFeatureFlag; -import dev.sheldan.abstracto.core.models.database.AFeatureMode; import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.core.service.FeatureConfigService; import dev.sheldan.abstracto.core.service.FeatureModeService; @@ -59,12 +58,6 @@ public class DisableMode extends AbstractConditionableCommand { @Autowired private FeatureFlagManagementService featureFlagManagementService; - @Autowired - private FeatureModeManagementService featureModeManagementService; - - @Autowired - private FeatureManagementService featureManagementService; - private static final String DISABLE_MODE_RESPONSE_KEY = "disableMode_response"; private static final String FEATURE_PARAMETER = "feature"; private static final String MODE_PARAMETER = "mode"; @@ -99,11 +92,11 @@ public class DisableMode extends AbstractConditionableCommand { return new ArrayList<>(); } FeatureDefinition featureDefinition = featureConfigService.getFeatureEnum(featureName); - AFeature feature = featureManagementService.getFeature(featureDefinition.getKey()); - List modes = featureModeManagementService.getFeatureModesOfFeatureInServer(server, feature); + FeatureConfig feature = featureConfigService.getFeatureDisplayForFeature(featureDefinition); + List modes = feature.getAvailableModes(); return modes .stream() - .map(mode -> mode.getFeatureMode().toLowerCase()) + .map(mode -> mode.getKey().toLowerCase()) .filter(string -> string.startsWith(input)) .toList(); } diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/config/features/EnableMode.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/config/features/EnableMode.java index a3e919e0e..c777843c6 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/config/features/EnableMode.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/commands/config/features/EnableMode.java @@ -1,6 +1,7 @@ package dev.sheldan.abstracto.core.commands.config.features; import dev.sheldan.abstracto.core.command.service.management.FeatureManagementService; +import dev.sheldan.abstracto.core.config.FeatureConfig; import dev.sheldan.abstracto.core.interaction.slash.CoreSlashCommandNames; import dev.sheldan.abstracto.core.command.condition.AbstractConditionableCommand; import dev.sheldan.abstracto.core.command.config.CommandConfiguration; @@ -15,9 +16,7 @@ import dev.sheldan.abstracto.core.config.FeatureMode; import dev.sheldan.abstracto.core.interaction.InteractionService; import dev.sheldan.abstracto.core.interaction.slash.SlashCommandPrivilegeLevels; import dev.sheldan.abstracto.core.interaction.slash.parameter.SlashCommandAutoCompleteService; -import dev.sheldan.abstracto.core.models.database.AFeature; import dev.sheldan.abstracto.core.models.database.AFeatureFlag; -import dev.sheldan.abstracto.core.models.database.AFeatureMode; import dev.sheldan.abstracto.core.models.database.AServer; import dev.sheldan.abstracto.core.service.FeatureConfigService; import dev.sheldan.abstracto.core.service.FeatureModeService; @@ -59,12 +58,6 @@ public class EnableMode extends AbstractConditionableCommand { @Autowired private FeatureFlagManagementService featureFlagManagementService; - @Autowired - private FeatureModeManagementService featureModeManagementService; - - @Autowired - private FeatureManagementService featureManagementService; - private static final String ENABLE_MODE_RESPONSE_KEY = "enableMode_response"; private static final String FEATURE_PARAMETER = "feature"; private static final String MODE_PARAMETER = "mode"; @@ -99,11 +92,11 @@ public class EnableMode extends AbstractConditionableCommand { return new ArrayList<>(); } FeatureDefinition featureDefinition = featureConfigService.getFeatureEnum(featureName); - AFeature feature = featureManagementService.getFeature(featureDefinition.getKey()); - List modes = featureModeManagementService.getFeatureModesOfFeatureInServer(server, feature); + FeatureConfig feature = featureConfigService.getFeatureDisplayForFeature(featureDefinition); + List modes = feature.getAvailableModes(); return modes .stream() - .map(mode -> mode.getFeatureMode().toLowerCase()) + .map(mode -> mode.getKey().toLowerCase()) .filter(string -> string.startsWith(input)) .toList(); }