Description
`LobbyPhase.onFinish()` does not call `GameOrchestrator.loadNextMap()`. The Game phase therefore starts with `ActiveMapComponent.currentMap == null`. Any system that reads the active map (ring collision, HUD) will throw a NullPointerException or silently skip processing. A player joining today watches a 6-second countdown and then nothing happens.
Acceptance Criteria
Technical Details
- `LobbyPhase` is in `server/src/main/java/.../phase/`
- `AnvilMapInstanceService` handles world loading — wire it here
- `CupComponent` on the game entity already tracks the current cup and map index — use it
- Map loading is async (Minestom chunk loading); teleport must happen in the callback
Dependencies
None (blocking all other gameplay)
Estimate
M
Description
`LobbyPhase.onFinish()` does not call `GameOrchestrator.loadNextMap()`. The Game phase therefore starts with `ActiveMapComponent.currentMap == null`. Any system that reads the active map (ring collision, HUD) will throw a NullPointerException or silently skip processing. A player joining today watches a 6-second countdown and then nothing happens.
Acceptance Criteria
Technical Details
Dependencies
None (blocking all other gameplay)
Estimate
M