Expand TODO.md with player registration and session management details.

This commit is contained in:
akastijn 2026-05-23 23:27:07 +02:00
parent 51ae3bbece
commit 2846a88125

50
TODO.md
View File

@ -14,6 +14,7 @@ A Minecraft survival/PvP plugin with configurable loot, shrinking world border,
- [Commands](#-commands) - [Commands](#-commands)
- [Stats System](#-stats-system) - [Stats System](#-stats-system)
- [Configuration](#-configuration) - [Configuration](#-configuration)
- [Player Registration](#-player-registration--session-management)
--- ---
@ -88,6 +89,55 @@ A Minecraft survival/PvP plugin with configurable loot, shrinking world border,
--- ---
## 👥 Player Registration & Session Management
### Registration
- [ ] Expose a command (e.g. `/hg join <player>`) callable by other plugins/console to register a player into the upcoming round
- [ ] Maintain a registered player list per round (separate from online players)
- [ ] Reject registration if round is already ACTIVE or past COUNTDOWN
- [ ] Confirm registration with a chat message to the player: `"You have been entered into the round!"`
- [ ] Allow `/hg leave <player>` to remove a player before the round starts
- [ ] Allow `/hg kick <player>` (admin) to force-remove a player mid-round (counts as death/DNF, no kill credit)
### Player States
Track each registered player in one of these states:
- [ ] `REGISTERED` — signed up, round not yet started
- [ ] `ALIVE` — actively in the round
- [ ] `DEAD` — eliminated, waiting in the safe room
- [ ] `DISCONNECTED` — left the server mid-round
- [ ] `SPECTATING` — admin/non-participant observer
### Disconnect Handling
- [ ] On disconnect during COUNTDOWN: remove from round, free their spawn slot
- [ ] On disconnect during ACTIVE round: treat as death (no kill credit), teleport handling skipped since they're offline
- [ ] Store disconnect state so if they reconnect before round ends, they are placed in the safe room (not back into the game)
- [ ] On reconnect mid-round: teleport to safe room, restore DEAD state, notify them the round is ongoing
- [ ] On reconnect after round ends: restore their normal state
### Join Game Handling
- [ ] On registration: set player gamemode survival
- [ ] Teleport player to a configurable lobby/waiting area within the event world on registration
- [ ] Assign spawn points randomly from the available pool at countdown start — no two players share a point
- [ ] Teleport all REGISTERED players to their assigned spawn points when countdown begins
- [ ] Notify player they joined the game
### Safe Room
- [ ] Command to re-teleport all players not in the game to the safe room
- [ ] Configurable safe room location (world, x, y, z, yaw, pitch) in config
- [ ] Teleport eliminated players to safe room immediately on death
- [ ] Teleport disconnected players to safe room on reconnect (if round still active)
- [ ] Players in safe room: no PvP, no hunger, no fall damage
- [ ] Optionally show a live scoreboard or action bar in the safe room (remaining players, kills leaderboard)
- [ ] Teleport all players out of safe room to a configurable post-round location when round ends
### Round Cleanup
- [ ] On round end: clear all player states
- [ ] Restore player inventory, gamemode, health, hunger, potion effects to pre-round state (or a clean default)
- [ ] Clear any active boss bars, action bars, speed effects from all participants
- [ ] Reset registered player list ready for next round
---
## 🧭 Commands ## 🧭 Commands
### `/hg stuck` ### `/hg stuck`