This commit is contained in:
kento2 2026-07-07 21:06:57 +02:00
parent a2d1153ae8
commit a8807c9d7e
7 changed files with 16 additions and 11 deletions

View file

@ -7,6 +7,7 @@ import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;
import java.util.Arrays;
import java.util.stream.Stream;
public class BukkitKenCommand extends Command {
@ -26,7 +27,8 @@ public class BukkitKenCommand extends Command {
@Override
public boolean execute(@NotNull CommandSender sender, @NotNull String commandLabel, @NotNull String[] args) {
commandHandler.invoke(rootNode, sender, args);
commandHandler.invoke(rootNode, sender, Stream.of(args)
.filter(str -> !str.isEmpty()));
return true;
}
}

View file

@ -2,15 +2,16 @@ package de.kentoj.kencommandapi.api;
import de.kentoj.kencommandapi.api.invocation.CommandContext;
import de.kentoj.kencommandapi.api.literal.RootLiteral;
import de.kentoj.kencommandapi.api.parser.CommandParseHelper;
import de.kentoj.kencommandapi.api.parser.InvocationCommandParser;
import de.kentoj.kencommandapi.api.parser.SuggestionCommandParser;
import de.kentoj.kencommandapi.internal.parser.CommandParseHelper;
import de.kentoj.kencommandapi.internal.parser.InvocationCommandParser;
import de.kentoj.kencommandapi.internal.parser.SuggestionCommandParser;
import de.kentoj.kencommandapi.api.platform.HasPermissionMethod;
import de.kentoj.kencommandapi.api.platform.SendMessageMethod;
import lombok.RequiredArgsConstructor;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
@RequiredArgsConstructor
public class CommandHandler<T> {
@ -28,8 +29,8 @@ public class CommandHandler<T> {
}
@SuppressWarnings("CodeBlock2Expr")
public void invoke(RootLiteral<T> rootLiteral, T sender, String[] args) {
invocationParser.parse(rootLiteral, sender, Arrays.stream(args).iterator())
public void invoke(RootLiteral<T> rootLiteral, T sender, Stream<String> args) {
invocationParser.parse(rootLiteral, sender, args.toList().iterator())
.ifSuccessOrElse(data -> {
var ctx = new CommandContext<>(sender, data.getArguments());
data.getExecutor().execute(ctx).whenComplete((result, ex) -> {
@ -44,7 +45,6 @@ public class CommandHandler<T> {
}
public List<String> getSuggestions(RootLiteral<T> rootNode, T sender, String[] args, boolean trailingSpace) {
System.out.println("youre using the latest n greatest command parsing 3");
return suggestionParser.suggest(rootNode, sender, Arrays.stream(args).iterator(), trailingSpace);
}
}

View file

@ -1,4 +1,4 @@
package de.kentoj.kencommandapi.api.parser;
package de.kentoj.kencommandapi.internal.parser;
import de.kentoj.kencommandapi.api.literal.Literal;
import de.kentoj.kencommandapi.api.platform.HasPermissionMethod;

View file

@ -1,4 +1,4 @@
package de.kentoj.kencommandapi.api.parser;
package de.kentoj.kencommandapi.internal.parser;
import com.leakyabstractions.result.api.Result;
import com.leakyabstractions.result.core.Results;

View file

@ -1,4 +1,4 @@
package de.kentoj.kencommandapi.api.parser;
package de.kentoj.kencommandapi.internal.parser;
import de.kentoj.kencommandapi.api.literal.Literal;
import de.kentoj.kencommandapi.api.literal.RootLiteral;

View file

@ -5,6 +5,7 @@ import de.kentoj.kencommandapi.api.argument.types.StringArgumentType;
import de.kentoj.kencommandapi.api.literal.Literal;
import de.kentoj.kencommandapi.api.literal.RootLiteral;
import de.kentoj.kencommandapi.api.platform.MessageStyle;
import de.kentoj.kencommandapi.internal.parser.SuggestionCommandParser;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;

View file

@ -6,6 +6,7 @@ import de.kentoj.kencommandapi.api.CommandHandler;
import de.kentoj.kencommandapi.api.literal.RootLiteral;
import lombok.RequiredArgsConstructor;
import java.util.Arrays;
import java.util.List;
@RequiredArgsConstructor
@ -16,7 +17,8 @@ public class VelocityCommand implements RawCommand {
@Override
public void execute(Invocation invocation) {
var args = invocation.arguments().split(" ");
var args = Arrays.stream(invocation.arguments().split(" "))
.filter(a -> !a.isEmpty());
commandHandler.invoke(rootNode, invocation.source(), args);
}