Files
dmg f011410b17
Release / release (push) Successful in 2m54s
CI / build (push) Successful in 1m2s
feat(commands): view and set online player heights
2026-09-06 20:05:41 -04:00

4.9 KiB

type, title, description
type title description
Log Spigot Heights Design Log Chronological record of material decisions affecting Spigot Heights.

Spigot Heights Design Log

2026-09-07T00:00:54Z — Player-height commands completed

  • Added /heights player <name> [scale] for exact online-player lookup, base/effective scale reporting, immediate saved changes, and permission-protected name/size completion.
  • Command-set scales honor live limits and the exact 1.0 restoration exception. The player-state store now publishes cached changes only after successful persistence, and commands save before applying scale.
  • Verified ./gradlew clean check jar: all 33 tests passed, including permissions, input validation, completions, scale reporting, reload, and failed-save protection. Inspected Bukkit lookup/attribute and join/respawn wiring; live-server/client verification remains unperformed.
  • Updated README and completed US-008 and related US-004/US-007 criteria.

2026-09-06T23:54:36Z — Player-height commands approved and started

  • Approved US-008: /heights player <name> [scale] for online players, admin permissions, tab completion, and UUID persistence.
  • Values follow current min/max bounds with the exact 1.0 exception; failed saves must not change cached or live player height.

2026-09-06T23:51:22Z — Settings commands completed

  • Added /heights settings and /heights set min|max <value> with spigotheights.admin (default op), generic sender support, and prefix-filtered tab completion of valid example values.
  • Validated changes are persisted through temporary-file replacement (atomic where supported) before activating shared live settings. Unrelated YAML values are preserved; malformed files and write failures do not activate new limits.
  • Updated gameplay listeners to read current settings without immediately resizing players or resetting launcher cooldowns.
  • Verified ./gradlew clean check jar: all 26 tests passed. Inspected command registration and event wiring; live-server/client verification remains unperformed. Completed US-007 and the related US-004 change.

2026-09-06T23:45:28Z — Settings commands approved and started

  • Approved US-007: permission-protected min/max commands, tab completion, validation, and persistent live updates.
  • Existing players are not resized immediately; subsequent gameplay reads current limits. The exact 1.0 restoration exception remains intact.

2026-09-06T23:41:16Z — Restoration completed

  • Added the white Potion of Restoration with persistent identity and the approved Sugar upgrade recipe.
  • Consumption restores exact scale 1.0 through the existing report/save path; saved 1.0 bypasses configured-range clamping on join and respawn.
  • Verified ./gradlew clean check jar: all 17 tests passed, including restoration, persistence reload, range exceptions, recipe shape, identity, and existing potion regression coverage.
  • Inspected Bukkit recipe/metadata and event wiring; live-server gameplay verification remains unperformed. Updated the README and completed US-006 and the related US-004 change.

2026-09-06T23:37:19Z — Restoration approved and implementation started

  • Approved US-006: a Sugar-based upgrade of Shifting Stature restores exact scale 1.0.
  • Approved an exception to saved-scale clamping in US-004 so restoration survives reconnects and respawns even outside configured limits.

2026-09-04 — Initial design approved

  • Player scale defaults to a configurable range of 0.4 through 2.0.
  • A moderate recipe creates a random stature potion; more expensive upgrades create targeted growth and diminution potions.
  • Random stature is selected uniformly in configurable 0.1 increments.
  • Players strictly below scale 0.5 can be launched through a dispenser fed by the hopper beneath them.
  • Launcher speed defaults to 1.5 blocks per tick with a 20-tick cooldown and safe-exit checks.
  • The project follows the neighboring Spigot Base Java 25, Purpur, Gradle, OKF, CI, and release conventions.

2026-09-04 — Implementation started

  • Approved implementation began with user stories, tests, and the Gradle/Purpur foundation.

2026-09-04 — Initial release scope completed

  • Implemented authenticated random, growth, and diminution potions with approved recipes and durable UUID-keyed player scale.
  • Added validated stature and launcher configuration with safe clamping to Minecraft's scale range.
  • Implemented cooldown-protected hopper-to-dispenser launch tubes for tiny players with six-axis launch support and empty-exit checks.
  • Added the Java 25 Purpur build, automated tests, Gitea CI and semantic-release workflows, README, and project-specific agent guidance.
  • Verified the implementation with ./gradlew clean check jar and created the public dmg/spigot-heights Gitea repository.