diff --git a/abstracto-application/abstracto-modules/custom-command/custom-command-impl/src/main/java/dev/sheldan/abstracto/customcommand/command/CustomCommandAlternative.java b/abstracto-application/abstracto-modules/custom-command/custom-command-impl/src/main/java/dev/sheldan/abstracto/customcommand/command/CustomCommandAlternative.java index 3cd0df6f8..18a799544 100644 --- a/abstracto-application/abstracto-modules/custom-command/custom-command-impl/src/main/java/dev/sheldan/abstracto/customcommand/command/CustomCommandAlternative.java +++ b/abstracto-application/abstracto-modules/custom-command/custom-command-impl/src/main/java/dev/sheldan/abstracto/customcommand/command/CustomCommandAlternative.java @@ -5,11 +5,14 @@ import dev.sheldan.abstracto.core.command.execution.UnParsedCommandParameter; import dev.sheldan.abstracto.core.command.service.CommandRegistry; import dev.sheldan.abstracto.core.config.ListenerPriority; import dev.sheldan.abstracto.core.service.ChannelService; +import dev.sheldan.abstracto.core.service.FeatureFlagService; import dev.sheldan.abstracto.core.templating.model.MessageToSend; import dev.sheldan.abstracto.core.templating.service.TemplateService; +import dev.sheldan.abstracto.customcommand.config.CustomCommandFeatureConfig; import dev.sheldan.abstracto.customcommand.model.command.CustomCommandResponseModel; import dev.sheldan.abstracto.customcommand.model.database.CustomCommand; import dev.sheldan.abstracto.customcommand.service.management.CustomCommandManagementService; +import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Message; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -35,9 +38,15 @@ public class CustomCommandAlternative implements CommandAlternative { @Autowired private TemplateService templateService; + @Autowired + private FeatureFlagService featureFlagService; + + @Autowired + private CustomCommandFeatureConfig customCommandFeatureConfig; + @Override - public boolean matches(UnParsedCommandParameter parameter) { - return true; + public boolean shouldExecute(UnParsedCommandParameter parameter, Guild guild) { + return featureFlagService.isFeatureEnabled(customCommandFeatureConfig, guild.getIdLong()); } @Override diff --git a/abstracto-application/abstracto-modules/custom-command/custom-command-impl/src/main/java/dev/sheldan/abstracto/customcommand/repository/CustomCommandRepository.java b/abstracto-application/abstracto-modules/custom-command/custom-command-impl/src/main/java/dev/sheldan/abstracto/customcommand/repository/CustomCommandRepository.java index 929e16000..2172f6597 100644 --- a/abstracto-application/abstracto-modules/custom-command/custom-command-impl/src/main/java/dev/sheldan/abstracto/customcommand/repository/CustomCommandRepository.java +++ b/abstracto-application/abstracto-modules/custom-command/custom-command-impl/src/main/java/dev/sheldan/abstracto/customcommand/repository/CustomCommandRepository.java @@ -9,5 +9,5 @@ import java.util.Optional; @Repository public interface CustomCommandRepository extends JpaRepository { - Optional getByNameAndServer(String name, AServer server); + Optional getByNameIgnoreCaseAndServer(String name, AServer server); } diff --git a/abstracto-application/abstracto-modules/custom-command/custom-command-impl/src/main/java/dev/sheldan/abstracto/customcommand/service/management/CustomCommandManagementServiceBean.java b/abstracto-application/abstracto-modules/custom-command/custom-command-impl/src/main/java/dev/sheldan/abstracto/customcommand/service/management/CustomCommandManagementServiceBean.java index 1d5e9924f..87abac2b9 100644 --- a/abstracto-application/abstracto-modules/custom-command/custom-command-impl/src/main/java/dev/sheldan/abstracto/customcommand/service/management/CustomCommandManagementServiceBean.java +++ b/abstracto-application/abstracto-modules/custom-command/custom-command-impl/src/main/java/dev/sheldan/abstracto/customcommand/service/management/CustomCommandManagementServiceBean.java @@ -21,6 +21,6 @@ public class CustomCommandManagementServiceBean implements CustomCommandManageme @Override public Optional getCustomCommandByName(String name, Long serverId) { AServer server = serverManagementService.loadServer(serverId); - return repository.getByNameAndServer(name, server); + return repository.getByNameIgnoreCaseAndServer(name, server); } } diff --git a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/CommandReceivedHandler.java b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/CommandReceivedHandler.java index 78551356a..e5f28ec1b 100644 --- a/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/CommandReceivedHandler.java +++ b/abstracto-application/core/core-impl/src/main/java/dev/sheldan/abstracto/core/command/CommandReceivedHandler.java @@ -152,7 +152,7 @@ public class CommandReceivedHandler extends ListenerAdapter { if(commandAlternatives != null) { Optional foundAlternativeOptional = commandAlternatives .stream() - .filter(commandAlternative -> commandAlternative.matches(result.getParameter())) + .filter(commandAlternative -> commandAlternative.shouldExecute(result.getParameter(), event.getGuild())) .findFirst(); if(foundAlternativeOptional.isPresent()) { CommandAlternative foundAlternative = foundAlternativeOptional.get(); diff --git a/abstracto-application/core/core-int/src/main/java/dev/sheldan/abstracto/core/command/CommandAlternative.java b/abstracto-application/core/core-int/src/main/java/dev/sheldan/abstracto/core/command/CommandAlternative.java index 0e6c5dab9..8b6cb5f6e 100644 --- a/abstracto-application/core/core-int/src/main/java/dev/sheldan/abstracto/core/command/CommandAlternative.java +++ b/abstracto-application/core/core-int/src/main/java/dev/sheldan/abstracto/core/command/CommandAlternative.java @@ -2,9 +2,10 @@ package dev.sheldan.abstracto.core.command; import dev.sheldan.abstracto.core.Prioritized; import dev.sheldan.abstracto.core.command.execution.UnParsedCommandParameter; +import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Message; public interface CommandAlternative extends Prioritized { - boolean matches(UnParsedCommandParameter parameter); + boolean shouldExecute(UnParsedCommandParameter parameterm, Guild guild); void execute(UnParsedCommandParameter parameter, Message message); }