42 lines
2.3 KiB
Markdown
42 lines
2.3 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)
|
|
- Hytale permission nodes assigned to your staff group(s). Grant `networkstaff.*` for full access, or pick specific nodes - see [docs/03_Commands.md](docs/03_Commands.md#permissions).
|
|
|
|
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.
|