Files
spigot-base/design/user-stories/us-004-unlock-and-control-base-flight.md
T
dmg 9692df9101
Release / release (push) Successful in 4m20s
CI / build (push) Successful in 1m13s
fix(flight): show boundary warning only while flying
2026-08-21 22:23:01 -04:00

37 lines
2.5 KiB
Markdown

---
type: User Story
title: "US-004: Unlock and control base flight"
description: Let players permanently unlock and toggle increasingly broad flight within their personal base.
status: done
---
# US-004: Unlock and control base flight
As a **player with Base I**, I want to unlock controlled flight around my base so that I can build large structures more conveniently.
## Acceptance criteria
- [x] Flight progression is unavailable until Base I is unlocked and a base is established.
- [x] The plugin observes elytra held directly in the player's inventory and armor equipment while the player is in Survival mode.
- [x] Elytra inside shulker boxes, bundles, or other nested containers do not count.
- [x] Observing one elytra permanently unlocks Flight I, two simultaneous elytra unlock Flight II, and three simultaneous elytra unlock Flight III.
- [x] A player observed with enough elytra for a later tier receives all unmet preceding flight tiers.
- [x] Elytra are not consumed, and losing them later does not revoke an earned tier.
- [x] Flight I permits plugin-granted flight within the current horizontal base radius and from 25 blocks below through 25 blocks above base Y by default.
- [x] Flight II expands the vertical range to 100 blocks below and above base Y by default.
- [x] Flight III expands the vertical range to the world's minimum and maximum build heights.
- [x] A configurable five-block horizontal warning buffer extends beyond the current base radius.
- [x] Plugin-granted flight remains active in the warning buffer, and a prominent on-screen notice that the player is leaving the base appears only while the player is actively flying.
- [x] Passing beyond the warning buffer removes only flight granted by this plugin.
- [x] Flight is not granted outside the unlocked vertical range.
- [x] `/basesettings flight enable` enables unlocked flight idempotently, and `/basesettings flight disable` disables it idempotently.
- [x] Invalid flight arguments show command usage, and `enable` and `disable` are offered through autocomplete.
- [x] The flight toggle persists across reconnects and restarts.
- [x] The plugin handles teleportation, world changes, game-mode changes, death, logout, and plugin shutdown without leaving unintended flight enabled.
## Related
- [US-001: Unlock and establish Base I](us-001-unlock-and-establish-base.md)
- [US-003: Expand the base](us-003-expand-the-base.md)
- [US-009: View progression and unlock notifications](us-009-view-progression-and-notifications.md)