.
This commit is contained in:
parent
fc431bf8df
commit
81a36c0440
8 changed files with 111 additions and 23 deletions
|
|
@ -1,17 +1,14 @@
|
|||
package de.kencommand.api;
|
||||
|
||||
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;
|
||||
import de.kencommand.api.structure.node.CommandNode;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
public interface KenCommandApi<T> {
|
||||
|
||||
CommandNode<T> createNode(String... name);
|
||||
|
||||
<V> CommandArgument<T, V> createArgument(String id, ArgumentType<V> type);
|
||||
|
||||
void invoke(CommandNode<T> node, T sender, String[] args);
|
||||
|
||||
CommandExecutor<T> processLiterals(CommandNode<T> node, Iterator<String> argsIterator);
|
||||
|
||||
Map<String, ParsedArgument<T, ?>> parseArguments(CommandNode<T> node, Iterator<String> argsIterator);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package de.kencommand.api.structure.argument;
|
||||
|
||||
import de.kencommand.api.processing.CommandContext;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
package de.kencommand.api.structure.argument.suggestion;
|
||||
|
||||
import de.kencommand.api.processing.CommandContext;
|
||||
import de.kencommand.api.structure.argument.SuggestionProvider;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
@NoArgsConstructor(access = AccessLevel.NONE)
|
||||
public class NoSuggestionProvider implements SuggestionProvider<Object> {
|
||||
|
||||
@Getter(value = AccessLevel.PRIVATE, lazy = true)
|
||||
private static final SuggestionProvider<Object> instance = new NoSuggestionProvider();
|
||||
|
||||
public static SuggestionProvider<Object> create() {
|
||||
return getInstance();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> suggest(CommandContext<Object> context) {
|
||||
return Set.of();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
package de.kencommand.api.structure.argument.types;
|
||||
|
||||
import de.kencommand.api.structure.argument.ArgumentType;
|
||||
import de.kencommand.api.structure.argument.SuggestionProvider;
|
||||
import de.kencommand.api.structure.argument.suggestion.NoSuggestionProvider;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public class IntegerArgumentType implements ArgumentType<Integer> {
|
||||
|
||||
@Override
|
||||
public Integer parseInput(String string) {
|
||||
return Integer.parseInt(string);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SuggestionProvider<?> defaultSuggestionProvider() {
|
||||
return NoSuggestionProvider.create();
|
||||
}
|
||||
|
||||
public static IntegerArgumentType create() {
|
||||
return new IntegerArgumentType();
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue