Skip to content

fix: do not run commands with missing required arguments - #265

Open
kazotaruumc72 wants to merge 1 commit into
Maxlego08:developfrom
kazotaruumc72:fix/partial-required-arguments
Open

fix: do not run commands with missing required arguments#265
kazotaruumc72 wants to merge 1 commit into
Maxlego08:developfrom
kazotaruumc72:fix/partial-required-arguments

Conversation

@kazotaruumc72

Copy link
Copy Markdown

Paper-Dispatch attaches an executor to every required argument builder in SubCommand#addRequiredArgument, so each intermediate node of the chain is executable. A command declaring several required arguments therefore runs when only the first ones are typed, and CommandDispatch#getArgument throws for the arguments that were never parsed:

/zmenu create villages
java.lang.IllegalArgumentException: No such argument 'inventory-size'
exists on this command

ZSubCommand removes the executor from every required argument but the last one before the node is built, so Brigadier answers with its usual incomplete command error instead of dispatching a half parsed command.

Applies to the six commands declaring more than one required argument: create, players add, players get, players remove, players set and players subtract.

Claude-Session: https://claude.ai/code/session_01LXoCyL3N3h2wixGJbm5bj5

Paper-Dispatch attaches an executor to every required argument builder in
SubCommand#addRequiredArgument, so each intermediate node of the chain is
executable. A command declaring several required arguments therefore runs
when only the first ones are typed, and CommandDispatch#getArgument throws
for the arguments that were never parsed:

  /zmenu create villages
  java.lang.IllegalArgumentException: No such argument 'inventory-size'
  exists on this command

ZSubCommand removes the executor from every required argument but the last
one before the node is built, so Brigadier answers with its usual incomplete
command error instead of dispatching a half parsed command.

Applies to the six commands declaring more than one required argument:
create, players add, players get, players remove, players set and
players subtract.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LXoCyL3N3h2wixGJbm5bj5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant