diff --git a/application/src/main/java/org/togetherjava/tjbot/features/Features.java b/application/src/main/java/org/togetherjava/tjbot/features/Features.java index c360bacdd1..2e30400bce 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/Features.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/Features.java @@ -130,7 +130,7 @@ public static Collection createFeatures(JDA jda, Database database, Con HelpThreadLifecycleListener helpThreadLifecycleListener = new HelpThreadLifecycleListener(helpSystemHelper, database); HelpThreadCreatedListener helpThreadCreatedListener = - new HelpThreadCreatedListener(helpSystemHelper, metrics); + new HelpThreadCreatedListener(blacklistConfig.special(), helpSystemHelper, metrics); TopHelpersService topHelpersService = new TopHelpersService(database); TopHelpersAssignmentRoutine topHelpersAssignmentRoutine = new TopHelpersAssignmentRoutine(config, topHelpersService, metrics); diff --git a/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadCreatedListener.java b/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadCreatedListener.java index c0f01b8245..7025d2fe4b 100644 --- a/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadCreatedListener.java +++ b/application/src/main/java/org/togetherjava/tjbot/features/help/HelpThreadCreatedListener.java @@ -19,6 +19,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.togetherjava.tjbot.config.FeatureBlacklist; import org.togetherjava.tjbot.features.EventReceiver; import org.togetherjava.tjbot.features.UserInteractionType; import org.togetherjava.tjbot.features.UserInteractor; @@ -47,6 +48,7 @@ public final class HelpThreadCreatedListener extends ListenerAdapter implements EventReceiver, UserInteractor { private static final Logger log = LoggerFactory.getLogger(HelpThreadCreatedListener.class); + private final FeatureBlacklist specialBlacklist; private final HelpSystemHelper helper; private final Metrics metrics; @@ -60,10 +62,13 @@ public final class HelpThreadCreatedListener extends ListenerAdapter /** * Creates a new instance. * + * @param specialBlacklist the special blacklist * @param helper to work with the help threads * @param metrics to track events */ - public HelpThreadCreatedListener(HelpSystemHelper helper, Metrics metrics) { + public HelpThreadCreatedListener(FeatureBlacklist specialBlacklist, + HelpSystemHelper helper, Metrics metrics) { + this.specialBlacklist = specialBlacklist; this.helper = helper; this.metrics = metrics; } @@ -96,10 +101,13 @@ private void handleHelpThreadCreated(ThreadChannel threadChannel) { metrics.count("help-question_posted"); threadChannel.retrieveStartMessage().flatMap(message -> { registerThreadDataInDB(message, threadChannel); - return sendHelperHeadsUp(threadChannel) - .flatMap(_ -> HelpThreadCreatedListener.isContextSufficient(message), - _ -> createAIResponse(threadChannel, message)) - .flatMap(_ -> pinOriginalQuestion(message)); + RestAction messageRestAction = sendHelperHeadsUp(threadChannel); + if (specialBlacklist.isEnabled("AutoAIResponse")) { + messageRestAction = messageRestAction.flatMap( + _ -> HelpThreadCreatedListener.isContextSufficient(message), + _ -> createAIResponse(threadChannel, message)); + } + return messageRestAction.flatMap(_ -> pinOriginalQuestion(message)); }).queue(); }