# Stations

Virtual workstations without a block nearby: individually per command or collected in the `/stations` hub GUI. All interfaces work identically to their physical block version.

## Commands

| Command | Syntax | Permission | Default | Description |
|---|---|---|---|---|
| `/stations` | `/stations` (alias `/workstations`) | `stations.use` | `true` | Hub GUI with all stations |
| `/workbench` | `/workbench` (alias `/craft`, `/wb`) | `util.workbench` | `true` | Crafting table |
| `/anvil` | `/anvil` | `util.anvil` | `true` | Anvil |
| `/smithingtable` | `/smithingtable` (alias `/smithing`) | `stations.smithing` | `true` | Smithing table |
| `/loom` | `/loom` | `stations.loom` | `true` | Loom |
| `/stonecutter` | `/stonecutter` | `stations.stonecutter` | `true` | Stonecutter |
| `/cartographytable` | `/cartographytable` (alias `/cartography`) | `stations.cartography` | `true` | Cartography table |
| `/grindstone` | `/grindstone` | `stations.grindstone` | `true` | Grindstone |
| `/enchantingtable` | `/enchantingtable [level]` (alias `/enchant`, `/enchanting`) | `stations.enchanting` | `true` | Enchanting table, optionally at a chosen level (see below) |

## Additional permissions

| Permission | Default | Description |
|---|---|---|
| `stations.enchanting.level` | op | Allows `/enchantingtable <level>`: an enchanting table offering enchantments up to the chosen level, no bookshelves needed |

> **Note:** Buttons in the hub GUI are disabled when their permission is missing. The **Workbench** and **Anvil** buttons in `/stations` are the same features as `/workbench` and `/anvil`: they use those commands' permissions (`util.workbench`, `util.anvil`), their cost and cooldown keys in `modules/utility.yml` (`cost.commands.workbench` / `anvil`, `cooldown.commands.workbench` / `anvil`) and are switched off together with the command when it is listed in `utility.disabled-commands` (the button then shows greyed out as "Disabled on this server"). The former nodes `stations.workbench` and `stations.anvil` no longer exist.

> **Tip:** Since all permissions default to true, block individual stations by actively revoking the permission via LuckPerms.

## Enchanting table with a level

With the permission `stations.enchanting.level` players can append a level to the command, for example `/enchantingtable 30`. The virtual table then offers exactly what a real table with the matching number of bookshelves would offer: at 30 the full 15 shelves. Everything else stays vanilla, experience levels and lapis cost as usual, and the enchantment hints shown match the result.

The highest selectable level is set by `max-custom-level`. Mind wildcards: `stations.*` or `stations.enchanting.*` grant the right as well. Charge money with `custom-level-cost` (flat) and `custom-level-cost-per-level` (amount times the chosen level), on top of the normal station cost. Players without the permission get a no-permission notice when they add a number; `/enchantingtable` without a number keeps working for everyone as before.

## Configuration (modules/stations.yml)

```yaml
# Enables or disables the stations module with all commands and the hub GUI.
enabled: true

stations:
  # Second, equivalent switch; kept when disabling.
  enabled: true
  # Highest level for /enchantingtable <level>. 30 equals a table with
  # 15 bookshelves. Requires the permission stations.enchanting.level,
  # which is off by default.
  max-custom-level: 30
  # Money for /enchantingtable <level>: flat amount plus amount per level.
  custom-level-cost: 0.0
  custom-level-cost-per-level: 0.0
```

## Complete example config

```yaml
enabled: true

stations:
  enabled: true
  max-custom-level: 30
  # Money for /enchantingtable <level>: flat amount plus amount per level.
  custom-level-cost: 0.0
  custom-level-cost-per-level: 0.0
```
