Audit pass 2: correct hooks, utilities, localization and module pages
- isNegaBetter makes NEGATIVE values win (the unlimited sentinel), not
lower ones; highest still wins among non-negatives. Also documents the
lowercase-key requirement, the -1-on-no-match return, and the int cast
that breaks getGroupValueDouble for fractions.
- Vault helpers are null-safe and return empty values rather than
failing. Conversely the engine's hook getters CAN be null even with the
plugin installed, since WorldGuard/Citizens/MythicMobs are hooked only
from the PluginEnableEvent path.
- PlayerUT.setExp adds to the current total rather than setting it;
setTotalExperience is the absolute form.
- LocUT.getFirstGroundBlock is not what /unstuck uses.
- MsgUT.isJSON checks for Codex's inline {json:} markup, not chat
components. sendTitles is deprecated.
- Debugger gates warn and err as well as log, and writes to System.out.
- Corrected EffectUT, RangeUtil, Zipper, NamespaceResolver and the
SoundUT/EnumUT rationale (registry-backed Keyed, not renamed constants).
- StringUT.replace returns a copy; the previous examples were no-ops.
- Localization: documents the two independent message systems sharing one
file, that language selection keys off general.lang rather than the
documented core.lang, and that the general.* set is never localised.
- Chat module does not persist data at all; documents the name-truncation
and reset bugs.
- Scoreboard module registers no boards of its own; /board list is
per-player; /board show requires lowercase and always reports failure.
- Join/interact: delays are cumulative, PlaceholderAPI is not expanded,
material and as are matched case-sensitively and fail silently, and
there is no click-type filter.
- Configuration: bungee_id is a server label not a channel, debug is
inert, removeBoatOnExit returns the boat to the player,
locale.world-names has no consumers, command-cooldown-message is
mccore-only, unstuck keys have no defaults.
Expand wiki from single page to full documentation set
The wiki previously consisted of one Home page covering a stale command
list and a config.yml dump. This replaces it with 20 pages covering the
plugin as it actually exists.
Corrections to previously documented content:
- /corereload no longer exists; the command is /codex reload
- command-aliases default is codex,codexengine,codexcore
- bungee_id default is codexcore
- documented previously missing keys: file-timings, action-bar-legacy
New server-owner pages: Installation, Configuration, Commands,
Permissions, Join and Interact Commands, Chat Module, Scoreboard Module,
Localization, Version Support.
New developer pages: Developer Getting Started, Actions Engine, Item
Providers, Menus and GUIs, Compat and NMS, Hooks, Events, Utilities.
Adds _Sidebar.md and _Footer.md for persistent navigation.