Add multi-level plot allocation support
This commit is contained in:
@@ -23,6 +23,7 @@ Use this checklist for behavior that depends on a real Paper world, player inter
|
||||
- Join as a new player. Confirm one home is allocated and the welcome message reports its actual bounds. Check the corresponding `h_1_<UUID>` region has the player as owner and its bounds match the configured plot size.
|
||||
- Set `plot.initial: 0` on a disposable server, restart, and join as a fresh player. Confirm no home is created until the player runs `/metropolis-home-acquire`; then verify the command creates the initial home and makes it active.
|
||||
- Join with a second new player. Confirm the new home is distinct, does not overlap the first home or spawn, and the City region grows to include it.
|
||||
- Start from a disposable world configured with `plot.sizeY` and `plot.maxLevels` from the multi-level example. Confirm the level count is honored, the city does not exceed the world's build height, and stacked plots use the same X/Z allocation pattern at each level.
|
||||
- Join again as an existing player. Confirm the same home is selected and no duplicate region or plot is created.
|
||||
- Reserve an area before allocating another home. Confirm future allocations skip it. Repeat with reservations near the city edge and near existing roads to look for overlaps or gaps.
|
||||
- Test a user override that grants a different plot multiplier or home limit. Confirm the generated bounds and allowed number of homes match the override, and that the configured global defaults still apply to other players.
|
||||
@@ -71,7 +72,7 @@ Use this checklist for behavior that depends on a real Paper world, player inter
|
||||
|
||||
## Existing Automated Coverage
|
||||
|
||||
Run `./gradlew test` for the server-free JUnit suite. It has 26 tests covering:
|
||||
Run `./gradlew test` for the server-free JUnit suite. It has 28 tests covering:
|
||||
|
||||
- `CuboidTest`: WorldEdit bound conversion, vector ordering/null handling, touching intersections, and point containment.
|
||||
- `CurrentHomesStoreTest`: UUID-based persistence and resolving a legacy player-name key.
|
||||
|
||||
Reference in New Issue
Block a user