OneLiteFeatherNET / OneLiteFeatherNET/Voyager
Rejoin detection: link reconnecting player to existing session
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 0
- Forks
- 0
- Avg merge
- 2d 21h
- Merged PRs (30d)
- 12
Description
Description
If a player disconnects mid-race (crash, network drop) and rejoins within a grace period, they should be re-linked to their existing ECS entity with their score and ring progress intact — not start fresh or be blocked from rejoining.
Acceptance Criteria
- On player join: check if an active
SessionComponentexists for that UUID in the current game instance - If found and race is still active: restore player to their entity, respawn at last known position, restore HUD state
- Grace period: 60 seconds (configurable in map config) before the slot is freed
- If grace period has expired: player joins as spectator or new lobby participant
- If no active session: normal first-join flow
- Unit test covers: disconnect during game → rejoin within grace period → state restored correctly
Technical Details
SessionComponentmust store last-known position and disconnect timestamp- Rejoin logic hooks into the Minestom player-join event handler in
server - Must not conflict with
PlayerPhaseSystemcreating a duplicate entity
Dependencies
- "Persist player profiles on first join" should be done first
Estimate
M
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in the server's Minestom player-join event handler and inspect SessionComponent and PlayerPhaseSystem to understand the existing join and entity-creation flow. Confirm that persisted player profiles are available first, then implement the rejoin path with configurable grace-period state. Done means rejoining restores the existing entity, position, score, ring progress, and HUD without duplication, with a unit test covering disconnect and rejoin.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- game-dev
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100