2.0 KiB
2.0 KiB
type, title, description, status
| type | title | description | status |
|---|---|---|---|
| User Story | US-005: Configure and persist stealth progression | Give operators validated settings and durable, defensive storage for stealth behavior. | backlog |
US-005: Configure and persist stealth progression
As a server operator, I want stealth progression to be configurable and durable so that the plugin remains predictable across restarts and balance changes.
Acceptance criteria
- The qualifying-time threshold is configurable and defaults to eight hours.
- Player-facing progress, unlock, prepared-login, and concealed-session messages are configurable.
- Startup validates required settings before registering partially functional listeners, commands, or tasks.
- Invalid required configuration prevents initialization and produces a clear server log message.
- UUID-keyed state stores accumulated qualifying duration, unlock ownership, active qualifying timing data, prepared-login state, and any current concealment metadata needed for safe recovery.
- Qualifying runtime intervals use a monotonic elapsed-time source so wall-clock adjustments cannot grant or remove progress.
- Durable timestamps, when required, use RFC 3339 UTC notation.
- State is saved periodically, after material state changes, and during orderly plugin disable.
- State uses atomic replacement where supported so an interrupted write does not replace valid data with a partial file.
- Corrupt, unknown, or invalid records cannot silently grant time, an unlock, a prepared login, or concealment.
- Unknown forward-compatible fields are preserved where practical.
- Persistence work does not perform blocking file operations on the server tick thread.