Compare commits

..

2 Commits

Author SHA1 Message Date
9058629af5
remove redundant getFullSlashCommand
All checks were successful
github-mirror / push-github (push) Successful in 4s
Build / Gradle-Build (push) Successful in 11s
Test / Gradle-Test (push) Successful in 21s
2025-02-19 21:50:54 +01:00
8f14b0feb9
split up getSubCommands 2025-02-19 21:49:12 +01:00
3 changed files with 30 additions and 27 deletions

View File

@ -51,21 +51,16 @@ public class SlashCommandDefinition {
subCommandGroupMap.put(x.name(), x); subCommandGroupMap.put(x.name(), x);
}); });
return subCommandGroupMap.values().toArray(new SubCommandGroup[0]); return subCommandGroupMap.values().toArray(SubCommandGroup[]::new);
} }
public SubCommand[] getSubCommands(String groupName) { public SubCommand[] getSubCommands() {
List<SubCommand> subCommands; List<SubCommand> subCommands;
if (groupName == null) subCommands = Arrays.stream(getExecutableDefinitons())
subCommands = Arrays.stream(getExecutableDefinitons()) .filter((x) -> x.subCommandGroup() == null && x.subCommand() != null)
.filter((x) -> x.subCommandGroup() == null && x.subCommand() != null) .map((x) -> x.subCommand())
.map((x) -> x.subCommand()) .toList();
.toList();
else
subCommands = Arrays.stream(getExecutableDefinitons())
.filter((x) -> x.subCommandGroup().name().equals(groupName) && x.subCommand() != null)
.map((x) -> x.subCommand())
.toList();
HashMap<String, SubCommand> subCommandMap = new HashMap<>(); HashMap<String, SubCommand> subCommandMap = new HashMap<>();
subCommands.forEach((x) -> { subCommands.forEach((x) -> {
@ -74,18 +69,24 @@ public class SlashCommandDefinition {
subCommandMap.put(x.name(), x); subCommandMap.put(x.name(), x);
}); });
return subCommandMap.values().toArray(new SubCommand[0]); return subCommandMap.values().toArray(SubCommand[]::new);
} }
public SlashCommand getFullSlashCommand() { public SubCommand[] getSubCommands(String groupName) {
if (isRootCommand()) List<SubCommand> subCommands;
return getSlashCommand(); subCommands = Arrays.stream(getExecutableDefinitons())
for (ExecutableSlashCommandDefinition executableSlashCommandDefinition : executableDefinitons) { .filter((x) -> x.subCommandGroup().name().equals(groupName) && x.subCommand() != null)
if (executableSlashCommandDefinition.options().length > 0) .map((x) -> x.subCommand())
return executableSlashCommandDefinition.applicationCommand(); .toList();
}
return null; HashMap<String, SubCommand> subCommandMap = new HashMap<>();
subCommands.forEach((x) -> {
SubCommand current = subCommandMap.get(x.name());
if (current == null || (current.description().isBlank() && !x.description().isBlank()))
subCommandMap.put(x.name(), x);
});
return subCommandMap.values().toArray(SubCommand[]::new);
} }
public SlashCommand getSlashCommand() { public SlashCommand getSlashCommand() {

View File

@ -81,8 +81,8 @@ public class Discord4JWrapper extends LibraryWrapper {
for (SlashCommandDefinition slashCommandDefinition : defs) { for (SlashCommandDefinition slashCommandDefinition : defs) {
ApplicationCommandRequest request = convertSlashCommand(slashCommandDefinition); ApplicationCommandRequest request = convertSlashCommand(slashCommandDefinition);
if (slashCommandDefinition.getFullSlashCommand().serverIds().length > 0) { if (slashCommandDefinition.getSlashCommand().serverIds().length > 0) {
for (long serverId : slashCommandDefinition.getFullSlashCommand().serverIds()) { for (long serverId : slashCommandDefinition.getSlashCommand().serverIds()) {
serverCommands.putIfAbsent(serverId, new ArrayList<>()); serverCommands.putIfAbsent(serverId, new ArrayList<>());
serverCommands.get(serverId).add(request); serverCommands.get(serverId).add(request);
} }
@ -132,7 +132,7 @@ public class Discord4JWrapper extends LibraryWrapper {
private ApplicationCommandRequest convertSlashCommand(SlashCommandDefinition def) { private ApplicationCommandRequest convertSlashCommand(SlashCommandDefinition def) {
List<ApplicationCommandOptionData> options = new ArrayList<>(); List<ApplicationCommandOptionData> options = new ArrayList<>();
SlashCommand cmd = def.getFullSlashCommand(); SlashCommand cmd = def.getSlashCommand();
if (!def.isRootCommand()) { if (!def.isRootCommand()) {
Arrays.stream(def.getSubCommands(null)).map(this::convertSubCommandDef).forEach(options::add); Arrays.stream(def.getSubCommands(null)).map(this::convertSubCommandDef).forEach(options::add);
Arrays.stream(def.getSubCommandGroups()).map((x) -> convertSubCommandGroupDef(def, x)).forEach(options::add); Arrays.stream(def.getSubCommandGroups()).map((x) -> convertSubCommandGroupDef(def, x)).forEach(options::add);
@ -191,6 +191,7 @@ public class Discord4JWrapper extends LibraryWrapper {
builder.value(choice.doubleValue()); builder.value(choice.doubleValue());
if (!choice.stringValue().isEmpty()) if (!choice.stringValue().isEmpty())
builder.value(choice.stringValue()); builder.value(choice.stringValue());
convertedChoices.add(builder.build());
} }
return convertedChoices; return convertedChoices;
} }

View File

@ -65,8 +65,8 @@ public class JavacordWrapper extends LibraryWrapper {
Set<SlashCommandBuilder> globalCommands = new HashSet<>(); Set<SlashCommandBuilder> globalCommands = new HashSet<>();
for (SlashCommandDefinition slashCommandDefinition : defs) { for (SlashCommandDefinition slashCommandDefinition : defs) {
SlashCommandBuilder builder = convertSlashCommand(slashCommandDefinition); SlashCommandBuilder builder = convertSlashCommand(slashCommandDefinition);
if (slashCommandDefinition.getFullSlashCommand().serverIds().length > 0) { if (slashCommandDefinition.getSlashCommand().serverIds().length > 0) {
for (long serverId : slashCommandDefinition.getFullSlashCommand().serverIds()) { for (long serverId : slashCommandDefinition.getSlashCommand().serverIds()) {
serverCommands.putIfAbsent(serverId, new HashSet<>()); serverCommands.putIfAbsent(serverId, new HashSet<>());
serverCommands.get(serverId).add(builder); serverCommands.get(serverId).add(builder);
} }
@ -106,7 +106,7 @@ public class JavacordWrapper extends LibraryWrapper {
private SlashCommandBuilder convertSlashCommand(SlashCommandDefinition def) { private SlashCommandBuilder convertSlashCommand(SlashCommandDefinition def) {
List<org.javacord.api.interaction.SlashCommandOption> options = new ArrayList<>(); List<org.javacord.api.interaction.SlashCommandOption> options = new ArrayList<>();
SlashCommand cmd = def.getFullSlashCommand(); SlashCommand cmd = def.getSlashCommand();
if (!def.isRootCommand()) { if (!def.isRootCommand()) {
Arrays.stream(def.getSubCommands(null)).map(this::convertSubCommandDef).forEach(options::add); Arrays.stream(def.getSubCommands(null)).map(this::convertSubCommandDef).forEach(options::add);
Arrays.stream(def.getSubCommandGroups()).map((x) -> convertSubCommandGroupDef(def, x)).forEach(options::add); Arrays.stream(def.getSubCommandGroups()).map((x) -> convertSubCommandGroupDef(def, x)).forEach(options::add);
@ -164,6 +164,7 @@ public class JavacordWrapper extends LibraryWrapper {
*/ */
if (!choice.stringValue().isEmpty()) if (!choice.stringValue().isEmpty())
builder.setValue(choice.stringValue()); builder.setValue(choice.stringValue());
convertedChoices.add(builder.build());
} }
return convertedChoices; return convertedChoices;
} }