Package dev.rollczi.litecommands
Interface LiteCommandsBuilder<SENDER,SETTINGS extends dev.rollczi.litecommands.platform.PlatformSettings,B extends LiteCommandsBuilder<SENDER,SETTINGS,B>>
- Type Parameters:
SENDER- type of senderSETTINGS- type of platform settingsB- self type for builder
- All Known Implementing Classes:
LiteCommandsBaseBuilder
public interface LiteCommandsBuilder<SENDER,SETTINGS extends dev.rollczi.litecommands.platform.PlatformSettings,B extends LiteCommandsBuilder<SENDER,SETTINGS,B>>
Builder for
LiteCommands.
Use LiteCommandsFactory.builder(Class, Platform) to create new instance of builder.-
Method Summary
Modifier and TypeMethodDescriptionannotations(LiteConfigurator<AnnotationsExtension<SENDER>> configurator) [Experimental] Register extension for annotations processing/ Please note that this method is experimental and may be deprecated or removed in the future.<IN,T, RESOLVER extends dev.rollczi.litecommands.argument.parser.Parser<SENDER, IN, T> & dev.rollczi.litecommands.argument.suggester.Suggester<SENDER, T>>
LiteCommandsBuilder<SENDER, SETTINGS, B> [Keyed Argument Parser and Suggester] Register argument parser and suggester for given type and key.<IN,T, RESOLVER extends dev.rollczi.litecommands.argument.parser.Parser<SENDER, IN, T> & dev.rollczi.litecommands.argument.suggester.Suggester<SENDER, T>>
LiteCommandsBuilder<SENDER, SETTINGS, B> [Argument Parser and Suggester] Register argument parser and suggester for given type.<IN,T, ARGUMENT extends dev.rollczi.litecommands.argument.Argument<T>>
LiteCommandsBuilder<SENDER, SETTINGS, B> argumentParser(Class<T> type, dev.rollczi.litecommands.argument.ArgumentKey key, dev.rollczi.litecommands.argument.parser.TypedParser<SENDER, IN, T, ARGUMENT> parser) <IN,T, PARSER extends dev.rollczi.litecommands.argument.parser.Parser<SENDER, IN, T>>
LiteCommandsBuilder<SENDER, SETTINGS, B> argumentParser(Class<T> type, dev.rollczi.litecommands.argument.ArgumentKey key, PARSER parser) <IN,T, ARGUMENT extends dev.rollczi.litecommands.argument.Argument<T>>
LiteCommandsBuilder<SENDER, SETTINGS, B> argumentParser(Class<T> type, dev.rollczi.litecommands.argument.parser.TypedParser<SENDER, IN, T, ARGUMENT> parser) <IN,T, PARSER extends dev.rollczi.litecommands.argument.parser.Parser<SENDER, IN, T>>
LiteCommandsBuilder<SENDER, SETTINGS, B> argumentParser(Class<T> type, PARSER parser) <T,ARGUMENT extends dev.rollczi.litecommands.argument.Argument<T>>
LiteCommandsBuilder<SENDER, SETTINGS, B> argumentSuggester(Class<T> type, dev.rollczi.litecommands.argument.ArgumentKey key, dev.rollczi.litecommands.argument.suggester.TypedSuggester<SENDER, T, ARGUMENT> suggester) argumentSuggester(Class<T> type, dev.rollczi.litecommands.argument.ArgumentKey key, dev.rollczi.litecommands.suggestion.SuggestionResult suggestionResult) <T,SUGGESTER extends dev.rollczi.litecommands.argument.suggester.Suggester<SENDER, T>>
LiteCommandsBuilder<SENDER, SETTINGS, B> argumentSuggester(Class<T> type, dev.rollczi.litecommands.argument.ArgumentKey key, SUGGESTER suggester) <T,ARGUMENT extends dev.rollczi.litecommands.argument.Argument<T>>
LiteCommandsBuilder<SENDER, SETTINGS, B> argumentSuggester(Class<T> type, dev.rollczi.litecommands.argument.suggester.TypedSuggester<SENDER, T, ARGUMENT> suggester) argumentSuggester(Class<T> type, dev.rollczi.litecommands.suggestion.SuggestionResult suggestionResult) <T,SUGGESTER extends dev.rollczi.litecommands.argument.suggester.Suggester<SENDER, T>>
LiteCommandsBuilder<SENDER, SETTINGS, B> argumentSuggester(Class<T> type, SUGGESTER suggester) bindUnsafe(Class<?> on, Supplier<?> bind) dev.rollczi.litecommands.LiteCommands<SENDER> build()dev.rollczi.litecommands.LiteCommands<SENDER> build(boolean register) Register commands from given provider.This method is used to register additional commands.editor(dev.rollczi.litecommands.scope.Scope scope, dev.rollczi.litecommands.editor.Editor<SENDER> editor) editorGlobal(dev.rollczi.litecommands.editor.Editor<SENDER> editor) <E extends Throwable>
LiteCommandsBuilder<SENDER, SETTINGS, B> exception(Class<E> exceptionType, dev.rollczi.litecommands.handler.exception.ExceptionHandler<SENDER, ? extends E> handler) exceptionUnexpected(dev.rollczi.litecommands.handler.exception.ExceptionHandler<SENDER, Throwable> handler) <CONFIGURATION>
LiteCommandsBuilder<SENDER, SETTINGS, B> extension(LiteExtension<SENDER, CONFIGURATION> extension) Register extension for this builder.<CONFIGURATION,E extends LiteExtension<SENDER, CONFIGURATION>>
LiteCommandsBuilder<SENDER, SETTINGS, B> extension(E extension, LiteConfigurator<CONFIGURATION> configurator) Register extension for this builder with configurator.invalidUsage(dev.rollczi.litecommands.invalidusage.InvalidUsageHandler<SENDER> handler) <T,CONTEXT>
LiteCommandsBuilder<SENDER, SETTINGS, B> message(dev.rollczi.litecommands.message.MessageKey<CONTEXT> key, dev.rollczi.litecommands.message.InvokedMessage<SENDER, T, CONTEXT> message) <T,CONTEXT>
LiteCommandsBuilder<SENDER, SETTINGS, B> message(dev.rollczi.litecommands.message.MessageKey<CONTEXT> key, dev.rollczi.litecommands.message.Message<T, CONTEXT> message) <T,CONTEXT>
LiteCommandsBuilder<SENDER, SETTINGS, B> message(dev.rollczi.litecommands.message.MessageKey<CONTEXT> key, T message) missingPermission(dev.rollczi.litecommands.permission.MissingPermissionsHandler<SENDER> handler) postProcessor(LiteBuilderProcessor<SENDER, SETTINGS> postProcessor) preProcessor(LiteBuilderProcessor<SENDER, SETTINGS> preProcessor) result(Class<T> resultType, dev.rollczi.litecommands.handler.result.ResultHandler<SENDER, ? extends T> handler) resultUnexpected(dev.rollczi.litecommands.handler.result.ResultHandler<SENDER, Object> handler) scheduler(dev.rollczi.litecommands.scheduler.Scheduler scheduler) schematicGenerator(dev.rollczi.litecommands.schematic.SchematicFormat format) schematicGenerator(dev.rollczi.litecommands.schematic.SchematicGenerator<SENDER> schematicGenerator) selfProcessor(LiteBuilderProcessor<SENDER, SETTINGS> processor) Configure platform settings.validator(dev.rollczi.litecommands.scope.Scope scope, dev.rollczi.litecommands.validator.Validator<SENDER> validator) validatorGlobal(dev.rollczi.litecommands.validator.Validator<SENDER> validator) default LiteCommandsBuilder<SENDER, SETTINGS, B> validatorMarked(dev.rollczi.litecommands.validator.Validator<SENDER> validator) wrapper(dev.rollczi.litecommands.wrapper.Wrapper wrapper)
-
Method Details
-
settings
LiteCommandsBuilder<SENDER,SETTINGS, settingsB> (dev.rollczi.litecommands.platform.PlatformSettingsConfigurator<SETTINGS> configurator) Configure platform settings.- Parameters:
configurator- configurator for platform settings- Returns:
- this builder
- See Also:
-
commands
LiteCommandsBuilder<SENDER,SETTINGS, commandsB> (dev.rollczi.litecommands.LiteCommandsProvider<SENDER> commandsProvider) Register commands from given provider.- Parameters:
commandsProvider- provider of commands- Returns:
- this builder
- See Also:
-
commands
This method is used to register additional commands. There are several types of objects that can be registered: Using annotations:- An instance annotated with
Command - An instance annotated with
RootCommand - A class annotated with
Command - A class annotated with
RootCommand
- An instance of
LiteCommand
- Parameters:
commands- commands to register- Returns:
- This method returns the current LiteCommand builder instance This allows you to chain multiple calls together, using the builder design pattern.
- See Also:
- An instance annotated with
-
argumentParser
-
argumentParser
-
argumentParser
-
argumentParser
-
argumentSuggester
<T> LiteCommandsBuilder<SENDER,SETTINGS, argumentSuggesterB> (Class<T> type, dev.rollczi.litecommands.suggestion.SuggestionResult suggestionResult) -
argumentSuggester
<T> LiteCommandsBuilder<SENDER,SETTINGS, argumentSuggesterB> (Class<T> type, dev.rollczi.litecommands.argument.ArgumentKey key, dev.rollczi.litecommands.suggestion.SuggestionResult suggestionResult) -
argumentSuggester
-
argumentSuggester
-
argumentSuggester
-
argumentSuggester
-
argument
<IN,T, LiteCommandsBuilder<SENDER,RESOLVER extends dev.rollczi.litecommands.argument.parser.Parser<SENDER, IN, T> & dev.rollczi.litecommands.argument.suggester.Suggester<SENDER, T>> SETTINGS, argumentB> (Class<T> type, RESOLVER resolver) [Argument Parser and Suggester] Register argument parser and suggester for given type.- Parameters:
type- type of argumentresolver- parser and suggester for given type- Returns:
- this builder
-
argument
<IN,T, LiteCommandsBuilder<SENDER,RESOLVER extends dev.rollczi.litecommands.argument.parser.Parser<SENDER, IN, T> & dev.rollczi.litecommands.argument.suggester.Suggester<SENDER, T>> SETTINGS, argumentB> (Class<T> type, dev.rollczi.litecommands.argument.ArgumentKey key, RESOLVER resolver) [Keyed Argument Parser and Suggester] Register argument parser and suggester for given type and key. Key is used to define namespace for given parser. It is used to identify which parsers with same type should be used. Argument type is used to define what type is compatible with given parser.- Parameters:
type- type of argumentkey- key of argumentresolver- parser and suggester for given type- Returns:
- this builder
-
argument
<IN,T, LiteCommandsBuilder<SENDER,ARGUMENT extends dev.rollczi.litecommands.argument.Argument<T>, RESOLVER extends dev.rollczi.litecommands.argument.parser.TypedParser<SENDER, IN, T, ARGUMENT> & dev.rollczi.litecommands.argument.suggester.Suggester<SENDER, T>> SETTINGS, argumentB> (Class<T> type, RESOLVER resolver) [Typed Argument Parser and Suggester] Register argument parser and suggester for given type.- Parameters:
type- type of argumentresolver- parser and suggester for given type- Returns:
- this builder
-
argument
<IN,T, LiteCommandsBuilder<SENDER,ARGUMENT extends dev.rollczi.litecommands.argument.Argument<T>, RESOLVER extends dev.rollczi.litecommands.argument.parser.TypedParser<SENDER, IN, T, ARGUMENT> & dev.rollczi.litecommands.argument.suggester.Suggester<SENDER, T>> SETTINGS, argumentB> (Class<T> type, dev.rollczi.litecommands.argument.ArgumentKey key, RESOLVER resolver) [Typed Keyed Argument Parser and Suggester] Register argument parser and suggester for given type and key. Key is used to define namespace for given parser. It is used to identify which parsers with same type should be used. Argument type is used to define what type is compatible with given parser.- Parameters:
type- type of argumentkey- key of argumentresolver- parser and suggester for given type- Returns:
- this builder
-
context
-
bind
<T> LiteCommandsBuilder<SENDER,SETTINGS, bindB> (Class<T> on, dev.rollczi.litecommands.bind.BindProvider<T> bindProvider) -
bind
-
bindUnsafe
-
scheduler
LiteCommandsBuilder<SENDER,SETTINGS, schedulerB> (dev.rollczi.litecommands.scheduler.Scheduler scheduler) -
message
<T,CONTEXT> LiteCommandsBuilder<SENDER,SETTINGS, messageB> (dev.rollczi.litecommands.message.MessageKey<CONTEXT> key, dev.rollczi.litecommands.message.Message<T, CONTEXT> message) -
message
<T,CONTEXT> LiteCommandsBuilder<SENDER,SETTINGS, messageB> (dev.rollczi.litecommands.message.MessageKey<CONTEXT> key, dev.rollczi.litecommands.message.InvokedMessage<SENDER, T, CONTEXT> message) -
message
<T,CONTEXT> LiteCommandsBuilder<SENDER,SETTINGS, messageB> (dev.rollczi.litecommands.message.MessageKey<CONTEXT> key, T message) -
editorGlobal
LiteCommandsBuilder<SENDER,SETTINGS, editorGlobalB> (dev.rollczi.litecommands.editor.Editor<SENDER> editor) -
editor
LiteCommandsBuilder<SENDER,SETTINGS, editorB> (dev.rollczi.litecommands.scope.Scope scope, dev.rollczi.litecommands.editor.Editor<SENDER> editor) -
validatorGlobal
LiteCommandsBuilder<SENDER,SETTINGS, validatorGlobalB> (dev.rollczi.litecommands.validator.Validator<SENDER> validator) -
validator
LiteCommandsBuilder<SENDER,SETTINGS, validatorB> (dev.rollczi.litecommands.scope.Scope scope, dev.rollczi.litecommands.validator.Validator<SENDER> validator) -
validatorMarked
default LiteCommandsBuilder<SENDER,SETTINGS, validatorMarkedB> (dev.rollczi.litecommands.validator.Validator<SENDER> validator) -
result
-
resultUnexpected
-
exception
-
exceptionUnexpected
-
missingPermission
LiteCommandsBuilder<SENDER,SETTINGS, missingPermissionB> (dev.rollczi.litecommands.permission.MissingPermissionsHandler<SENDER> handler) -
invalidUsage
LiteCommandsBuilder<SENDER,SETTINGS, invalidUsageB> (dev.rollczi.litecommands.invalidusage.InvalidUsageHandler<SENDER> handler) -
wrapper
-
schematicGenerator
LiteCommandsBuilder<SENDER,SETTINGS, schematicGeneratorB> (dev.rollczi.litecommands.schematic.SchematicGenerator<SENDER> schematicGenerator) -
schematicGenerator
LiteCommandsBuilder<SENDER,SETTINGS, schematicGeneratorB> (dev.rollczi.litecommands.schematic.SchematicFormat format) -
selfProcessor
LiteCommandsBuilder<SENDER,SETTINGS, selfProcessorB> (LiteBuilderProcessor<SENDER, SETTINGS> processor) -
preProcessor
LiteCommandsBuilder<SENDER,SETTINGS, preProcessorB> (LiteBuilderProcessor<SENDER, SETTINGS> preProcessor) -
postProcessor
LiteCommandsBuilder<SENDER,SETTINGS, postProcessorB> (LiteBuilderProcessor<SENDER, SETTINGS> postProcessor) -
extension
<CONFIGURATION> LiteCommandsBuilder<SENDER,SETTINGS, extensionB> (LiteExtension<SENDER, CONFIGURATION> extension) Register extension for this builder.- Type Parameters:
CONFIGURATION- type of configuration- Parameters:
extension- extension to register Example:.extension(new LiteAdventureExtension<>())- Returns:
- this builder
-
extension
<CONFIGURATION,E extends LiteExtension<SENDER, LiteCommandsBuilder<SENDER,CONFIGURATION>> SETTINGS, extensionB> (E extension, LiteConfigurator<CONFIGURATION> configurator) Register extension for this builder with configurator.- Type Parameters:
CONFIGURATION- type of configuration- Parameters:
extension- extension to registerconfigurator- configurator for extension Example:.extension(new LiteAdventureExtension<>(), configuration -> configuration .colorizeArgument(true) .miniMessage(true) .legacyColor(true) .serializer(ComponentSerializer.miniMessage()) )- Returns:
- this builder
-
annotations
@Experimental LiteCommandsBuilder<SENDER,SETTINGS, annotationsB> (LiteConfigurator<AnnotationsExtension<SENDER>> configurator) [Experimental] Register extension for annotations processing/ Please note that this method is experimental and may be deprecated or removed in the future.- Parameters:
configurator- configurator for extension- processor - register new annotation processor
- validator - register new validator for requirement
.extensionAnnotation(extension -> extension .processor(new MyAnnotationProcessor()) .validator(String.class, IsValid.class, new StringValidator()) )- Returns:
- this builder
-
build
dev.rollczi.litecommands.LiteCommands<SENDER> build() -
build
-