[AB-xxx] adding feature to suggest slash commands for message commands, if the command is slash command only

This commit is contained in:
Sheldan
2025-10-12 20:10:14 +02:00
parent 71b7dd2383
commit d078b3fa87
8 changed files with 328 additions and 13 deletions

View File

@@ -0,0 +1,15 @@
package dev.sheldan.abstracto.core.command.config.features;
import dev.sheldan.abstracto.core.config.FeatureMode;
import lombok.Getter;
@Getter
public enum CoreFeatureMode implements FeatureMode {
SUGGEST_SLASH_COMMANDS("suggestSlashCommands");
private final String key;
CoreFeatureMode(String key) {
this.key = key;
}
}

View File

@@ -32,12 +32,12 @@ public class UnParsedCommandParameter {
}
if (m.group(1) != null) {
String group = m.group(1);
if(!group.equals("")) {
if(!group.isEmpty()) {
this.parameters.add(UnparsedCommandParameterPiece.builder().value(group).build());
}
} else {
String group = m.group(2);
if(!group.equals("")) {
if(!group.isEmpty()) {
this.parameters.add(UnparsedCommandParameterPiece.builder().value(group).build());
}
}

View File

@@ -2,6 +2,10 @@ package dev.sheldan.abstracto.core.interaction.slash;
import dev.sheldan.abstracto.core.command.config.UserCommandConfig;
import dev.sheldan.abstracto.core.utils.ContextUtils;
import java.util.Arrays;
import java.util.Objects;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.Getter;
@@ -67,4 +71,13 @@ public class SlashCommandConfig {
public String getUserSlashCompatibleCommandName() {
return userCommandName != null ? userCommandName.toLowerCase(Locale.ROOT) : null;
}
public String getSlashCommandPath() {
String root = getSlashCompatibleRootName();
String group = getSlashCompatibleGroupName();
String command = getSlashCompatibleCommandName();
return Stream.of(root, group, command)
.filter(Objects::nonNull)
.collect(Collectors.joining(" "));
}
}

View File

@@ -0,0 +1,10 @@
package dev.sheldan.abstracto.core.models.template.commands;
import lombok.Builder;
import lombok.Getter;
@Getter
@Builder
public class SlashCommandSuggestionModel {
private String slashCommandPath;
}