Updates documentation.

This commit is contained in:
2026-10-22 17:33:45 -07:00
parent 37f5e19fbd
commit 5de22ec0ea
12 changed files with 348 additions and 72 deletions

View File

@@ -0,0 +1,59 @@
# Metropolis Modernization Plan
This is the maintained status and follow-up plan. Implemented behavior is
described in [README.md](../README.md); automated and manual coverage are
separated in [human-tests.md](human-tests.md). A feature is not considered
runtime-verified merely because its code or an isolated unit test exists.
## Completed
- **Build and CI modernization.** Gradle 9.8 builds the Java 25 plugin and
expands the version into `plugin.yml`. CI runs `test` and the plugin build
for pushes and pull requests to `develop`. Completion check: running
`./gradlew test build` succeeds; CI provides the corresponding hosted check.
- **Paper/WorldGuard/WorldEdit integration.** The plugin declares Paper API
26.2, WorldGuard 7.0.19, and WorldEdit 7.4.5, and uses WorldGuard regions
for city, home, and reservation geometry. Paper 26.2/26.3 are project
targets; the current build and CI do not perform live server compatibility
checks. Completion check for runtime claims: run the applicable manual
scenarios in `human-tests.md` on a disposable server.
- **Plot, home, and command features.** The implementation includes join-time
initial home allocation, explicit additional-home acquisition, UUID-based
active-home persistence with legacy name-key loading, user/permission plot
overrides, reservations, multi-level support checks, and configured
road/stair generation. Isolated tests cover parts of these rules; see
`src/test/` and `human-tests.md` for their boundaries.
## Pending
- **Expand live-server integration coverage.** The current `integrationTest`
suite only checks plugin visibility and persistence of one coordinate-based
WorldGuard reservation. Add focused disposable-server checks for join-time
home allocation/ownership and selected-home restart persistence. Completion
criteria: tests assert the expected region/UUID state before and after a
restart, clean up their own test regions, and remain excluded from `build`.
- **Choose optional login allocation policies (MET-023/MET-024).** Current
behavior allocates the configured initial home count (default one) when a
player has no home; later homes require `/metropolis-home-acquire`. Decide
whether to offer grant-all-to-limit or one-more-per-login policies before
implementing them. Completion criteria: documented config semantics,
compatibility defaults, and unit tests for limits, reconnects, and existing
home selections.
- **Choose an allocation traversal option (MET-025).** The proposal to select
a rectangle/cuboid or ring-based traversal remains unimplemented. First
document deterministic ordering and how each policy treats occupied regions,
levels, and WorldBorder bounds. Completion criteria: configuration and
focused allocation tests establish repeatable ordering without overlaps.
- **Research conversion of existing worlds (MET-026).** There is no automatic
world/config conversion workflow. Document the legacy data/config formats,
backups and rollback requirements, and a safe migration strategy before
proposing implementation. Completion criteria: a reviewed conversion
specification plus disposable-world validation; do not claim migration
support before that work is complete.
## Deferred Ideas
Economy-based home sales, arbitrary connected plot shapes, and alternate
multi-plot footprints remain product ideas, not committed work. Reconsider them
only after requirements, compatibility constraints, and acceptance criteria
are defined.