Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/ProjectUnified/CraftCommand/llms.txt

Use this file to discover all available pages before exploring further.

CraftCommand is a multi-module Maven project where each module carries a single, well-defined responsibility. This design lets you pull in only the artifacts your project actually needs — nothing more. A standalone CLI application, a Bukkit plugin, and a Paper plugin all share the same core annotations and runtime base, but each uses its own platform runtime and processor without carrying unrelated dependencies.
Processor artifacts — any artifact whose ID ends in -processor — must never appear in your <dependencies> block. They belong exclusively inside <annotationProcessorPaths> in the maven-compiler-plugin configuration. Placing a processor on the regular compile classpath causes classpath pollution: the processor’s own heavy dependencies (JavaPoet, Auto-Service, etc.) leak into your runtime JAR and shadow classes your application code should never see.

Core Modules

These three artifacts are the foundation of every CraftCommand integration, regardless of platform.
Artifact IDDescriptionScope
craftcommand-annotationsCore annotations (@Command, @Subcommand, @Default, @Resolve, etc.). No transitive dependencies.compile
craftcommand-runtimeCommandManager, ArgumentResolver, ArgumentResolverProvider, ErrorHandler, CommandInfo, and CommandInfoExposer base classes.compile
craftcommand-processorBaseCommandProcessor plus the SPI interfaces (TypeResolver, ParameterAnnotationHandler, MethodAnnotationHandler). The shared base used internally by every platform processor.Processor path only — never in <dependencies>
craftcommand-processor is an internal base library consumed by the platform-specific processors. You will not normally declare it directly; the platform processor you choose already bundles it.

Standalone Modules

Use these for JVM command-line applications that have no Minecraft dependency.
Artifact IDDescriptionScope
craftcommand-standalone-runtimeStandaloneCommandManager and the StandaloneCommand interface. Depends on craftcommand-runtime.compile
craftcommand-standalone-processorAnnotation processor that generates *_Standalone wrapper classes from your @Command-annotated types.Processor path only — never in <dependencies>

Bukkit / Spigot Modules

Use these for plugins targeting Bukkit, CraftBukkit, or Spigot.
Artifact IDDescriptionScope
craftcommand-bukkit-runtimeBukkitCommandManager with built-in Bukkit type resolvers (e.g. Player, OfflinePlayer). Depends on craftcommand-runtime and spigot-api (provided).compile
craftcommand-bukkit-annotationsPlatform-specific annotations such as @Permission. Optional — add only when you use Bukkit-specific annotation features.compile (optional)
craftcommand-bukkit-processorAnnotation processor that generates *_Executor wrapper classes for Bukkit plugin commands.Processor path only — never in <dependencies>

Paper (Brigadier) Modules

Use these for plugins targeting Paper’s modern Brigadier-based command API. Paper offers two integration modes — full Brigadier (_Paper) and a simplified fallback (_PaperBasic) — each with its own processor.
Artifact IDDescriptionScope
craftcommand-paper-runtimePaperCommandManager, PaperCommand, and PaperBasicCommand interfaces. Depends on craftcommand-runtime and paper-api (provided).compile
craftcommand-paper-processorAnnotation processor that generates *_Paper wrappers integrating with Paper’s Brigadier command dispatcher.Processor path only — never in <dependencies>
craftcommand-paper-processor-basicAnnotation processor that generates *_PaperBasic fallback wrappers using Paper’s BasicCommand interface instead of full Brigadier.Processor path only — never in <dependencies>
Pick one Paper processor based on the command API you want: use craftcommand-paper-processor for native Brigadier integration, or craftcommand-paper-processor-basic for the simpler BasicCommand approach. Both processors depend on craftcommand-paper-runtime.

Validation Module

The validation module is a cross-platform extension that plugs into whichever platform processor you are already using. It supplies ParameterAnnotationHandler implementations loaded into the platform processor via SPI.
Artifact IDDescriptionScope
craftcommand-validation-annotationsValidation annotations: @Min, @Max, @ValidateWith. Depends on craftcommand-annotations.compile
craftcommand-validation-processorSPI implementations that wire the validation annotations into the code-generation pipeline. Loaded automatically by the platform processor.Processor path only — never in <dependencies>

BOM

Artifact IDDescriptionUsage
craftcommand-bomBill of Materials POM that manages the versions of all CraftCommand modules above.Import in <dependencyManagement> with type=pom, scope=import
See the BOM reference for the full import snippet and guidance on version management.

Dependency Diagram

The diagram below shows how modules compose. Platform runtimes layer on top of the core runtime, and platform processors layer on top of the base processor — which itself depends on JavaPoet and Auto-Service for code generation.
craftcommand-standalone-runtime ──┐
craftcommand-bukkit-runtime      ──┼──▶  craftcommand-runtime  ──▶  craftcommand-annotations
craftcommand-paper-runtime       ──┘

craftcommand-standalone-processor ──┐
craftcommand-bukkit-processor      ──┼──▶  craftcommand-processor  ──▶  com.palantir.javapoet
craftcommand-paper-processor       ──┤                              ──▶  com.google.auto.service
craftcommand-paper-processor-basic ──┘

craftcommand-validation-processor  ──▶  craftcommand-processor  (loaded via SPI into platform processor)
All platform runtimes and processors also transitively include craftcommand-annotations through the core runtime.

GroupId and Current Version

All CraftCommand artifacts share the same Maven coordinates:
PropertyValue
groupIdio.github.projectunified
Current version0.5.1
You can browse all published artifacts on Maven Central.

Build docs developers (and LLMs) love