11 KiB
11 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 independent persisted owner settings through
/basesettings pocket mobs <hostile|passive> <enable|disable>, contextual autocomplete, and status reporting. - Migrated each legacy combined mob-spawning preference to both categories to preserve existing behavior.
- Reapplied both saved spawn flags when Pocket Base worlds load and restored both prior world settings 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.
2026-08-24 — Native base settings dialog
- Changed
/basesettingsand/homesettingswith no arguments to open a native Minecraft dialog dashboard, with explicituisubcommands providing the same behavior. - Added progression summaries, current and locked setting states, toggles, Pocket Base controls, biome selection, and confirmations for Base IV, Pocket Base, and biome purchases.
- Retained the detailed chat report under
/basesettings statusand kept dialog actions routed through the existing validated command behavior. - Added dialog routing, autocomplete, alias, non-player, generated-control, locked-state, and purchase-confirmation coverage.
- Verified the feature with
./gradlew clean check jar.
2026-08-24 — Purpur dialog runtime compatibility
- Replaced the Spigot-only Bungee dialog types that were absent from production with Purpur's supported Paper dialog API.
- Compiled and tested against the exact Purpur 26.2 build 2618 API with Java 25, and updated both CI workflows to use Java 25.
- Preserved unit-test coverage through server-independent dialog specifications and adapted Bukkit test fixtures to Purpur's registry-aware API behavior.
- Verified 128 tests and the Java 25 plugin artifact with
./gradlew clean check jar.
2026-08-25 — Static dialog command actions
- Replaced macro command templates with static run-command actions for fixed dialog buttons.
- Added regression coverage for the generated run-command action and its unchanged command payload.
- Verified
/basesettingsopens without command exceptions on a local Purpur 26.2 build 2618 server. - Verified the plugin artifact with
./gradlew clean check jar.
2026-08-24 — Pocket Base mob portal travel
- Added five-tick collision scanning that transports non-player living mobs through active Pocket Base entrance and return portals.
- Reused safe player destinations and server-spawn fallback behavior while excluding items, projectiles, vehicles, and other non-living entities.
- Applied the existing two-second portal cooldown to mobs to prevent immediate repeated transport.
- Verified the feature and Java 25 plugin artifact with
./gradlew clean check jar.
2026-08-28 — Safe Pocket Base fall returns
- Cleared accumulated fall distance whenever portal or void-return travel teleports an entity, preventing carried-over fall damage at the destination.
- Added regression coverage for players falling out of a Pocket Base and returning to the server spawn.
- Verified the fix and plugin artifact with
./gradlew clean check jar.