A straightforward Paper/Spigot/Bukkit plugin that gets you home
feat: Paper 26.2 API + Brigadier command registration (fixes tab-completion, zero CI warnings) (#7)
- feat: Paper 26.2 API + Brigadier command registration (fixes tab-completion)
- Upgrade paper-api to 26.2.build.119-stable, api-version '26.2'
- Register all commands via LifecycleEvents.COMMANDS + Brigadier (CommandRegistrar), with per-command requires() permissions and suggestions (home names, players, -global, reload/clearcache)
- Remove plugin.yml commands block (Paper 26.x mode): Bukkit CommandMap declarations without executors become ghost commands that return false and print usage; native Brigadier nodes shadow the Bukkit bridge and restore tab-completion on Paper 26.2 (previously hijacked by Essentials' Brigadier registration)
- Keep all command logic/executors unchanged; behavior verified on local test server (1.21.10 / protocol 776)
- fix: address review issues
- setdefaulthome: restore tab-completion (suggest own home names)
- console /home|/sethome : guard ClassCastException (non-player sender falls back to consoleCommand)
- args: word() -> string() so home names with special chars (:, #, ,) parse correctly (matches legacy Bukkit args semantics)
- listhomes: support -g short flag in second-arg suggestions
- gradle: plugin_support_paper_versions 26.1,26.2 -> 26.2
- docs: mark project Paper 26.2+ only (Brigadier registration), document .requires() unknown-command behavior as intended
- refactor: replace deprecated org.bukkit.ChatColor with legacy color strings
Zero behavior change: ChatColor.X -> "§x" literals, config color chars -> "§"+ch, translateAlternateColorCodes -> replace('&', '§'). Clears all 18 CI deprecation warnings (paper-api 26.2 keeps sendMessage(String) non-deprecated).
refactor: replace deprecated Guava Charsets.UTF_8 with StandardCharsets.UTF_8
fix: round-2 review fixes
- quote home-name suggestions containing special chars (Brigadier single-token rule for string() args)
- CLAUDE.md: sync paper_api_version to 26.2.build.119-stable
- move console sender guard before target parsing (covers setdefaulthome latent CCE; delhome console behavior unchanged)
- fix: use greedyString for all args (Chinese/special-char home names)
string() unquoted charset excludes CJK and ':' (verified live: '/sethome 验收点' and '/home 测试:家' failed with 'Expected whitespace to end one argument'). greedyString reads any non-space chars - Chinese and special chars work exactly like legacy Bukkit space-split args, and 1-arg/2-arg forms both resolve. Revert the quote-wrapping suggestions from round-2 (quotes would be swallowed into the home name by greedy parsing).