Import, export and reloads

DeluxeMenus import #

Start with a report:

text
/crossmenu import deluxemenus --dry-run

Without --overwrite, existing CrossMenu files are never replaced. Overwriting requires the final confirm argument. An import is transactional: if validation fails, none of its converted menus are published.

Current measured coverage:

AreaConvertedCoverage
Action tags22 / 2781%
Requirement types26 / 3281%
Click types6 / 6100%
Menu keys16 / 16100%
Item keys26 / 4854%
Total96 / 12974%

These figures are generated from importer tests against DeluxeMenus 1.14.1. The import report lists anything that needs manual work; CrossMenu does not silently claim full compatibility.

Exporting a menu #

/crossmenu export shop writes plugins/CrossMenu/exports/shop-<time>.zip with the menu file, its language variants and every component file the menu reaches. Unpack it into plugins/CrossMenu/ of another server by hand, or put the zip into plugins/CrossMenu/imports/ there and run /crossmenu import package shop-<time>.zip. An import only adds files: a menu or component that already exists is left as it is and reported, --dry-run shows what would be added, and a package with an unsafe or unreadable entry is refused whole. After the files are written everything is validated; if one of the new files has an error they are removed again and nothing is loaded. Placeholders, plugins and items the other server lacks are not checked; run /crossmenu validate there.

Reloading safely #

/crossmenu reload <menu> parses and validates the requested file before publishing it. A bad reload leaves the running menu unchanged. Duplicate ids and command conflicts are checked against the full registry, while unrelated menus and their in-flight responses continue normally.

/crossmenu validate, reload and doctor also warn about a fixed material: that is not a real item, for example COMPASSS; the item would otherwise show up as a barrier in the game.

/crossmenu doctor writes a timestamped report under plugins/CrossMenu/diagnostics/. It stays on your server and redacts server paths, UUIDs and sensitive values.

If config.yml, the language file or a menu has an error when the server starts, CrossMenu opens no menus and registers no listener. /crossmenu then tells administrators which file was refused; fix it and restart.

Audit log #

With audit.enabled: true in config.yml, CrossMenu appends one tab-separated line for every payment, experience change, item change, permission change and console command that a menu click ran, to plugins/CrossMenu/audit/audit-YYYY-MM.log (UTC time, player name, UUID, menu, action, detail). It is off by default, stays on your server, and a month's file stops growing at 32 MiB. It holds player names and UUIDs, so handle it like other player data.