feat(master): outdated instances take nobody new and stop once empty

Instances on an old binary or old zone files are marked outdated: routing,
private passwords and merges skip them. Outdated properties remind their
players every 10 minutes that an update is waiting (ANNOUNCE) and stop once
empty. A new instance of the same property waits for the old one to be gone
before its world server starts, so two worlds never save one property.
The server list carries the flag after the endpoints (read when present).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Aaron Kimbrell
2026-09-30 04:03:15 -05:00
parent c6831ac80e
commit 8f891229e6
9 changed files with 327 additions and 9 deletions

View File

@@ -267,6 +267,9 @@ namespace MasterPackets {
uint32_t port{};
uint8_t isPrivate{};
eState state{ eState::READY }; // written after the UGC fields, one byte per instance
// On an old binary or old zone files: takes nobody new and stops once empty. Written after the endpoints,
// one byte per instance, and read only when there (older masters didn't write it)
uint8_t outdated{};
};
uint8_t authOnline{};