Skip to content

Fix builtin command ownership classification - #131

Merged
remdui merged 7 commits into
mainfrom
agent/fix-builtin-command-ownership
Aug 9, 2026
Merged

Fix builtin command ownership classification#131
remdui merged 7 commits into
mainfrom
agent/fix-builtin-command-ownership

Conversation

@remdui

@remdui remdui commented Aug 8, 2026

Copy link
Copy Markdown
Member

What changed

  • use the shared ServerFeatures command-ownership registry during builtin command discovery
  • exclude ServerFeatures-owned unnamespaced command registrations before Paper/Minecraft wrapper heuristics run
  • keep genuine namespaced built-in fallbacks such as minecraft:restart independently blockable
  • treat non-Spark PluginIdentifiableCommand implementations as plugin-owned instead of inferring a builtin scope from their namespace
  • add regression coverage for ServerFeatures Brigadier commands exposed through vanilla wrappers

Root cause

Paper can expose custom Brigadier roots through vanilla command wrappers / the Minecraft dispatcher. The blocker previously treated wrapper/package/namespace evidence as builtin ownership, so commands such as autopickup, fly, __sfip, and __sfiv could be classified under the minecraft scope when block.minecraft was enabled.

Impact

ServerFeatures commands remain available under their normal labels while genuine Minecraft/Bukkit/Paper/Spigot/Spark built-ins continue to be blocked according to configuration. No command syntax or registration behavior changes.

Validation

  • CI Lint: passed
  • Maven Verify / Tests and Coverage: passed
  • bundled Paper Platform Acceptance: passed
  • repository-wide registration audit confirms production Bukkit and Brigadier command registration is routed through FeatureCommandManager
  • regression tests cover ServerFeatures-owned vanilla wrappers, namespaced Minecraft fallbacks, and plugin-identifiable ownership precedence

Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
Signed-off-by: Remy Duijsens <remyduijsens@gmail.com>
@remdui
remdui marked this pull request as ready for review August 9, 2026 19:21
@remdui
remdui merged commit ae401a0 into main Aug 9, 2026
7 checks passed
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