Skip to content

History

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
    ff6d501
  • 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
    1eb01e0
  • 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
    b6a0383
  • Correct Item Providers ID format and availability guidance Three errors in the original page: - ItemsAdder keys are not NAMESPACE_id. ItemsAdderItemType.getID() returns ItemsAdder's own namespaced ID, so a full key stacks two namespaces: ITEMSADDER_<ia_namespace>:<item>. Oraxen and Nexo ids are flat. Documented with a diagram and a note that the bare form does not resolve. - Namespace matching was described as case-insensitive. Manager lookup uses providers.containsKey against uppercased keys, so a lowercase prefix silently falls through to the vanilla provider. Prefix stripping inside providers IS case-insensitive, which masks this, so the inconsistency is called out explicitly. - hasProvider was presented as an availability check. VANILLA, ORAXEN and ITEMSADDER are registered eagerly in init() regardless of whether those plugins exist, so it returns true without Oraxen installed. Only NEXO is conditional, registered by NexoHK. Replaced with catching MissingProviderException from assertEnabled(). Also documents that vanilla lookups accept a redundant VANILLA_ prefix and normalise spaces and hyphens to underscores.

    @claude claude committed Aug 16, 2026
    43f0778
  • Mark mccore-derived features as deprecated Everything under studio.magemonkey.codex.mccore is legacy ProMCCore code and should not be used in new setups or new plugin code. - Chat Module and Scoreboard Module pages get deprecation banners and are grouped separately in the sidebar and on Home - Features.chat-enabled / scoreboards-enabled documented as deprecated, with the sample config now showing them disabled - file-timings noted as read only by the legacy config layer, so it has no effect on JYML-based configs - Developer Getting Started now documents JYML as the config API and flags getConfigFile/registerConfig as returning the deprecated mccore Config type - Added a legacy-package table mapping each mccore subpackage to its current replacement, including the mccore.commands vs codex.commands naming overlap

    @claude claude committed Aug 15, 2026
    70a568b
  • 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
    df68f10
  • Updated Home (markdown)

    @materialplane materialplane committed Oct 24, 2024
    ac08285
  • Initial Home page

    @materialplane materialplane committed Oct 24, 2024
    256487a