A version that spares the server main thread
- Map reporting went from “assembling the JSON for 197,000 points inside the server tick” to “that tick only hands the data over and the assembly runs on a background thread”. This is the only place in the whole mod that could cause “hundreds of milliseconds in a single tick”, and it matches the occasional spike every half hour exactly.
- The remaining costs that scale with player or entity counts were optimised too: TAB number formatting is cached per tick, player lookup by name uses a name index rebuilt once per tick, the advancement list no longer builds a string per entry, the config files and ban list read every 30 seconds moved to the background, the chat queue length check uses a counter, network sampling no longer creates a thread every 20 seconds, and the command throttle table no longer only grows. The report format, the field names and the moment the values are taken are all unchanged.