feat(access): manage spawn access grants
This commit is contained in:
@@ -39,3 +39,9 @@ description: Chronological record of significant Trigger Spawn design decisions.
|
||||
- Added `/spawnadmin set`, `distance`, and `info` for player-operated configuration of the current world.
|
||||
- Worlds default to their native spawn and an independently persisted 20-block radius.
|
||||
- Circular target sampling is uniform by area, preserves configured facing, and supports a zero-block radius.
|
||||
|
||||
## 2026-08-08 — Administrative access grants
|
||||
|
||||
- Added custom `/spawn` cooldown grants with safe, friendly duration parsing.
|
||||
- Added complete access resets and a paginated view of naturally and administratively eligible players.
|
||||
- Administrative targets resolve online players, persisted names, server-known offline players, and known UUIDs while state remains keyed by UUID.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
type: User Story
|
||||
title: "US-004: Grant and remove spawn access"
|
||||
description: Let administrators grant custom spawn cooldowns, inspect access, and completely reset a player's access.
|
||||
status: backlog
|
||||
status: done
|
||||
---
|
||||
|
||||
# US-004: Grant and remove spawn access
|
||||
@@ -11,17 +11,17 @@ As a **server administrator**, I want to grant, inspect, and remove spawn access
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
- [ ] `/spawnadmin grant <player> <duration>` grants immediate `/spawn` access with the supplied cooldown.
|
||||
- [ ] Friendly, case-insensitive duration units are accepted, including values such as `30m`, `2h`, and `1d`.
|
||||
- [ ] Zero, negative, malformed, or overflowing grant durations are rejected with an explanatory message.
|
||||
- [ ] A custom administrative grant overrides the player's boss-based cooldown tier while the grant exists.
|
||||
- [ ] Killing qualifying enemies does not replace an active administrative grant's custom cooldown.
|
||||
- [ ] `/spawnadmin remove <player>` removes any administrative grant, recorded enemy progress, and active cooldown from the player.
|
||||
- [ ] After removal, the player begins with no access and can earn it again by defeating a qualifying enemy.
|
||||
- [ ] `/spawnadmin access [page]` lists all players who currently have natural or granted access, including offline players.
|
||||
- [ ] Each access-list entry identifies the player, access source, applicable cooldown, progression tier when relevant, and current remaining cooldown.
|
||||
- [ ] Administrative player arguments support online players and previously known offline players when they can be resolved safely.
|
||||
- [ ] Player state is stored by UUID while retaining the latest known player name for display and lookup.
|
||||
- [x] `/spawnadmin grant <player> <duration>` grants immediate `/spawn` access with the supplied cooldown.
|
||||
- [x] Friendly, case-insensitive duration units are accepted, including values such as `30m`, `2h`, and `1d`.
|
||||
- [x] Zero, negative, malformed, or overflowing grant durations are rejected with an explanatory message.
|
||||
- [x] A custom administrative grant overrides the player's boss-based cooldown tier while the grant exists.
|
||||
- [x] Killing qualifying enemies does not replace an active administrative grant's custom cooldown.
|
||||
- [x] `/spawnadmin remove <player>` removes any administrative grant, recorded enemy progress, and active cooldown from the player.
|
||||
- [x] After removal, the player begins with no access and can earn it again by defeating a qualifying enemy.
|
||||
- [x] `/spawnadmin access [page]` lists all players who currently have natural or granted access, including offline players.
|
||||
- [x] Each access-list entry identifies the player, access source, applicable cooldown, progression tier when relevant, and current remaining cooldown.
|
||||
- [x] Administrative player arguments support online players and previously known offline players when they can be resolved safely.
|
||||
- [x] Player state is stored by UUID while retaining the latest known player name for display and lookup.
|
||||
|
||||
## Related
|
||||
|
||||
|
||||
Reference in New Issue
Block a user