Skip to content

Commands

Server admin Menu author

All AbstractMenus commands are gated behind am.admin. Op players have it implicitly; for staff without op, grant it through your permissions plugin.

The plugin’s main command. Subcommands:

SubcommandWhat it does
/am open <menu>Open a menu for yourself (no activator context).
/am open <menu> <player>Open a menu for another player.
/am reloadReload all menu files from plugins/AbstractMenus/menus/. Re-runs HOCON parse, drops opened menus.
/am serveWatch the menus folder and reload on change. Toggle off by running it again. Author-time tool — don’t leave it on in production.
/am versionPrint the running plugin version.

Manage addons — both regular addons (jars in plugins/AbstractMenus/addons/) and plugin-as-addons.

SubcommandWhat it does
/am addons listList every loaded addon. Regular addons have no tag, plugin-as-addons are tagged [as-plugin], the built-in core is [built-in].
/am addons info <name>Full metadata: status, version, authors, description, dependencies. For a regular addon it surfaces the addon.conf; for a plugin-as-addon it surfaces the Bukkit plugin.yml description.
/am addons load <name>Load an addon that’s in plugins/AbstractMenus/addons/ but not yet loaded. Tab-completes available unloaded addons.
/am addons reload <name>Disable, rebuild the classloader, and re-enable an addon. Plugin-as-addons can’t be hot-reloaded — they need a server /reload.
/am addons rescanScan addons/ for new jars and load any that aren’t loaded yet.

Tab completion is wired up for info, reload, and load. info completes against everything (including the built-in core); reload and load complete against the relevant subset.

Manage global variables — same data accessible through %var_*% placeholders and the variable actions inside menus. Each subcommand’s argument list:

SubcommandArgsEffect
get <name>namePrint the current value.
set <name> <value>name, valueReplace the value. Creates the variable if absent.
rem <name>nameDelete the variable.
inc <name> <amount>name, amountAdd to a numeric value.
dec <name> <amount>name, amountSubtract from a numeric value.
mul <name> <factor>name, factorMultiply a numeric value.
div <name> <divisor>name, divisorDivide a numeric value.

set accepts two extra trailing arguments:

  • /var set <name> <value> <time> - make the variable temporary; expires after <time> (e.g. 1h30m, 10s, 2d).
  • /var set <name> <value> <replace> - true overwrites an existing variable, false keeps the old value if one exists.
  • /var set <name> <value> <time> <replace> - both at once.

The third argument is interpreted as <replace> when it is literally true or false, otherwise as <time>.

Same shape as /var but for per-player variables. Each subcommand takes a leading <player> argument:

/varp get <player> <name>
/varp set <player> <name> <value>
/varp set <player> <name> <value> <time>
/varp set <player> <name> <value> <replace>
/varp set <player> <name> <value> <time> <replace>
/varp rem <player> <name>
/varp inc <player> <name> <amount>
/varp dec <player> <name> <amount>
/varp mul <player> <name> <factor>
/varp div <player> <name> <divisor>

set accepts the same extra <time> and <replace> arguments as /var set - same semantics, just scoped to a specific player.

Per-player variables persist across reconnects - they’re stored in the same SQLite file as global variables.

Only one permission node:

  • am.admin — every command above.

There are no per-command split permissions. If you want a moderator who can run /am open but not /am reload, gate the moderator command through a permissions plugin’s command-overrides feature, not through AbstractMenus.