Add PlayerJoinGameEvent, use it instead of PlayerSpawnEvent in some c… #27
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 is a very old todo that we never really got around to. It eliminates cases where modules treat players as if they just joined the game after switching to a new instance within the same game. Modules should not be using PlayerSpawnEvent to trigger behavior that is supposed to happen when a player joins the game.
This PR also changes PlayerLeaveGameEvent to only be triggered when players join an instance that is not owned by their current game.The PR changes the way Game#players is handled a bit. The list can now only be modified by calling addPlayer or removePlayer. When you call addPlayer, removePlayer is automatically called for the game the player is currently in. This way, it is impossible for a player to:
Finally, the PR changes Team#players to address similar concerns.
TODO: make GameEvent not extend Cancellable, so PlayerLeaveGameEvent and PlayerJoinGameEvent can be not cancellable.
TODO: possibly change the cleanup task to use removePlayer instead of _players.remove.
The changes seem to work with the TestQueue but need testing with IPCQueue.