Incorrect Bans in Ladder Games
- Lingua principale
- Python
- Stelle
- 72
- Fork
- 84
- Merge medio
- 5h 11m
- PR unite (30g)
- 1
Descrizione
## Issue Summary: Incorrect Bans in Ladder Games Due to Missing PlayerOption Messages
**Problem:** Players are receiving incorrect violation bans in ladder games when connection failures occur.
**Root Cause (per @gatsik's analysis shared via Zulip):**
- Server checks `_configured_player_ids` to determine if players are "configured" before assigning violations
- `_configured_player_ids` is only populated by `set_player_option()` calls (triggered by `PlayerOption` GPGNet messages)
- Ladder games don't send `PlayerOption` messages (only custom lobbies do)
- Result: All guests in ladder games appear "unconfigured" and get violations when games fail to start, even if the failure wasn't their fault
**Code References:**
- Game configuration check: `server/games/game.py#L231` (`get_connected_players()`)
- PlayerOption handling: `server/games/game.py#L616-L621` (`set_player_option()`)
- Host exclusion logic: `server/ladder_service/ladder_service.py#L737` (`NotConnectedError`)
**Suggested Fix:**
Track actual connection status using other messages like `EstablishedPeer` instead of relying solely on `PlayerOption` messages for ladder games.
**Impact:**
All guests in failed ladder games receive violations regardless of whether they successfully connected, because they never appear in `_configured_player_ids`.
Guida per i contributori
Apri la guida per i contributori
Valutazione
Questa issue non è ancora stata valutata.