feat(admin): manage player stealth state
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
type: User Story
|
||||
title: "US-004: Inspect and manage player stealth"
|
||||
description: Give administrators durable controls for online and offline progression, unlocks, and active concealment.
|
||||
status: backlog
|
||||
status: done
|
||||
---
|
||||
|
||||
# US-004: Inspect and manage player stealth
|
||||
@@ -11,19 +11,23 @@ As a **server administrator**, I want to inspect and correct player stealth stat
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
- [ ] `/stealthadmin status <player|uuid>` reports accumulated time, unlock status, prepared-login state, and current concealment state.
|
||||
- [ ] Status inspection works for online players and known offline players selected by exact current or previously recorded name or UUID.
|
||||
- [ ] `/stealthadmin grant <player|uuid>` grants the unlock to an online or known offline player without altering accumulated time unnecessarily.
|
||||
- [ ] Granting an already-owned unlock is safe and clearly reports that no change was needed.
|
||||
- [ ] Granting the unlock sends the normal full-screen title and chat notification when the target is online.
|
||||
- [ ] `/stealthadmin reset <player|uuid> confirm` clears accumulated time, unlock ownership, prepared-login state, and current concealment for an online or known offline player.
|
||||
- [ ] Reset requires explicit confirmation and safely restores an online concealed player to ordinary identity presentation.
|
||||
- [ ] `/stealthadmin list` lists every currently online concealed player and clearly reports when there are none.
|
||||
- [ ] Concealed players remain absent from administrators' ordinary tab lists and retain hidden overhead name tags; the admin command is the supported discovery mechanism.
|
||||
- [ ] Commands clearly reject unknown, ambiguous, malformed, or otherwise invalid targets without creating unintended player records.
|
||||
- [ ] Administrative inspection and modification require an operator-default administrative permission.
|
||||
- [ ] State-changing operations persist before success is reported and are safe under retries.
|
||||
- [ ] Grant and reset actions record the administrator, target UUID, and action in the server log without blocking the server tick thread.
|
||||
- [x] `/stealthadmin status <player|uuid>` reports accumulated time, unlock status, prepared-login state, and current concealment state.
|
||||
- [x] Status inspection works for online players and known offline players selected by exact current or previously recorded name or UUID.
|
||||
- [x] `/stealthadmin grant <player|uuid>` grants the unlock to an online or known offline player without altering accumulated time unnecessarily.
|
||||
- [x] Granting an already-owned unlock is safe and clearly reports that no change was needed.
|
||||
- [x] Granting the unlock sends the normal full-screen title and chat notification when the target is online.
|
||||
- [x] `/stealthadmin reset <player|uuid> confirm` clears accumulated time, unlock ownership, prepared-login state, and current concealment for an online or known offline player.
|
||||
- [x] Reset requires explicit confirmation and safely restores an online concealed player to ordinary identity presentation.
|
||||
- [x] `/stealthadmin list` lists every currently online concealed player and clearly reports when there are none.
|
||||
- [x] Concealed players remain absent from administrators' ordinary tab lists and retain hidden overhead name tags; the admin command is the supported discovery mechanism.
|
||||
- [x] Commands clearly reject unknown, ambiguous, malformed, or otherwise invalid targets without creating unintended player records.
|
||||
- [x] Administrative inspection and modification require an operator-default administrative permission.
|
||||
- [x] State-changing operations persist before success is reported and are safe under retries.
|
||||
- [x] Grant and reset actions record the administrator, target UUID, and action in the server log without blocking the server tick thread.
|
||||
|
||||
## Validation
|
||||
|
||||
Automated tests verify exact offline name and UUID resolution, ambiguous and unknown rejection without record creation, complete status output, idempotent grants and notification, complete resets with presentation cleanup, online concealed-player filtering, confirmation and permission gates, persisted-before-success replies, and audit records. The complete `./gradlew clean check jar` lifecycle passes.
|
||||
|
||||
## Related
|
||||
|
||||
|
||||
Reference in New Issue
Block a user