Skip to content

Revisions

  • Audit pass 3: rewrite remaining pages from audit findings Rewrites rather than spot-fixes, since the affected pages had errors throughout. Actions Engine: documents that flag names must be lowercase (camelCase flags are silently ignored), that targets are mandatory and not inherited across GOTO or actions-on-fail, comparison operators and the EQUALS default, ~filter semantics, PERMISSION negation, and that VAULT_BALANCE fails open without Vault. Corrects HOOK (a velocity action, not a plugin hook), the ~location/~speed/~message/~amount/~name usage columns, and SELF's parameters. All examples reworked to actually run. Version Support: replaces the range with the exact version-to-module table, lists the explicitly rejected versions, and states that an unsupported version disables the plugin. Installation: ProMCCore data folder IS migrated automatically; splits declared soft-dependencies from runtime-only detection; notes the paper-plugin.yml load-before block is likely inert; corrects the Citizens and WorldGuard descriptions. Developer Getting Started: depend is CodexCore, not Codex; the CodexPlugin example now implements all six abstract methods; hasEditor is not an override; JYML lives in codex-plugin and loadOrExtract throws a checked exception; getConfigFile appends .yml itself and its documented auto-save does not exist; mccore.gui has no replacement. Menus: documents the getPages off-by-one and the negative-modulo blank page, that nav buttons need placing per page, that onClose must call super, and that YAMLMenu is not a Menu subclass. Compat and NMS: ArmorUtil is an armor-trim shim and a no-op before 1.19.4, unrelated to ArmorEquipEvent. Adds the missing NMS methods, the NBTAttribute parameter type, and the codex-core dependency step. Events: adds DROP and CONSUME, marks DEATH as never fired, notes BROKE cannot be cancelled, that only outbound packets are intercepted and EngineServerPacketEvent is never fired, and that IEvent/ICancellableEvent are abstract classes which ArmorEquipEvent does not use. Item Providers: isCustomItem and isCustomItemOfId are currently unusable; getMainItemType is effectively never null; Nexo's exception behaviour differs; documents both stripPrefix methods. Also cross-references the casing trap between the two ~flag: value; parsers, which disagree.

    @claude claude committed Aug 16, 2026
  • 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.

    @claude claude committed Aug 16, 2026
  • Audit pass 1: correct permission prefix, data folder, and reload behaviour Findings from a source audit of the wiki's factual claims. - Permission prefix is codexcore., not codex. The plugin's declared name is CodexCore (plugin.yml name: ${project.name}, module <name>), so getNameRaw() yields codexcore. codex.stuck is unaffected: it is a hardcoded literal. - The onInteract bypass node is general.oninteract.bypass. The shipped config.yml comment naming core.oninteract.bypass is itself wrong. - Data folder is plugins/CodexCore/, not plugins/Codex/. Corrected on every page. - /stuck has no executor bound; only /unstuck works, and on Paper the label does not exist at all. Documented as a known defect. - /codex reload does not re-read config.yml from disk on the engine; it re-applies the in-memory document. Restart is required for any change. - core.lang is injected but never consumed; general.lang is the key that selects the language file. - Derived permission nodes are undeclared and fall back to Bukkit's op-only default rather than declaring one. - Wildcard grants depend on the permission plugin; Codex registers no parent permissions.

    @claude claude committed Aug 16, 2026
  • 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.

    @claude claude committed Aug 15, 2026