feat(pocket-base): add purchasable biome changes
Release / release (push) Successful in 2m54s
CI / build (push) Successful in 1m16s

This commit is contained in:
dmg
2026-08-24 10:32:32 -04:00
parent 4518478ea1
commit 6ea5bc16f4
20 changed files with 598 additions and 21 deletions
+8
View File
@@ -105,3 +105,11 @@ description: Chronological record of material decisions affecting the Spigot Bas
- Persisted one active return portal location while retaining the generated portal as the default for existing Pocket Bases.
- Made only the selected intact frame functional without removing old frame blocks, preserving the void-return safety fallback.
- Verified the feature with `./gradlew clean check jar`.
## 2026-08-24 — Purchasable Pocket Base biomes
- Added `/basesettings pocket type <void|nether|overworld> <subtype>` with type-aware autocomplete and validation.
- Defaulted new and unconfigured Pocket Bases to `void/the_void` and persisted each owner's selected biome.
- Applied biome metadata across unlocked columns and new expansion rings without changing blocks, entities, inventories, portals, progression, or mob-spawning preferences.
- Added an atomic, configurable biome-change payment that defaults to 16 netherite blocks and restores the prior biome and payment on failure.
- Verified the feature with `./gradlew clean check jar`.
+1
View File
@@ -24,3 +24,4 @@ description: Catalog of user stories for the Spigot Base plugin.
16. [US-016: Build and use Pocket Base portals](us-016-build-and-use-pocket-base-portals.md)
17. [US-017: Expand a Pocket Base](us-017-expand-a-pocket-base.md)
18. [US-018: Control Pocket Base mob spawning](us-018-control-pocket-base-mob-spawning.md)
19. [US-019: Change a Pocket Base biome](us-019-change-a-pocket-base-biome.md)
@@ -26,3 +26,4 @@ As a **Pocket Base owner**, I want to enable or disable natural mob spawning in
- [US-015: Unlock a Pocket Base](us-015-unlock-a-pocket-base.md)
- [US-016: Build and use Pocket Base portals](us-016-build-and-use-pocket-base-portals.md)
- [US-017: Expand a Pocket Base](us-017-expand-a-pocket-base.md)
- [US-019: Change a Pocket Base biome](us-019-change-a-pocket-base-biome.md)
@@ -0,0 +1,31 @@
---
type: User Story
title: "US-019: Change a Pocket Base biome"
description: Let Pocket Base owners purchase biome changes that alter natural mob selection without changing their builds.
status: done
---
# US-019: Change a Pocket Base biome
As a **Pocket Base owner**, I want to change my Pocket Base biome so that I can control its biome-specific atmosphere and natural mob selection without rebuilding it.
## Acceptance criteria
- [x] A Pocket Base owner can use `/basesettings pocket type <void|nether|overworld> <subtype>` to select a compatible biome.
- [x] Void supports `the_void`; Nether supports its vanilla biome subtypes; and Overworld supports its vanilla biome subtypes.
- [x] New and previously unconfigured Pocket Bases default to the void type and `the_void` subtype.
- [x] Each change atomically charges a configurable currency and amount that default to 16 netherite blocks.
- [x] Selecting the active subtype or providing an invalid type/subtype combination is rejected without charging.
- [x] Changing subtypes within the same type incurs the configured cost.
- [x] The selected biome is applied across every unlocked Pocket Base column without changing blocks, entities, inventories, portals, level, or the mob-spawning preference.
- [x] Newly unlocked terrain receives the selected biome.
- [x] When natural mob spawning is enabled, Minecraft can use the selected biome for applicable natural mob selection.
- [x] The selected type and subtype persist through restarts and appear in `/basesettings status`.
- [x] The command, types, and compatible subtypes are offered through contextual autocomplete.
- [x] Failed biome application or persistence restores the prior biome and does not consume payment.
## Related
- [US-015: Unlock a Pocket Base](us-015-unlock-a-pocket-base.md)
- [US-017: Expand a Pocket Base](us-017-expand-a-pocket-base.md)
- [US-018: Control Pocket Base mob spawning](us-018-control-pocket-base-mob-spawning.md)