/pay <target> <amount> no longer tab-completes — it just shows the literal <target> placeholder. It should at least suggest online players (and ideally government account names) for <target>.
Technical notes — PayCommand declares <target> as a plain String, so Hibernia's CommandManager.createArgumentSuggestionProvider has no ParameterResolver to query and echoes the placeholder. Add a ParameterResolver (or a dedicated target type) whose suggestions(prefix, sender) returns online player names (+ government account display names if /pay resolves those), bound in CommanderModule. The framework already supports completions; only the resolver is missing.
Fixed on develop (treasury @ dfea25e).
Root cause (confirmed): PayCommand declared <target> as a plain String, so CommandManager.createArgumentSuggestionProvider found only the no-op StringResolver and emitted the literal <target> placeholder. (The framework already ships an OfflinePlayerResolver with online-player suggestions, but it's keyed by parameter type, and /pay wasn't using that type.)
Change:
PayTarget arg type + PayTargetResolver (in commands/resolvers/), bound into the ParameterResolver<?> multibinder in CommanderModule (which was previously empty).suggestions() returns online player names + non-archived government account display names — the two things /pay resolves. Gov names are cached with a 60s TTL because suggestions run inline on the suggestion thread per keystroke and shouldn't hit the DB.resolve() always returns the token (never empty), so PayCommand keeps its player/government/unknown branching and i18n messages — no behavior change to dispatch.Notes:
commands/**, guice/**), matching how the framework's own resolvers and Treasury's commands are treated — no in-scope code changed, so the 95% gate is unaffected. Not unit-tested for the same Bukkit-static reason the framework's OfflinePlayerResolver isn't.listGovernmentAccounts() includes primitive/internal accounts (Eco, starting-balances, DCGovernment, GovernmentFines); they're valid /pay targets so I left them in suggestions. Can filter them out via TreasuryConstants if undesirable.
Code context —
PayCommand(treasury/…/commands/PayCommand.java) declares<target>as a plainString, so Hibernia'sCommandManager.createArgumentSuggestionProviderhas noParameterResolverto query and just echoes the literal<target>placeholder — hence no completions.Fix: add a
ParameterResolver(or a dedicated target type) whosesuggestions(prefix, sender)returns online player names (and government account display names if/payshould resolve those), then bind it inCommanderModule. The framework already supports completions; only the resolver is missing.