init
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user