Basic Definitions

Basic Definitions

Essential terminology for understanding Imperat.

Placeholders

PLATFORMSOURCE and PLATFORMIMPERAT are placeholders for platform-specific implementations (Bukkit, Sponge, etc.).

  • PLATFORMSOURCE — the command sender (player, console, etc.). Concrete examples: BukkitCommandSource, BungeeCommandSource, VelocityCommandSource, MinestomCommandSource, JdaCommandSource, HytaleCommandSource, ConsoleCommandSource (CLI).
  • PLATFORMIMPERAT — the Imperat instance for that platform. Concrete examples: BukkitImperat<S>, BungeeImperat<S>, VelocityImperat<P, S>, etc. Each is generic over the canonical source type S.

Every platform's Imperat is parameterized over its canonical source class — BukkitImperat<S extends BukkitCommandSource>. When you write field declarations or builder return types, you supply the witness:

  • Default path → BukkitImperat<BukkitCommandSource>
  • Custom-source path → BukkitImperat<MyCustomSource> (see Custom Sources)

Command

A Command is an executable action. It contains pathways (ways to run it) and can have subcommands and arguments.

Root Command

The top-level command in a hierarchy. Entry point for command execution with no parent. Can have subcommands and pathways.

Subcommand

A Command nested within another (parent) Command. Can have its own pathways, and each pathway can have its own arguments.

Raw-Input

If user enters /sum 5 10, this whole string after the command label (5 10) is the raw-input. It is the unprocessed string that gets parsed into arguments.

Raw-Argument

The raw-argument is the entire unprocessed string after the command label, like 5 10. The unprocessed string the user types before its parsed to a typed argument.

Argument

A parameter a Command accepts. Classified by type:

  • Literal — fixed value, used for subcommands
  • Required — must be provided
  • Optional — can be omitted, may have defaults
  • Flag — toggles options (Switch) or sets values (True-Flag)
  • Greedy — captures all remaining input

Flags can be entered in any order, not just in sequence.

Flags have two types:

  • Switch — boolean on/off toggle
  • True-Flag — set to a specific value (string, number, etc.)

Pathway

A specific way to execute a Command — the sequence of arguments and options that triggers it. A Command can have multiple pathways.

Main Pathway

Requires specific arguments in sequence. Example: /print <message>

Default Pathway

No arguments required. Example: /print

Context

An object holding the current state of command operation (execution, parsing, suggestion).

  • Execution Context — during command execution
  • Suggestion Context — while user is typing, for tab-completion

ImperatConfig

Holds all customizable framework settings.