.
This commit is contained in:
parent
a2d1153ae8
commit
a8807c9d7e
7 changed files with 16 additions and 11 deletions
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -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;
|
||||||
|
|
@ -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;
|
||||||
|
|
@ -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;
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue