Add SimpleCommand.Invocation#alias function.

It seems like this ability is generally useful outside RawCommand, so let's add this to SimpleCommand too.
This commit is contained in:
Andrew Steinborn 2020-08-15 16:41:35 -04:00
parent 7dffa7ce33
commit 1717d7f9b4
2 changed files with 18 additions and 2 deletions

View File

@ -16,5 +16,11 @@ public interface SimpleCommand extends InvocableCommand<SimpleCommand.Invocation
*/
interface Invocation extends CommandInvocation<String @NonNull []> {
/**
* Returns the used alias to execute the command.
*
* @return the used command alias
*/
String alias();
}
}

View File

@ -15,11 +15,21 @@ final class VelocitySimpleCommandInvocation extends AbstractCommandInvocation<St
@Override
public SimpleCommand.Invocation create(final CommandContext<CommandSource> context) {
final String[] arguments = BrigadierUtils.getSplitArguments(context);
return new VelocitySimpleCommandInvocation(context.getSource(), arguments);
final String alias = BrigadierUtils.getAlias(context);
return new VelocitySimpleCommandInvocation(context.getSource(), alias, arguments);
}
}
VelocitySimpleCommandInvocation(final CommandSource source, final String[] arguments) {
private final String alias;
VelocitySimpleCommandInvocation(final CommandSource source, final String alias,
final String[] arguments) {
super(source, arguments);
this.alias = alias;
}
@Override
public String alias() {
return this.alias;
}
}