Files
Metropolis/docs/modernization-plan.md
2026-10-22 17:33:45 -07:00

3.4 KiB

Metropolis Modernization Plan

This is the maintained status and follow-up plan. Implemented behavior is described in README.md; automated and manual coverage are separated in 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.