Class CommandManager<S>
java.lang.Object
io.github.projectunified.craftcommand.CommandManager<S>
- Type Parameters:
S- sender type
- Direct Known Subclasses:
BukkitCommandManager,PaperCommandManager,StandaloneCommandManager
Base command manager. Handles resolver registration, message formatting, and error handling.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfilterSuggestions(Collection<String> suggestions, String current) Filters suggestions by prefix (case-insensitive).formatMessage(String key, String defaultValue, Object... args) Formats a message by key.abstract List<CommandInfo> getCommandInfo(Object commandInstance) Gets command metadata for a registered command instance.<T> ArgumentResolver<S, T> getResolver(Class<T> type) Gets the resolver for a type.abstract voidRegisters a command.voidregisterProvider(Function<Class<?>, ArgumentResolver<S, ?>> provider) Registers a dynamic resolver provider.<T> voidregisterResolver(Class<T> type, ArgumentResolver<S, T> resolver) Registers a resolver for a specific type.<T> voidregisterSenderResolver(Class<T> type, Function<S, T> resolver) Registers a global sender resolver.<T> TresolveParameter(S sender, Class<T> type, String[] args, int[] indexHolder, String paramName, boolean optional, String defaultValue) Resolves a parameter, advancing the index holder.<T> TresolveSender(Class<T> type, S sender) Resolves the sender to the target type using registered sender resolvers.voidsetErrorHandler(BiConsumer<S, Exception> errorHandler)
-
Constructor Details
-
CommandManager
-
-
Method Details
-
filterSuggestions
Filters suggestions by prefix (case-insensitive). -
register
Registers a command. -
getCommandInfo
Gets command metadata for a registered command instance.- Parameters:
commandInstance- the original command instance passed toregister(Object)- Returns:
- the command info list, or empty list if not found
-
formatMessage
Formats a message by key. Override for i18n. Default:String.format(defaultValue, args). -
registerResolver
Registers a resolver for a specific type. -
registerProvider
Registers a dynamic resolver provider. -
registerSenderResolver
Registers a global sender resolver.- Parameters:
type- the target sender typeresolver- function that converts the base sender to the target type
-
resolveSender
Resolves the sender to the target type using registered sender resolvers.- Parameters:
type- the target sender typesender- the base sender- Returns:
- the resolved sender, or
nullif no resolver is registered
-
resolveParameter
public <T> T resolveParameter(S sender, Class<T> type, String[] args, int[] indexHolder, String paramName, boolean optional, String defaultValue) throws Exception Resolves a parameter, advancing the index holder. Used by generated wrappers.- Throws:
CommandException- when a required parameter is missingException
-
getResolver
Gets the resolver for a type. Checks exact match, hierarchy, providers, then sender fallback. -
getErrorHandler
-
setErrorHandler
-