# 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 `. - **Staff chat**: `/sc ` broadcasts to every staff member online on any server. - **Player lookup**: `/lookup ` 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.