fix it
This commit is contained in:
parent
81a36c0440
commit
f5109f9789
1 changed files with 6 additions and 7 deletions
|
|
@ -1,7 +1,6 @@
|
|||
package de.kencommand.impl;
|
||||
|
||||
import de.kencommand.api.KenCommandApi;
|
||||
import de.kencommand.api.processing.CommandExecutor;
|
||||
import de.kencommand.api.processing.ParsedArgument;
|
||||
import de.kencommand.api.structure.argument.ArgumentType;
|
||||
import de.kencommand.api.structure.argument.CommandArgument;
|
||||
|
|
@ -34,20 +33,20 @@ public class KenCommandApiImpl<T> implements KenCommandApi<T> {
|
|||
public void invoke(CommandNode<T> node, T sender, String[] args) {
|
||||
var iter = Arrays.stream(args).iterator();
|
||||
|
||||
var executor = processLiterals(node, iter);
|
||||
var parsedArguments = parseArguments(node, iter);
|
||||
executor.execute(new CommandContextImpl<>(sender, parsedArguments));
|
||||
var executableLiteral = processLiterals(node, iter);
|
||||
var parsedArguments = parseArguments(executableLiteral, iter);
|
||||
executableLiteral.getExecutor().execute(new CommandContextImpl<>(sender, parsedArguments));
|
||||
}
|
||||
|
||||
private CommandExecutor<T> processLiterals(CommandNode<T> commandNode, Iterator<String> iter) {
|
||||
private CommandNode<T> processLiterals(CommandNode<T> commandNode, Iterator<String> iter) {
|
||||
if (!iter.hasNext()) {
|
||||
// literals/arguments are optional if the node itself is executable
|
||||
if (commandNode.getExecutor() == null) throw new RuntimeException("no literal given but required");
|
||||
return commandNode.getExecutor();
|
||||
return commandNode;
|
||||
}
|
||||
|
||||
if (commandNode.getLiterals().isEmpty()) {
|
||||
return commandNode.getExecutor();
|
||||
return commandNode;
|
||||
}
|
||||
|
||||
final var arg = iter.next();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue