mirror of
https://github.com/Minestom/Minestom.git
synced 2024-07-01 08:54:57 +02:00
Redo argsValues
(Until / if theres a better solution)
This commit is contained in:
parent
01b4a1b582
commit
b770710e0d
|
@ -140,13 +140,13 @@ public class CommandDispatcher {
|
||||||
// List of all arguments in the current syntax
|
// List of all arguments in the current syntax
|
||||||
final Argument<?>[] arguments = syntax.getArguments();
|
final Argument<?>[] arguments = syntax.getArguments();
|
||||||
// Empty object containing the maximum amount of argument results of the syntax.
|
// Empty object containing the maximum amount of argument results of the syntax.
|
||||||
final Object[] argsValues = new Object[arguments.length];
|
final List<Object> argsValues = new ArrayList<>(arguments.length);
|
||||||
|
|
||||||
boolean syntaxCorrect = true;
|
boolean syntaxCorrect = true;
|
||||||
// The current index in the raw command string arguments
|
// The current index in the raw command string arguments
|
||||||
int splitIndex = 0;
|
int splitIndex = 0;
|
||||||
|
|
||||||
boolean useRemaining;
|
boolean useRemaining = false;
|
||||||
// Check the validity of the arguments...
|
// Check the validity of the arguments...
|
||||||
for (int argCount = 0; argCount < arguments.length; argCount++) {
|
for (int argCount = 0; argCount < arguments.length; argCount++) {
|
||||||
final boolean lastArgumentIteration = argCount + 1 == arguments.length;
|
final boolean lastArgumentIteration = argCount + 1 == arguments.length;
|
||||||
|
@ -179,7 +179,7 @@ public class CommandDispatcher {
|
||||||
try {
|
try {
|
||||||
parsedValue = argument.parse(argValueString);
|
parsedValue = argument.parse(argValueString);
|
||||||
correct = true;
|
correct = true;
|
||||||
argsValues[argCount] = parsedValue;
|
argsValues.add(parsedValue);
|
||||||
} catch (ArgumentSyntaxException exception) {
|
} catch (ArgumentSyntaxException exception) {
|
||||||
argumentSyntaxException = exception;
|
argumentSyntaxException = exception;
|
||||||
}
|
}
|
||||||
|
@ -206,7 +206,7 @@ public class CommandDispatcher {
|
||||||
}
|
}
|
||||||
|
|
||||||
correct = true;
|
correct = true;
|
||||||
argsValues[argCount] = parsedValue;
|
argsValues.add(parsedValue);
|
||||||
splitIndex = i + 1;
|
splitIndex = i + 1;
|
||||||
break;
|
break;
|
||||||
} catch (ArgumentSyntaxException exception) {
|
} catch (ArgumentSyntaxException exception) {
|
||||||
|
@ -234,11 +234,13 @@ public class CommandDispatcher {
|
||||||
|
|
||||||
// Add the syntax to the list of valid syntaxes if correct
|
// Add the syntax to the list of valid syntaxes if correct
|
||||||
if (syntaxCorrect) {
|
if (syntaxCorrect) {
|
||||||
ValidSyntaxHolder validSyntaxHolder = new ValidSyntaxHolder();
|
if (arguments.length == argsValues.size() || useRemaining) {
|
||||||
validSyntaxHolder.syntax = syntax;
|
ValidSyntaxHolder validSyntaxHolder = new ValidSyntaxHolder();
|
||||||
validSyntaxHolder.argumentsValue = argsValues;
|
validSyntaxHolder.syntax = syntax;
|
||||||
|
validSyntaxHolder.argumentsValue = argsValues;
|
||||||
|
|
||||||
validSyntaxes.add(validSyntaxHolder);
|
validSyntaxes.add(validSyntaxHolder);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -304,9 +306,9 @@ public class CommandDispatcher {
|
||||||
|
|
||||||
final Argument<?>[] arguments = syntax.getArguments();
|
final Argument<?>[] arguments = syntax.getArguments();
|
||||||
final int argumentsCount = arguments.length;
|
final int argumentsCount = arguments.length;
|
||||||
final Object[] argsValues = validSyntaxHolder.argumentsValue;
|
final List<Object> argsValues = validSyntaxHolder.argumentsValue;
|
||||||
|
|
||||||
final int argsSize = argsValues.length;
|
final int argsSize = argsValues.size();
|
||||||
|
|
||||||
if (argsSize > maxArguments) {
|
if (argsSize > maxArguments) {
|
||||||
finalSyntax = syntax;
|
finalSyntax = syntax;
|
||||||
|
@ -316,7 +318,7 @@ public class CommandDispatcher {
|
||||||
Arguments syntaxValues = new Arguments();
|
Arguments syntaxValues = new Arguments();
|
||||||
for (int i = 0; i < argumentsCount; i++) {
|
for (int i = 0; i < argumentsCount; i++) {
|
||||||
final Argument<?> argument = arguments[i];
|
final Argument<?> argument = arguments[i];
|
||||||
final Object argumentValue = argsValues[i];
|
final Object argumentValue = argsValues.get(i);
|
||||||
|
|
||||||
syntaxValues.setArg(argument.getId(), argumentValue);
|
syntaxValues.setArg(argument.getId(), argumentValue);
|
||||||
}
|
}
|
||||||
|
@ -340,7 +342,7 @@ public class CommandDispatcher {
|
||||||
/**
|
/**
|
||||||
* (Argument index/Argument parsed object)
|
* (Argument index/Argument parsed object)
|
||||||
*/
|
*/
|
||||||
private Object[] argumentsValue;
|
private List<Object> argumentsValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue
Block a user