Files
spigot-base/design/log.md
T
dmg 6ea5bc16f4
Release / release (push) Successful in 2m54s
CI / build (push) Successful in 1m16s
feat(pocket-base): add purchasable biome changes
2026-08-24 10:32:32 -04:00

7.9 KiB
Raw Permalink Blame History

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 IIV 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 on and /basenavigation off modes 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 /sethome for /setbase, /home for /base, and /visit for /gotobase.
  • Visitor autocomplete remains available for eligible offline bases through the /visit alias.
  • Verified the aliases and plugin build with ./gradlew clean check jar.

2026-08-10 — Toggle command autocomplete

  • Added explicit, idempotent on and off modes and autocomplete to base flight and visitor access while retaining no-argument toggling.
  • Added /homenavigation, /homeflight, and /homevisitors aliases 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 /basesettings and its /homesettings alias.
  • Added nested autocomplete for status, Base IV upgrades, visitor access, navigation, flight, and progress boss-bar settings.
  • Moved the Base IV purchase from /base upgrade to /basesettings upgrade, leaving /base and /home dedicated to personal teleportation.
  • Preserved the full progression report as the default /basesettings response and as /basesettings status.
  • Verified the breaking command restructure with ./gradlew clean check jar.

2026-08-10 — Administrative command autocomplete and reset safety

  • Added /homeadmin as an alias for /baseadmin and replaced the administrative progress subcommand with status.
  • 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|disable with 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|disable after 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_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.