Files
core-staff/README.md
T
2026-05-26 00:59:39 -04:00

42 lines
2.2 KiB
Markdown

# Staff
Staff tools for KweebecNet: punishments, history, cross-server staff chat, player lookup.
## What it does
- **Punishments**: ban, tempban, mute, tempmute, kick, warn. All persist to MySQL. Bans + mutes propagate across all servers in the network within milliseconds (via NetworkCore's MessageBus).
- **History**: every action a player has ever received is queryable with `/history <player>`.
- **Staff chat**: `/sc <message>` broadcasts to every staff member online on any server.
- **Player lookup**: `/lookup <player>` shows UUID, online status, current/last server, active punishments.
## Requires
- **NetworkCore** with `mysql.enabled: true` and a healthy MySQL connection
- A working `network.auth_token` configured the same way as for NetworkCore (since this plugin uses the cross-server bus)
- The built-in Hytale `PermissionsModule` populated with at least one of the configured staff groups (defaults: `OP`, `ADMIN`, `MOD`, `HELPER`)
If MySQL isn't configured in NetworkCore, Staff refuses to start and logs a clear error. Fix NetworkCore first, then restart.
## Read before changing
See [docs/](docs/) for the full breakdown:
- [01_Overview.md](docs/01_Overview.md) - what's here and how the pieces fit
- [02_Configuration.md](docs/02_Configuration.md) - `config.json` fields, staff group setup
- [03_Commands.md](docs/03_Commands.md) - every command, syntax, behavior
- [04_Schema.md](docs/04_Schema.md) - MySQL tables, what's stored
- [05_Cross_Server_Propagation.md](docs/05_Cross_Server_Propagation.md) - how a ban on lobby-1 reaches arena-3
- [06_Operations.md](docs/06_Operations.md) - common ops scenarios, debugging tips
## Why this is critical
This plugin enforces who can be on the network. Bugs here mean:
- A banned player gets back in (the network looks compromised to your community)
- A staff member loses access (the network looks broken to staff)
- A mute leaks across worlds incorrectly (chat gets weird)
Treat changes to enforcement code (`BanEnforcer`, `ChatEnforcer`, `PunishmentService`) the same way you'd treat changes to NetworkCore - read the docs and ask a higher-up before merging.
The non-enforcement pieces (lookup, history, staff chat formatting) are lower-stakes; you can iterate on those more freely.