Issue/#707 fix disconnect handlers not always triggering #708
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This one's slightly more meaty than my recent PR's :)
I refactored
on_connection_lost
so it is triggered fromServerContext
for all services whenever a connection closes or is forcibly closed. It seems like there was some cleanup code that was duplicated inLobbyConnection.abort
andLobbyConnection.on_connection_lost
which had gotten out of sync at some point meaning that if a player's connection was closed viaabort
, then the disconnect logic inLadderService
andPartyService
would not be triggered. This was causing some oldPlayer
objects to outlive theirLobbyConnection
's and causing theself.player is not party.owner
check to fail. Therefore, I've also refactored that check to use==
comparison instead ofis
.Closes #707