3.4 KiB
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 runstestand the plugin build for pushes and pull requests todevelop. Completion check: running./gradlew test buildsucceeds; 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.mdon 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/andhuman-tests.mdfor their boundaries.
Pending
- Expand live-server integration coverage. The current
integrationTestsuite 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 frombuild. - 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.