Commands
Base alias: /items.
Subcommand | Permission | Description |
|---|---|---|
|
| Open the |
|
| Set the held item's scalable XP value. |
|
| Set the held item's durability damage. |
|
| Toggle the held item's unbreakable flag. |
|
| Enchant the held custom item (whitelist-capped). |
|
| Re-render the held item from its blueprint. |
|
| Upgrade the held item to the latest blueprint version. |
|
| Apply a skin to the held item. |
|
| Remove the held item's skin. |
|
| Open the custom packet-level anvil. |
|
| Reload config, rarities, skins, blueprints, messages, menus, and pipelines. |
/items (no arg)
Permission: items.command
Opens the menu registered under id items-rarities via AstralPaperAPI.menus(). Out of the box this is the rarity-list browser — the user-supplied menus under plugins/AstralItems/menus/ decide what it actually looks like.
If the menu fails to compute or open, the error is logged to the server console (failed to open rarities menu for player <name>) but no message is sent to the player.
Admin item commands
These operate on the item in the player's main hand and each require their own permission node on top of items.command. They are intended for staff and testing.
/items set-scalable-value <experience>
Permission: items.set-scalable-value. Sets the scalable data's stored experience on the held item. Fails if the item has no scalable data.
/items set-damage <damage>
Permission: items.set-damage. Sets the durability damage of the held item (must be Damageable). damage must be between 0 and the item's max durability.
/items toggle-unbreakable
Permission: items.toggle-unbreakable. Flips the vanilla Unbreakable flag on the held item (requires a Damageable item) and reports the new state. This is the vanilla flag — independent of the blueprint destroyable metadata.
/items enchant <enchantment> <level>
Permission: items.enchant. Enchants the held custom item — but only with an enchantment present in the blueprint's available-enchantments whitelist, and the level is capped at that whitelist's maximum.
/items update
Permission: items.update. Re-renders the held item from its current blueprint (refreshes lore / appearance) without changing its version.
/items upgrade
Permission: items.upgrade. Upgrades the held item to the latest blueprint version — the same hot-upgrade that runs automatically on login / inventory open.
/items set-skin <skin>
Permission: items.set-skin. Player-only. Applies the named skin to the main-hand item. Tab completion (@itemSkins) offers only skins whose target set contains the blueprint key of the item currently held — it returns nothing when the held item is not a custom item. An unknown skin id fails argument parsing with Skin with id '<id>' not found.
The command replies (in red) with The item in your hand cannot have a skin set when the held item is not a custom item, This skin cannot be applied to this item when the skin's target does not list the item's blueprint, and Failed to set skin on the item when the PDC write fails; on success it replies in green with Skin set to <id> -. Unlike the inventory flow, a previously applied skin item is not returned to the player.
/items remove-skin
Permission: items.remove-skin. Player-only, no arguments. Removes the skin from the main-hand item — restoring the blueprint's item model and equippable asset and deleting the astralitems:skin item data.
Replies in red with The item in your hand cannot have a skin removed (not a custom item), The item in your hand does not have a skin, or Failed to remove skin from the item; in green with Skin removed from the item on success. The skin item is not given back — use the shift-right-click inventory flow for that.
/items anvil
Permission: items.command + items.anvil
Opens the custom anvil window for the sender. The window is a packet-level reimplementation of the vanilla anvil that fires AnvilResultEvent every time the result needs to be recomputed. See Anvil for the full behaviour.
The same window is opened automatically when the player right-clicks a vanilla anvil block with an empty hand (or with a held item while not sneaking) — AnvilListener cancels the underlying event and routes to AnvilService.open(player).
/items reload
Permission: items.command + items.reload
Reloads (via loadConfiguration()) in this order:
config.yml— plugin configuration (e.g.physics-ignored).duplication.yml— the duplication watchdog config.menus/*.yml— rebuilds the menu registry.messages.yml— re-reads the message file.rarities/— re-scans rarity definitions.skins/— re-scans skin definitions, replacing the whole index.blueprints/**— re-scans blueprints, rebuilds the lookup index, and re-wires every pipeline (PipelineService.initialize()unregisters previous dummy listeners and rebinds from the fresh blueprints). This step is skipped on the plugin's very first load — there the initial blueprint scan is triggered byCraftEngineListenerwhen CraftEngine fires its firstCraftEngineReloadEvent.
The sender receives the reloading message immediately and either reload-success or reload-failed once the work is done. On failure a stack trace is written to the console.
Reload is non-destructive for items already in player inventories — the ItemInstance stored in the PDC keeps its UUID and version. If a blueprint disappears from disk on reload, the item's PDC still references it by Key; the UpgradeListener will silently skip it and the item will behave like a vanilla one until the blueprint comes back.
Permission summary
Node | Description |
|---|---|
| Base node; required for every subcommand. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|