Files
spigot-stealth/design/user-stories/us-005-configure-and-persist-progression.md
T

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.