Class PaperCommandProcessor
java.lang.Object
javax.annotation.processing.AbstractProcessor
io.github.projectunified.craftcommand.processor.BaseCommandProcessor
io.github.projectunified.craftcommand.processor.paper.PaperCommandProcessor
- All Implemented Interfaces:
Processor
@AutoService(javax.annotation.processing.Processor.class)
@SupportedAnnotationTypes("io.github.projectunified.craftcommand.annotation.Command")
@SupportedSourceVersion(RELEASE_8)
public class PaperCommandProcessor
extends BaseCommandProcessor
Annotation processor for Paper Brigadier platform.
-
Field Summary
Fields inherited from class javax.annotation.processing.AbstractProcessor
processingEnv -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidbuildEntryMethods(com.palantir.javapoet.TypeSpec.Builder typeSpec, CommandModel model, TypeElement typeElement) Generates platform-specific main wrapper entry methods (e.g. onCommand or execute).protected voidconfigureSuperType(com.palantir.javapoet.TypeSpec.Builder typeSpec) Configures the super interfaces/classes that the generated wrapper should implement/extend.protected voidgeneratePlatformParamSuggestions(com.palantir.javapoet.MethodSpec.Builder methodSpec, com.palantir.javapoet.TypeName typeName, String senderCastVar, String argsVar, String currentVar, int tempIdx) protected com.palantir.javapoet.TypeNameReturns the platform-specific command manager type.protected intgetPlatformBuiltInWidth(com.palantir.javapoet.TypeName typeName) protected com.palantir.javapoet.CodeBlockgetSenderExpression(String senderVar) protected com.palantir.javapoet.ClassNameReturns the platform-specific command sender type name (e.g.protected StringReturns the wrapper class suffix specific to the platform.protected booleanisPlatformBuiltInType(com.palantir.javapoet.TypeName typeName) protected booleanisSenderBaseType(com.palantir.javapoet.TypeName typeName) protected booleanisSenderType(com.palantir.javapoet.TypeName typeName) Checks if the sender type is supportedMethods inherited from class io.github.projectunified.craftcommand.processor.BaseCommandProcessor
buildAdditionalHelpers, buildAliasesExpression, buildBuiltInParameter, buildExecutionRouting, buildLocalResolverParameter, buildMethodExecution, buildMethodExecution, buildParameterSuggestionHelper, buildParameterSuggestions, buildSenderResolution, buildSubcommandSuggestionRouting, buildSuggestionRouting, buildWrapperClass, configureConstructor, findLocalResolver, findModelForClass, findSuggestMethod, firstParamIsSender, generateDefaultSenderCastForSuggestion, generateExecuteMethodBody, generateFieldsAndConstructorStatements, generateLocalResolverInvocation, generateSubcommandClassExecutors, generateUnknownSubcommandMessage, getAssignmentValueForType, getDefaultPrimitiveValue, getDynamicResolverTypes, getInstanceVarExpression, getLocalResolverMaxWidth, getLocalResolverMinWidth, getParameterSuggestionMethodName, getResolverMethodName, getSimpleName, getSubcommandFieldName, getSubcommandNames, getUsage, init, isBuiltInType, isField, onBeforeExecute, onBeforeSuggest, onSuggestionAdd, process, resolvePlatformMultiParameter, resolvePlatformParameterMethods inherited from class javax.annotation.processing.AbstractProcessor
getCompletions, getSupportedAnnotationTypes, getSupportedOptions, getSupportedSourceVersion, isInitialized
-
Constructor Details
-
PaperCommandProcessor
public PaperCommandProcessor()
-
-
Method Details
-
getWrapperClassSuffix
Description copied from class:BaseCommandProcessorReturns the wrapper class suffix specific to the platform.- Specified by:
getWrapperClassSuffixin classBaseCommandProcessor- Returns:
- the class name suffix (e.g. "_Executor" or "_Standalone")
-
configureSuperType
protected void configureSuperType(com.palantir.javapoet.TypeSpec.Builder typeSpec) Description copied from class:BaseCommandProcessorConfigures the super interfaces/classes that the generated wrapper should implement/extend.- Specified by:
configureSuperTypein classBaseCommandProcessor- Parameters:
typeSpec- the class definition builder
-
getSenderTypeName
protected com.palantir.javapoet.ClassName getSenderTypeName()Description copied from class:BaseCommandProcessorReturns the platform-specific command sender type name (e.g. Bukkit CommandSender or Object).- Specified by:
getSenderTypeNamein classBaseCommandProcessor
-
getManagerType
protected com.palantir.javapoet.TypeName getManagerType()Description copied from class:BaseCommandProcessorReturns the platform-specific command manager type.- Specified by:
getManagerTypein classBaseCommandProcessor
-
isSenderType
protected boolean isSenderType(com.palantir.javapoet.TypeName typeName) Description copied from class:BaseCommandProcessorChecks if the sender type is supported- Overrides:
isSenderTypein classBaseCommandProcessor
-
isSenderBaseType
protected boolean isSenderBaseType(com.palantir.javapoet.TypeName typeName) - Overrides:
isSenderBaseTypein classBaseCommandProcessor
-
isPlatformBuiltInType
protected boolean isPlatformBuiltInType(com.palantir.javapoet.TypeName typeName) - Overrides:
isPlatformBuiltInTypein classBaseCommandProcessor
-
getPlatformBuiltInWidth
protected int getPlatformBuiltInWidth(com.palantir.javapoet.TypeName typeName) - Overrides:
getPlatformBuiltInWidthin classBaseCommandProcessor
-
generatePlatformParamSuggestions
protected void generatePlatformParamSuggestions(com.palantir.javapoet.MethodSpec.Builder methodSpec, com.palantir.javapoet.TypeName typeName, String senderCastVar, String argsVar, String currentVar, int tempIdx) - Overrides:
generatePlatformParamSuggestionsin classBaseCommandProcessor
-
getSenderExpression
- Overrides:
getSenderExpressionin classBaseCommandProcessor
-
buildEntryMethods
protected void buildEntryMethods(com.palantir.javapoet.TypeSpec.Builder typeSpec, CommandModel model, TypeElement typeElement) Description copied from class:BaseCommandProcessorGenerates platform-specific main wrapper entry methods (e.g. onCommand or execute).- Specified by:
buildEntryMethodsin classBaseCommandProcessor
-