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 org.jetbrains.annotations.NotNull;
import java.util.Arrays; import java.util.Arrays;
import java.util.stream.Stream;
public class BukkitKenCommand extends Command { public class BukkitKenCommand extends Command {
@ -26,7 +27,8 @@ public class BukkitKenCommand extends Command {
@Override @Override
public boolean execute(@NotNull CommandSender sender, @NotNull String commandLabel, @NotNull String[] args) { 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; 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.invocation.CommandContext;
import de.kentoj.kencommandapi.api.literal.RootLiteral; import de.kentoj.kencommandapi.api.literal.RootLiteral;
import de.kentoj.kencommandapi.api.parser.CommandParseHelper; import de.kentoj.kencommandapi.internal.parser.CommandParseHelper;
import de.kentoj.kencommandapi.api.parser.InvocationCommandParser; import de.kentoj.kencommandapi.internal.parser.InvocationCommandParser;
import de.kentoj.kencommandapi.api.parser.SuggestionCommandParser; import de.kentoj.kencommandapi.internal.parser.SuggestionCommandParser;
import de.kentoj.kencommandapi.api.platform.HasPermissionMethod; import de.kentoj.kencommandapi.api.platform.HasPermissionMethod;
import de.kentoj.kencommandapi.api.platform.SendMessageMethod; import de.kentoj.kencommandapi.api.platform.SendMessageMethod;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Stream;
@RequiredArgsConstructor @RequiredArgsConstructor
public class CommandHandler<T> { public class CommandHandler<T> {
@ -28,8 +29,8 @@ public class CommandHandler<T> {
} }
@SuppressWarnings("CodeBlock2Expr") @SuppressWarnings("CodeBlock2Expr")
public void invoke(RootLiteral<T> rootLiteral, T sender, String[] args) { public void invoke(RootLiteral<T> rootLiteral, T sender, Stream<String> args) {
invocationParser.parse(rootLiteral, sender, Arrays.stream(args).iterator()) invocationParser.parse(rootLiteral, sender, args.toList().iterator())
.ifSuccessOrElse(data -> { .ifSuccessOrElse(data -> {
var ctx = new CommandContext<>(sender, data.getArguments()); var ctx = new CommandContext<>(sender, data.getArguments());
data.getExecutor().execute(ctx).whenComplete((result, ex) -> { 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) { 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); 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.literal.Literal;
import de.kentoj.kencommandapi.api.platform.HasPermissionMethod; 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.api.Result;
import com.leakyabstractions.result.core.Results; 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.Literal;
import de.kentoj.kencommandapi.api.literal.RootLiteral; 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.Literal;
import de.kentoj.kencommandapi.api.literal.RootLiteral; import de.kentoj.kencommandapi.api.literal.RootLiteral;
import de.kentoj.kencommandapi.api.platform.MessageStyle; import de.kentoj.kencommandapi.api.platform.MessageStyle;
import de.kentoj.kencommandapi.internal.parser.SuggestionCommandParser;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import java.util.ArrayList; import java.util.ArrayList;

View file

@ -6,6 +6,7 @@ import de.kentoj.kencommandapi.api.CommandHandler;
import de.kentoj.kencommandapi.api.literal.RootLiteral; import de.kentoj.kencommandapi.api.literal.RootLiteral;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import java.util.Arrays;
import java.util.List; import java.util.List;
@RequiredArgsConstructor @RequiredArgsConstructor
@ -16,7 +17,8 @@ public class VelocityCommand implements RawCommand {
@Override @Override
public void execute(Invocation invocation) { 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); commandHandler.invoke(rootNode, invocation.source(), args);
} }