feat(admin): complete configurable progression
Release / release (push) Successful in 3m57s
CI / build (push) Successful in 54s

This commit is contained in:
dmg
2026-08-09 15:12:04 -04:00
parent c87d923cad
commit 8b1064b971
41 changed files with 924 additions and 626 deletions
@@ -2,7 +2,7 @@
type: User Story
title: "US-001: Unlock and establish Base I"
description: Let players earn and establish a persistent personal base by breaking dirt and grass blocks.
status: in-progress
status: done
---
# US-001: Unlock and establish Base I
@@ -11,18 +11,18 @@ As a **player**, I want to earn and set a personal base so that later quality-of
## Acceptance criteria
- [ ] Only blocks broken while the player is in Survival mode contribute progression.
- [ ] Breaking `GRASS_BLOCK` or `DIRT` contributes one unit of Base I progress.
- [ ] Other dirt-like materials, including coarse dirt, rooted dirt, podzol, mycelium, and dirt paths, do not contribute by default.
- [ ] Player-placed blocks may contribute when broken; natural-generation detection is not required.
- [ ] Base I unlocks when the player reaches the configured threshold, which defaults to 250 qualifying blocks.
- [ ] `/setbase` is unavailable before Base I and explains the unmet requirement.
- [ ] After Base I unlocks, `/setbase` records the player's current world and block location as the center of a cylindrical base.
- [ ] The initial cylinder has a configurable 10-block horizontal radius and extends a configurable 25 blocks above and 25 blocks below the set Y coordinate.
- [ ] The first successful `/setbase` is immediately available.
- [ ] A successful relocation starts a configurable elapsed-time cooldown that defaults to 24 hours.
- [ ] Failed attempts do not start or extend the relocation cooldown.
- [ ] Progress and base state are associated with the player's UUID and survive restarts.
- [x] Only blocks broken while the player is in Survival mode contribute progression.
- [x] Breaking `GRASS_BLOCK` or `DIRT` contributes one unit of Base I progress.
- [x] Other dirt-like materials, including coarse dirt, rooted dirt, podzol, mycelium, and dirt paths, do not contribute by default.
- [x] Player-placed blocks may contribute when broken; natural-generation detection is not required.
- [x] Base I unlocks when the player reaches the configured threshold, which defaults to 250 qualifying blocks.
- [x] `/setbase` is unavailable before Base I and explains the unmet requirement.
- [x] After Base I unlocks, `/setbase` records the player's current world and block location as the center of a cylindrical base.
- [x] The initial cylinder has a configurable 10-block horizontal radius and extends a configurable 25 blocks above and 25 blocks below the set Y coordinate.
- [x] The first successful `/setbase` is immediately available.
- [x] A successful relocation starts a configurable elapsed-time cooldown that defaults to 24 hours.
- [x] Failed attempts do not start or extend the relocation cooldown.
- [x] Progress and base state are associated with the player's UUID and survive restarts.
## Related