Class AbstractCommand

java.lang.Object
com.hypixel.hytale.server.core.command.system.AbstractCommand
Direct Known Subclasses:
AbstractAsyncCommand, CommandBase, NPCDebugCommand.PresetsCommand

public abstract class AbstractCommand extends Object
  • Field Details

    • LOGGER

      @Nonnull public static final com.hypixel.hytale.logger.HytaleLogger LOGGER
    • EMPTY_STRING_ARRAY

      public static final String[] EMPTY_STRING_ARRAY
    • MESSAGE_COMMANDS_HELP_NO_PERMISSIBLE_SUB_COMMAND

      @Nonnull private static final Message MESSAGE_COMMANDS_HELP_NO_PERMISSIBLE_SUB_COMMAND
    • MESSAGE_COMMANDS_PARSING_ERROR_NO_PERMISSION_FOR_COMMAND

      @Nonnull private static final Message MESSAGE_COMMANDS_PARSING_ERROR_NO_PERMISSION_FOR_COMMAND
    • MESSAGE_COMMANDS_PARSING_ERROR_ATTEMPTED_UNSAFE

      @Nonnull private static final Message MESSAGE_COMMANDS_PARSING_ERROR_ATTEMPTED_UNSAFE
    • MESSAGE_COMMANDS_PARSING_USAGE_REQUIRES_CONFIRMATION

      @Nonnull private static final Message MESSAGE_COMMANDS_PARSING_USAGE_REQUIRES_CONFIRMATION
    • MESSAGE_COMMAND_SINGLEPLAYER

      @Nonnull private static final Message MESSAGE_COMMAND_SINGLEPLAYER
    • CONFIRM_ARG_TAG

      @Nonnull static final String CONFIRM_ARG_TAG
      See Also:
    • COLOR_STRING_ARG_REQUIRED

      @Nonnull private static final String COLOR_STRING_ARG_REQUIRED
      See Also:
    • COLOR_STRING_ARG_OPTIONAL

      @Nonnull private static final String COLOR_STRING_ARG_OPTIONAL
      See Also:
    • parentCommand

      private AbstractCommand parentCommand
    • name

      @Nullable private final String name
    • aliases

      @Nonnull private final Set<String> aliases
    • description

      private final String description
    • requiredArguments

      @Nonnull private final List<RequiredArg<?>> requiredArguments
    • optionalArguments

      @Nonnull private final Map<String,AbstractOptionalArg<?,?>> optionalArguments
    • argumentAbbreviationMap

      private AbbreviationMap<AbstractOptionalArg<?,?>> argumentAbbreviationMap
    • subCommands

      @Nonnull private final Map<String,AbstractCommand> subCommands
    • subCommandsAliases

      @Nonnull private final Map<String,String> subCommandsAliases
    • variantCommands

      @Nonnull private final it.unimi.dsi.fastutil.ints.Int2ObjectMap<AbstractCommand> variantCommands
    • owner

      @Nullable private CommandOwner owner
    • permission

      @Nullable private String permission
    • permissionGroups

      @Nullable private List<String> permissionGroups
    • totalNumRequiredParameters

      private int totalNumRequiredParameters
    • requiresConfirmation

      private final boolean requiresConfirmation
    • unavailableInSingleplayer

      private boolean unavailableInSingleplayer
    • allowsExtraArguments

      private boolean allowsExtraArguments
    • hasBeenRegistered

      private boolean hasBeenRegistered
  • Constructor Details

    • AbstractCommand

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

      protected AbstractCommand(@Nullable String name, @Nullable String description)
    • AbstractCommand

      protected AbstractCommand(@Nullable String description)
  • Method Details

    • setOwner

      public void setOwner(@Nonnull CommandOwner owner)
    • canGeneratePermission

      protected boolean canGeneratePermission()
    • generatePermissionNode

      @Nullable protected String generatePermissionNode()
    • generatePermission

      @Nonnull private String generatePermission()
    • getPermissionGroups

      @Nullable public List<String> getPermissionGroups()
    • setPermissionGroups

      protected void setPermissionGroups(String... groups)
    • setPermissionGroup

      protected void setPermissionGroup(@Nullable GameMode gameMode)
    • getPermissionGroupsRecursive

      @Nonnull public Map<String,Set<String>> getPermissionGroupsRecursive()
    • putRecursivePermissionGroups

      public void putRecursivePermissionGroups(@Nonnull Map<String,Set<String>> permissionsByGroup)
    • setUnavailableInSingleplayer

      protected void setUnavailableInSingleplayer(boolean unavailableInSingleplayer)
    • setAllowsExtraArguments

      public void setAllowsExtraArguments(boolean allowsExtraArguments)
    • matches

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

      @Nonnull private MatchResult matches(@Nonnull String language, @Nonnull String search, int termDepth, int depth)
    • completeRegistration

      public void completeRegistration() throws GeneralCommandException
      Throws:
      GeneralCommandException
    • createOptionalArgumentAbbreviationMap

      private void createOptionalArgumentAbbreviationMap()
    • validateVariantNumberOfRequiredParameters

      private void validateVariantNumberOfRequiredParameters(@Nonnull ParseResult result)
    • validateDefaultArguments

      private void validateDefaultArguments(@Nonnull ParseResult parseResult)
    • requirePermission

      public void requirePermission(@Nonnull String permission)
    • getFullyQualifiedName

      @Nullable public String getFullyQualifiedName()
    • countParents

      public int countParents()
    • addAliases

      public void addAliases(String... aliases)
    • addSubCommand

      public void addSubCommand(@Nonnull AbstractCommand command)
    • addUsageVariant

      public void addUsageVariant(@Nonnull AbstractCommand command)
    • acceptCall

      @Nullable public CompletableFuture<Void> acceptCall(@Nonnull CommandSender sender, @Nonnull ParserContext parserContext, @Nonnull ParseResult parseResult)
    • acceptCall0

      @Nullable private CompletableFuture<Void> acceptCall0(@Nonnull CommandSender sender, @Nonnull ParserContext parserContext, @Nonnull ParseResult parseResult)
    • hasPermission

      public boolean hasPermission(@Nonnull CommandSender sender)
    • checkForExecutingSubcommands

      @Nonnull private it.unimi.dsi.fastutil.objects.ObjectBooleanPair<CompletableFuture<Void>> checkForExecutingSubcommands(@Nonnull CommandSender sender, @Nonnull ParserContext parserContext, @Nonnull ParseResult parseResult, int numberOfPreOptionalTokens)
    • processRequiredArguments

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

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

      @Nullable protected abstract CompletableFuture<Void> execute(@Nonnull CommandContext var1)
    • getUsageString

      @Nonnull public Message getUsageString(@Nonnull CommandSender sender)
    • getUsageShort

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

      @Nonnull private <R extends RequiredArg<D>, D> R registerRequiredArg(@Nonnull R requiredArgument)
    • registerOptionalArg

      @Nonnull private <R extends AbstractOptionalArg<?, D>, D> R registerOptionalArg(@Nonnull R optionalArgument)
    • withRequiredArg

      @Nonnull public <D> RequiredArg<D> withRequiredArg(@Nonnull String name, @Nonnull String description, @Nonnull ArgumentType<D> argType)
    • withRequiredArg

      public <W extends WrappedArg<D>, D> W withRequiredArg(@Nonnull String name, @Nonnull String description, @Nonnull ArgWrapper<W,D> wrapper)
    • withListRequiredArg

      @Nonnull public <D> RequiredArg<List<D>> withListRequiredArg(@Nonnull String name, @Nonnull String description, @Nonnull ArgumentType<D> argType)
    • withDefaultArg

      @Nonnull public <D> DefaultArg<D> withDefaultArg(String name, String description, ArgumentType<D> argType, @Nullable D defaultValue, String defaultValueDescription)
    • withDefaultArg

      public <W extends WrappedArg<D>, D> W withDefaultArg(@Nonnull String name, @Nonnull String description, @Nonnull ArgWrapper<W,D> wrapper, D defaultValue, @Nonnull String defaultValueDescription)
    • withListDefaultArg

      @Nonnull public <D> DefaultArg<List<D>> withListDefaultArg(@Nonnull String name, @Nonnull String description, @Nonnull ArgumentType<D> argType, List<D> defaultValue, @Nonnull String defaultValueDescription)
    • withOptionalArg

      @Nonnull public <D> OptionalArg<D> withOptionalArg(@Nonnull String name, @Nonnull String description, @Nonnull ArgumentType<D> argType)
    • withOptionalArg

      public <W extends WrappedArg<D>, D> W withOptionalArg(@Nonnull String name, @Nonnull String description, @Nonnull ArgWrapper<W,D> wrapper)
    • withListOptionalArg

      @Nonnull public <D> OptionalArg<List<D>> withListOptionalArg(@Nonnull String name, @Nonnull String description, @Nonnull ArgumentType<D> argType)
    • withFlagArg

      @Nonnull public FlagArg withFlagArg(@Nonnull String name, @Nonnull String description)
    • isVariant

      public boolean isVariant()
    • getName

      @Nullable public String getName()
    • getAliases

      @Nonnull public Set<String> getAliases()
    • getDescription

      public String getDescription()
    • getOwner

      @Nullable public CommandOwner getOwner()
    • getPermission

      @Nullable public String getPermission()
    • getSubCommands

      @Nonnull public Map<String,AbstractCommand> getSubCommands()
    • getRequiredArguments

      @Nonnull public List<RequiredArg<?>> getRequiredArguments()
    • hasBeenRegistered

      public boolean hasBeenRegistered()