README.md
1.5 KB · sha256:75a9ac976bfdb8a7e37d9d950946501f879b32623661c3f99722c4d3a77e8266
# ward
Permissions, groups, tracks (with economy-aware rank-up gates), and a web
admin panel for Paper servers running [Rune](https://runemc.dev).
## Local development
```bash
bun install
```
The script auto-loads under `plugins/Rune/scripts/ward/` whenever the
host server restarts.
## Publishing to Runebook
This directory is set up as a publishable Rune. From this folder:
```bash
rune login # one-time: paste a PAT from runemc.dev/dashboard/tokens
rune pack # dry-run: see exactly which files will ship
rune publish # uploads + finalises the version
```
### What gets shipped
`rune.toml` (the publish descriptor) controls the file list. The pack
pipeline:
* walks `index.ts`, `commands/`, `lib/`, `menus/`, `models/`, `db/`,
`config/`, `placeholders/`, `web/`, plus `rune.jsonc`, `package.json`,
and `types.d.ts`;
* strips `node_modules/`, `bun.lock`, `.git/`, `**/dist/`, `**/*.map`,
test files, and similar dev junk via the CLI's default-deny list.
### Things to know before the first publish
* The web app (`web/`) currently bootstraps with `dev: true` in
[`index.ts`](./index.ts). Flip that off before a real release so
installers don't try to spin up a Vite dev server.
* Capabilities are unset in `rune.toml`. Once the registry starts
enforcing them, list what ward actually uses (mongo, http-serve,
bukkit, main-thread scheduling).
* Bump `version` in `rune.toml` for every publish — the registry rejects
re-publishes of an existing semver.