Clean up StringParser
This commit is contained in:
parent
d6e17a0d99
commit
75e59c9fe6
1 changed files with 58 additions and 48 deletions
|
|
@ -311,6 +311,16 @@ public final class StringArgument<C> extends CommandArgument<C, String> {
|
|||
inputQueue.remove();
|
||||
return ArgumentParseResult.success(input);
|
||||
} else if (this.stringMode == StringMode.QUOTED) {
|
||||
return this.parseQuoted(commandContext, inputQueue);
|
||||
} else {
|
||||
return this.parseGreedy(commandContext, inputQueue);
|
||||
}
|
||||
}
|
||||
|
||||
private @NonNull ArgumentParseResult<String> parseQuoted(
|
||||
final @NonNull CommandContext<C> commandContext,
|
||||
final @NonNull Queue<@NonNull String> inputQueue
|
||||
) {
|
||||
final StringJoiner sj = new StringJoiner(" ");
|
||||
for (final String string : inputQueue) {
|
||||
sj.add(string);
|
||||
|
|
@ -358,15 +368,15 @@ public final class StringArgument<C> extends CommandArgument<C, String> {
|
|||
return ArgumentParseResult.success(inner);
|
||||
}
|
||||
|
||||
private @NonNull ArgumentParseResult<String> parseGreedy(
|
||||
final @NonNull CommandContext<C> commandContext,
|
||||
final @NonNull Queue<@NonNull String> inputQueue
|
||||
) {
|
||||
final StringJoiner sj = new StringJoiner(" ");
|
||||
final int size = inputQueue.size();
|
||||
|
||||
boolean started = false;
|
||||
boolean finished = false;
|
||||
|
||||
char start = ' ';
|
||||
for (int i = 0; i < size; i++) {
|
||||
String string = inputQueue.peek();
|
||||
final String string = inputQueue.peek();
|
||||
|
||||
if (string == null) {
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue