Annotation Interface CmdTarget


@Target({TYPE,METHOD}) @Retention(RUNTIME) public @interface CmdTarget
Command target annotation. Restricts which kind of sender - a player, the console, or both - may invoke a command class or one of its @CmdMapping methods.

When both a class-level and a method-level @CmdTarget are present, the method-level value may only narrow the class-level one (D-01: narrowing-only override, resolved by CmdTargetComposition). BOTH narrowing to PLAYER or to CONSOLE is legal; an identical pair is legal. Widening a restriction back to BOTH, and switching laterally between PLAYER and CONSOLE, are both ambiguous and are refused at plugin load, naming the offending class and method - never silently resolved to either reading. See .planning/phases/01-adjudication-foundations-compatibility-baseline/01-ADJUDICATION.md.

See Also: