3.5 KiB
3.5 KiB
Roadmap — Command Surface Cleanup
Goal: one canonical command per action. Aliases hard-disabled (not just PAT-blocked-with-msg). /msg should literally not exist when canonical is /pm. Same for all multi-alias commands.
Why hard-disable vs PAT-block-message:
- PAT-block shows a message → still discoverable via tab-complete or "huh that exists?"
- Hard-disable removes from registration → command tree clean, no message, never discoverable
- Polish goal: "minimal feels like product, not jank-server"
Canonical decisions (operator-locked)
| Action | Canonical | Aliases to hard-disable | Source override |
|---|---|---|---|
| Private msg | /pm |
/msg /tell /m /t /w /whisper |
s8n exec 2026-05-07 19:08-19:13 |
| Reply | /r |
/reply |
(decide) |
| Home set | /sethome |
/createhome /sh |
(decide) |
| Land claim | /claim |
/region /rg /hs claim |
(decide) |
| Help | /help |
(no aliases) | post-restart aliases.yml routes to helpcommand:help |
| Nick | /nick |
/nickname |
(decide) |
Mechanisms to hard-disable
Per-plugin disable (preferred — clean):
- Essentials — add to
/data/plugins/Essentials/config.ymldisabled-commands:list. Removes from registration. Example:disabled-commands: - msg - tell - m - t - w - whisper - reply - createhome - sh - nickname - CarbonChat — has own /msg /tell /reply etc. Either:
- Set
should-register-commands=falsein carbon channel configs (suppress channel cmds) - Use
command-aliases=[]to clear aliases - For built-in carbon commands: edit
/data/plugins/CarbonChat/command-settings.conf(per-command toggle if available)
- Set
- Bukkit
commands.yml—unknown-command-message: ""plus alias remap. Server-level fallback. Useful for cmds with no plugin-level disable.
Server-level alias override (fallback):
/opt/docker/minecraft/commands.yml:aliases: pm: ["essentials:msg $1-"] # /pm fires Essentials' /msg- Essentials' /msg disabled per above. Result: only /pm works.
Note: aliases.yml entries are SERVER-WIDE; perms still apply. Test on staging.
Implementation phases
Phase 1 — quick wins (no restart)
- Edit
/data/plugins/Essentials/config.ymldisabled-commands:addtell, m, t, w, whisper, createhome, sh, nickname(keepmsgfor now until /pm is canonical) - Carbon
should-register-commands=falsefor any redundant cmd essentials reload
Phase 2 — canonical /pm switch (during chat-plugin migration)
- Set
/pmas the canonical via aliases.yml - Disable Essentials
/msg - Update COMMANDS.md
- Test in-game with YOU500
Phase 3 — log all command-disable behavior (s8n ask: "log everything")
- Wrap PAT block messages with audit log (PAT already does this somewhat)
- Add
EssentialsXaudit-log:/data/plugins/Essentials/config.ymldebug + log-output - Consider Logger Plugin (e.g. spark profiler-style command audit) for full cmd execution log
Decisions still pending
- Hard list of all aliases to drop per command
- Reply:
/rvs/reply - Home set:
/sethomevs/createhome - Nick:
/nickvs/nickname - Should
/co(CoreProtect) be visible to defaults?
Risk
- Disabling command at Essentials level may break user muscle memory — onboarding doc will need to make canonical names obvious
- Carbon's command-settings may not allow per-command disable; may need plugin patch or fork (deferred to chat-plugin migration)
- Test ALL changes on a clone branch before live restart