AbstractCommand

abstract class AbstractCommand

Base class for all server commands. Provides command registration, argument parsing, permission handling, tab completion, and subcommand support.

java.lang.Object > AbstractCommand

Field Summary

parentCommand

private AbstractCommand parentCommand

Field parentCommand.

owner

private CommandOwner owner

Field owner.

permission

private String permission

Field permission.

permissionGroups

private List permissionGroups

Field permissionGroups.

totalNumRequiredParameters

private int totalNumRequiredParameters

Field totalNumRequiredParameters.

unavailableInSingleplayer

private boolean unavailableInSingleplayer

Field unavailableInSingleplayer.

allowsExtraArguments

private boolean allowsExtraArguments

Field allowsExtraArguments.

hasBeenRegistered

private boolean hasBeenRegistered

Field hasBeenRegistered.

selfNode

final String selfNode

Field selfNode.

parentPermission

final String parentPermission

Field parentPermission.

descriptionMessage

final String descriptionMessage

Field descriptionMessage.

description

final String description

Field description.

usageDescription

final String usageDescription

Field usageDescription.

result

final MatchResult result

Field result.

defaultArg

final DefaultArg defaultArg

Field defaultArg.

variantWithSameNumRequiredParameters

final AbstractCommand variantWithSameNumRequiredParameters

Field variantWithSameNumRequiredParameters.

numberOfPreOptionalTokens

final int numberOfPreOptionalTokens

Field numberOfPreOptionalTokens.

completableFutureBooleanPair

final ObjectBooleanPair> completableFutureBooleanPair

Field completableFutureBooleanPair.

commandNames

final HashSet commandNames

Field commandNames.

firstToken

final String firstToken

Field firstToken.

commandSuggestionPrefix

final String commandSuggestionPrefix

Field commandSuggestionPrefix.

suggestedCommands

final String suggestedCommands

Field suggestedCommands.

commandContext

final CommandContext commandContext

Field commandContext.

subCommand

final AbstractCommand subCommand

Field subCommand.

alias

final String alias

Field alias.

commandVariant

final AbstractCommand commandVariant

Field commandVariant.

preOptionalTokenContext

final ParserContext.PreOptionalListContext preOptionalTokenContext

Field preOptionalTokenContext.

argParameters

final String[] argParameters

Field argParameters.

optionalArgValues

final List> optionalArgValues

Field optionalArgValues.

optionalArgParseValues

final String[] optionalArgParseValues

Field optionalArgParseValues.

values

final List values

Field values.

requiredArgsMessage

final Message requiredArgsMessage

Field requiredArgsMessage.

requiresConfirmationMessage

final Message requiresConfirmationMessage

Field requiresConfirmationMessage.

flagArg

final FlagArg flagArg

Field flagArg.

ignored

final OptionalArg ignored

Field ignored.

ignored2

final DefaultArg ignored2

Field ignored2.

ignored3

final FlagArg ignored3

Field ignored3.

variantsMessage

final Message variantsMessage

Field variantsMessage.

subcommandsMessage

final Message subcommandsMessage

Field subcommandsMessage.

argTypesMessage

final Message argTypesMessage

Field argTypesMessage.

allArgumentTypes

final HashSet> allArgumentTypes

Field allArgumentTypes.

indent

final String indent

Field indent.

prefix

final String prefix

Field prefix.

message

final Message message

Field message.

fullyQualifiedName

final String fullyQualifiedName

Field fullyQualifiedName.

handle

final MethodHandle handle

Field handle.

Method Detail

AbstractCommand

public protected AbstractCommand (@Nullable final String name, @Nullable final String description, final boolean requiresConfirmation)

Method AbstractCommand.

Parameters:
@Nullable final String name
@Nullable final String description
final boolean requiresConfirmation

FlagArg

public new FlagArg (this, "confirm", "")

Method FlagArg.

Parameters:
this this
"confirm" "confirm"
"" ""

setOwner

public void setOwner (@Nonnull final CommandOwner owner)

Method setOwner.

Parameters:
@Nonnull final CommandOwner owner

canGeneratePermission

protected boolean canGeneratePermission ()

Method canGeneratePermission.

generatePermissionNode

protected String generatePermissionNode ()

Method generatePermissionNode.

generatePermission

private String generatePermission ()

Method generatePermission.

getPermissionGroups

public List getPermissionGroups ()

Method getPermissionGroups.

setPermissionGroups

protected void setPermissionGroups (@Nonnull final String... groups)

Method setPermissionGroups.

Parameters:
@Nonnull final String... groups

setPermissionGroup

protected void setPermissionGroup (@Nullable final GameMode gameMode)

Method setPermissionGroup.

Parameters:
@Nullable final GameMode gameMode

getPermissionGroupsRecursive

public Set> getPermissionGroupsRecursive ()

Method getPermissionGroupsRecursive.

putRecursivePermissionGroups

public void putRecursivePermissionGroups (@Nonnull final Map> permissionsByGroup)

Method putRecursivePermissionGroups.

Parameters:
@Nonnull final Map> permissionsByGroup

HashSet

public new HashSet ()

Method HashSet.

setUnavailableInSingleplayer

protected void setUnavailableInSingleplayer (final boolean unavailableInSingleplayer)

Method setUnavailableInSingleplayer.

Parameters:
final boolean unavailableInSingleplayer

setAllowsExtraArguments

public void setAllowsExtraArguments (final boolean allowsExtraArguments)

Method setAllowsExtraArguments.

Parameters:
final boolean allowsExtraArguments

matches

public MatchResult matches (@Nonnull final String language, @Nonnull final String search, final int termDepth)

Method matches.

Parameters:
@Nonnull final String language
@Nonnull final String search
final int termDepth

completeRegistration

public void completeRegistration ()

Method completeRegistration.

ParseResult

public new ParseResult (true)

Method ParseResult.

Parameters:
true true

createOptionalArgumentAbbreviationMap

private void createOptionalArgumentAbbreviationMap ()

Method createOptionalArgumentAbbreviationMap.

validateVariantNumberOfRequiredParameters

private void validateVariantNumberOfRequiredParameters (@Nonnull final ParseResult result)

Method validateVariantNumberOfRequiredParameters.

Parameters:
@Nonnull final ParseResult result

validateDefaultArguments

private void validateDefaultArguments (@Nonnull final ParseResult parseResult)

Method validateDefaultArguments.

Parameters:
@Nonnull final ParseResult parseResult

requirePermission

public void requirePermission (@Nonnull final String permission)

Method requirePermission.

Parameters:
@Nonnull final String permission

getFullyQualifiedName

public String getFullyQualifiedName ()

Method getFullyQualifiedName.

countParents

public int countParents ()

Method countParents.

addAliases

public void addAliases (@Nonnull final String... aliases)

Method addAliases.

Parameters:
@Nonnull final String... aliases

addSubCommand

public void addSubCommand (@Nonnull final AbstractCommand command)

Method addSubCommand.

Parameters:
@Nonnull final AbstractCommand command

addUsageVariant

public void addUsageVariant (@Nonnull final AbstractCommand command)

Method addUsageVariant.

Parameters:
@Nonnull final AbstractCommand command

acceptCall

public CompletableFuture acceptCall (@Nonnull final CommandSender sender, @Nonnull final ParserContext parserContext, @Nonnull final ParseResult parseResult)

Method acceptCall.

Parameters:
@Nonnull final CommandSender sender
@Nonnull final ParserContext parserContext
@Nonnull final ParseResult parseResult

acceptCall0

private CompletableFuture acceptCall0 (@Nonnull final CommandSender sender, @Nonnull final ParserContext parserContext, @Nonnull final ParseResult parseResult)

Method acceptCall0.

Parameters:
@Nonnull final CommandSender sender
@Nonnull final ParserContext parserContext
@Nonnull final ParseResult parseResult

if

public else if (this.totalNumRequiredParameters != numberOfPreOptionalTokens)

Method if.

Parameters:
this.totalNumRequiredParameters != numberOfPreOptionalTokens

CommandContext

public new CommandContext (this, sender, parserContext.getInputString()

Method CommandContext.

Parameters:
this this
sender sender
parserContext.getInputString( parserContext.getInputString(

hasPermission

public boolean hasPermission (@Nonnull final CommandSender sender)

Method hasPermission.

Parameters:
@Nonnull final CommandSender sender

checkForExecutingSubcommands

private ObjectBooleanPair> checkForExecutingSubcommands (@Nonnull final CommandSender sender, @Nonnull final ParserContext parserContext, @Nonnull final ParseResult parseResult, final int numberOfPreOptionalTokens)

Method checkForExecutingSubcommands.

Parameters:
@Nonnull final CommandSender sender
@Nonnull final ParserContext parserContext
@Nonnull final ParseResult parseResult
final int numberOfPreOptionalTokens

processRequiredArguments

private void processRequiredArguments (@Nonnull final ParserContext parserContext, @Nonnull final ParseResult parseResult, @Nonnull final CommandContext commandContext)

Method processRequiredArguments.

Parameters:
@Nonnull final ParserContext parserContext
@Nonnull final ParseResult parseResult
@Nonnull final CommandContext commandContext

processOptionalArguments

private void processOptionalArguments (@Nonnull final ParserContext parserContext, @Nonnull final ParseResult parseResult, @Nonnull final CommandContext commandContext)

Method processOptionalArguments.

Parameters:
@Nonnull final ParserContext parserContext
@Nonnull final ParseResult parseResult
@Nonnull final CommandContext commandContext

getUsageString

public Message getUsageString (@Nonnull final CommandSender sender)

Method getUsageString.

Parameters:
@Nonnull final CommandSender sender

getUsageShort

public Message getUsageShort (@Nonnull final CommandSender sender, final boolean fullyQualify)

Method getUsageShort.

Parameters:
@Nonnull final CommandSender sender
final boolean fullyQualify

registerRequiredArg

public R registerRequiredArg (@Nonnull final R requiredArgument)

Method registerRequiredArg.

Parameters:
@Nonnull final R requiredArgument

registerOptionalArg

public R registerOptionalArg (@Nonnull final R optionalArgument)

Method registerOptionalArg.

Parameters:
@Nonnull final R optionalArgument

withRequiredArg

public RequiredArg withRequiredArg (@Nonnull final String name, @Nonnull final String description, @Nonnull final ArgumentType argType)

Method withRequiredArg.

Parameters:
@Nonnull final String name
@Nonnull final String description
@Nonnull final ArgumentType argType

RequiredArg

public new RequiredArg (this, name, description, (ArgumentType)

Method RequiredArg.

Parameters:
this this
name name
description description
(ArgumentType (ArgumentType

withListRequiredArg

public RequiredArg> withListRequiredArg (@Nonnull final String name, @Nonnull final String description, @Nonnull final ArgumentType argType)

Method withListRequiredArg.

Parameters:
@Nonnull final String name
@Nonnull final String description
@Nonnull final ArgumentType argType

ListArgumentType

public new ListArgumentType ((ArgumentType)

Method ListArgumentType.

Parameters:
(ArgumentType (ArgumentType

withDefaultArg

public DefaultArg withDefaultArg (final String name, final String description, final ArgumentType argType, @Nullable final D defaultValue, final String defaultValueDescription)

Method withDefaultArg.

Parameters:
final String name
final String description
final ArgumentType argType
@Nullable final D defaultValue
final String defaultValueDescription

DefaultArg

public new DefaultArg (this, name, description, wrapper.argumentType()

Method DefaultArg.

Parameters:
this this
name name
description description
wrapper.argumentType( wrapper.argumentType(

withListDefaultArg

public DefaultArg> withListDefaultArg (@Nonnull final String name, @Nonnull final String description, @Nonnull final ArgumentType argType, final List defaultValue, @Nonnull final String defaultValueDescription)

Method withListDefaultArg.

Parameters:
@Nonnull final String name
@Nonnull final String description
@Nonnull final ArgumentType argType
final List defaultValue
@Nonnull final String defaultValueDescription

withOptionalArg

public OptionalArg withOptionalArg (@Nonnull final String name, @Nonnull final String description, @Nonnull final ArgumentType argType)

Method withOptionalArg.

Parameters:
@Nonnull final String name
@Nonnull final String description
@Nonnull final ArgumentType argType

OptionalArg

public new OptionalArg (this, name, description, wrapper.argumentType()

Method OptionalArg.

Parameters:
this this
name name
description description
wrapper.argumentType( wrapper.argumentType(

withListOptionalArg

public OptionalArg> withListOptionalArg (@Nonnull final String name, @Nonnull final String description, @Nonnull final ArgumentType argType)

Method withListOptionalArg.

Parameters:
@Nonnull final String name
@Nonnull final String description
@Nonnull final ArgumentType argType

withFlagArg

public FlagArg withFlagArg (@Nonnull final String name, @Nonnull final String description)

Method withFlagArg.

Parameters:
@Nonnull final String name
@Nonnull final String description

isVariant

public boolean isVariant ()

Method isVariant.

getName

public String getName ()

Method getName.

getAliases

public Set getAliases ()

Method getAliases.

getDescription

public String getDescription ()

Method getDescription.

getOwner

public CommandOwner getOwner ()

Method getOwner.

getPermission

public String getPermission ()

Method getPermission.

getSubCommands

public AbstractCommand> getSubCommands ()

Method getSubCommands.

getRequiredArguments

public List> getRequiredArguments ()

Method getRequiredArguments.

hasBeenRegistered

public boolean hasBeenRegistered ()

Method hasBeenRegistered.

handle

static MethodHandle handle ()

Method handle.

ensureHandle

static MethodHandle ensureHandle ()

Method ensureHandle.

invoke

static int invoke (Object p0, int p1)

Method invoke.

Parameters:
Object p0
int p1
See Also: