Skip to content

Commands and Permissions

EmakiStation registers its commands at runtime instead of declaring a commands: section in paper-plugin.yml, matching every other module in the series.

The main command is /emakistation, with the aliases /estation and /est. Running it without arguments, or with an unrecognised subcommand, prints the help text.

Subcommands

UsagePermissionDescription
/emakistationnonePrint help.
/emakistation open <station>emakistation.use + that station's access permissionOpen the station window.
/emakistation dismantle <station>emakistation.dismantle + that dismantle station's access permissionOpen the dismantle window.
/emakistation queueemakistation.useView your own queue.
/emakistation claimemakistation.useClaim pending outputs.
/emakistation cancel <station> <index>emakistation.useCancel a queue entry.
/emakistation list [station]emakistation.useList stations, or the recipes of one station.
/emakistation reloademakistation.reloadReload configuration, stations, recipes and GUI templates.
/emakistation debugemakistation.debugDebug switches, with the same arguments as other modules' debug subcommand.
/emakistation admin queue <player>emakistation.adminInspect another player's queue, loading offline data asynchronously. The name must be present in the server cache, otherwise an unknown-player message is returned.

The second argument of open, cancel and list completes to loaded crafting station ids; dismantle completes to loaded dismantle station ids. The first-argument completion list also includes help.

Permission Nodes

Permissions declared in paper-plugin.yml and their defaults:

PermissionDefaultPurpose
emakistation.usetrueUse the station window and queue-related subcommands.
emakistation.purchasetrueBuy extra queue slots.
emakistation.dismantletrueUse the dismantle window.
emakistation.reloadopReload configuration.
emakistation.debugopDebug switches.
emakistation.adminopAdministrative operations.

emakistation.purchase is deliberately not placed under emakistation.queue.*: that prefix is already taken by queue length tiers, and mixing the two would make the meanings hard to tell apart. Purchasing additionally requires queue.purchase.enabled in config.yml and queue.allow_purchase on the station to both be true.

Per-Station Access Permissions

Crafting stations and dismantle stations have separate access prefixes. When permission is left empty in the configuration, it falls back to a node derived from the id:

TypeConfiguration keyFallback node when empty
Crafting stationpermission in stations/<id>.ymlemakistation.access.<id>
Dismantle stationpermission in stations_dismantle/<id>.ymlemakistation.dismantle.access.<id>

These prefixes are not declared in the descriptor because the node names depend on which stations the administrator configured. To grant the example station and the example dismantle station:

text
emakistation.access.blacksmith
emakistation.dismantle.access.example_dismantle

Queue Length Permission Tiers

With queue.permission_tiers enabled, the highest number among the player's emakistation.queue.<n> nodes wins, and <n> is the queue length. With no node under that prefix, base_length is kept unchanged.

text
emakistation.queue.8
emakistation.queue.16

Holding both of the above yields 16. A permission tier replaces the base length, whereas paid queue slots stack on top of the effective tier, and the result is clamped by the station's queue.max_length.

Threading

Every subcommand that touches a player's window or inventory dispatches to that player's owner thread first, because a command can arrive from the console or from another player's thread. On Folia that is the entity scheduler owner; on Paper it is the main server thread.