7.9 KiB
7.9 KiB
type, title, description
| type | title | description |
|---|---|---|
| Log | Spigot Base Design Log | Chronological record of material decisions affecting the Spigot Base design. |
Spigot Base Design Log
2026-08-09 — Initial progression design
- Base progression is sequential: Base I establishes a base, Base II provides navigation, Base III provides personal teleportation, and Base IV permits visitor teleportation.
- Every secondary progression path requires Base I.
- A base is cylindrical and begins with a 10-block radius and a vertical extent 25 blocks above and below its set Y coordinate.
- Only Survival-mode activity contributes progress; repeatedly placing and breaking blocks is permitted.
- Flight is limited to the base, includes a five-block horizontal warning buffer, and can be toggled by the player.
- Player-facing administration will initially use commands rather than an inventory UI.
- The build and release pipeline will follow the neighboring Trigger Spawn project pattern.
2026-08-09 — Implementation started
- Approved implementation begins with the tested Gradle/Spigot foundation, validated configuration, and durable player state.
- Feature work will proceed incrementally using tests before implementation where practical.
2026-08-09 — Core implementation checkpoint
- Implemented UUID-keyed YAML state, validated configuration, Base I–IV progression, base sizing, particle navigation, controlled base flight, personal and visitor teleportation, progress feedback, and initial administrative commands.
- Added Gradle, Spigot metadata, Gitea CI/release workflows, and project documentation based on Trigger Spawn.
- Verified the implementation with
./gradlew clean check jar: 34 tests passed and the plugin JAR was produced successfully. - User stories remain in progress pending live-server integration verification and completion of runtime administrative configuration editing.
2026-08-09 — Navigation preference fix
- Added explicit, idempotent
/basenavigation onand/basenavigation offmodes with autocomplete while retaining no-argument toggling. - Preserved a disabled navigation preference during later grass-or-dirt progression instead of forcing navigation back on.
2026-08-09 — Initial release scope completed
- Added live, validated, persisted numeric configuration updates through
/baseadmin config. - Added administrative progress-counter updates, prerequisite-aware level changes, cooldown clearing, and cascading path resets.
- Made progression materials, visitor currency, boss-bar duration, particle count, and title timing configurable.
- Preserved unknown forward-compatible YAML fields for retained player records while continuing to reject invalid progression state.
- Completed and verified all approved user stories with the automated Gradle check lifecycle.
2026-08-10 — Player command aliases
- Added
/sethomefor/setbase,/homefor/base, and/visitfor/gotobase. - Visitor autocomplete remains available for eligible offline bases through the
/visitalias. - Verified the aliases and plugin build with
./gradlew clean check jar.
2026-08-10 — Toggle command autocomplete
- Added explicit, idempotent
onandoffmodes and autocomplete to base flight and visitor access while retaining no-argument toggling. - Added
/homenavigation,/homeflight, and/homevisitorsaliases with the same autocomplete as their canonical commands. - Generalized toggle preference resolution for navigation, flight, and visitor access.
- Verified the implementation with
./gradlew clean check jar.
2026-08-10 — Unified base settings command
- Replaced the separate progress, navigation, flight, and visitor commands with
/basesettingsand its/homesettingsalias. - Added nested autocomplete for status, Base IV upgrades, visitor access, navigation, flight, and progress boss-bar settings.
- Moved the Base IV purchase from
/base upgradeto/basesettings upgrade, leaving/baseand/homededicated to personal teleportation. - Preserved the full progression report as the default
/basesettingsresponse and as/basesettings status. - Verified the breaking command restructure with
./gradlew clean check jar.
2026-08-10 — Administrative command autocomplete and reset safety
- Added
/homeadminas an alias for/baseadminand replaced the administrativeprogresssubcommand withstatus. - Added permission-aware, context-sensitive autocomplete for subcommands, online and known offline players, paths, levels, counters, cooldown types, reset confirmation, and numeric configuration keys.
- Removed the unsafe unconfirmed base reset path; complete resets now require
reset <player> all confirm. - Tightened argument validation and replaced implementation-specific enum errors with player-facing usage guidance.
- Verified the administrative revision with
./gradlew clean check jar.
2026-08-10 — Base border visualization
- Added persisted, owner-only base border particles controlled by
/basesettings border enable|disablewith contextual autocomplete. - Rendered a bounded nearby arc at the player's current height using the current base radius while respecting world and vertical bounds.
- Added border preference reporting to player and administrative status output and safe defaults for existing state files.
- Verified the feature with
./gradlew clean check jar.
2026-08-10 — Spawnable block overlay
- Added persistent progression for Survival-mode block placements anywhere, with existing in-base placement counts used as a safe migration minimum.
- Added
/basesettings spawnable enable|disableafter a configurable 250-placement unlock and reported its progress and preference in player and admin status output. - Added admin controls for total placement progress, the unlock threshold, and each unlocked player's overlay preference.
- Added owner-only red particles for nearby dark spawning surfaces inside base bounds, using bounded incremental scanning and rendering budgets.
- Verified the feature with
./gradlew clean check jar.
2026-08-10 — Navigation visibility buffer
- Limited enabled base navigation particles to the base's world and positions more than 25 horizontal blocks beyond the current base border.
- Used the live size-tier radius so expansion and relocation immediately update the visibility threshold.
- Added exact-boundary and controller integration coverage.
- Verified the change with
./gradlew clean check jar.
2026-08-24 — Pocket Base mob-spawning control
- Disabled natural hostile and passive mob spawning by default in new and existing Pocket Bases without a saved preference.
- Added the persisted owner setting
/basesettings pocket mobs enable|disable, contextual autocomplete, and status reporting. - Reapplied saved spawn flags when Pocket Base worlds load and restored the prior world setting when persistence fails.
- Verified the feature with
./gradlew clean check jar.
2026-08-24 — Relocatable Pocket Base return portals
- Allowed Pocket Base owners to activate a complete return portal frame with flint and steel anywhere inside their unlocked pocket boundary.
- 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_voidand 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.