Property Observation & API Exposure#46
Open
Liparakis wants to merge 16 commits intoExtremelyd1:mainfrom
Open
Conversation
- Add `Id` property to `IClientManager` for local player identification. - Add `OnChanged` event to `IServerSettings` to track server-side setting updates on the client. - Add `OnTeamChanged` event to `IClientPlayer` for per-player team tracking. - Update `ServerManager` to include the connecting player's ID and username in the initial `ServerInfo` handshake. - Implement automatic local ID resolution in `ClientManager` upon successful connection.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What Changed
This PR adds addon-facing client/server API hooks around shared multiplayer state and removes a couple of rough edges from the initial implementation.
Main changes since
4d6c01f:IClientManager.Idso addons can access the local player's assigned network ID on the client.IClientManager.ServerSettingsso addons can read the current shared gameplay settings on the client.IServerSettingsthroughOnChanged, which is now the single client-side settings change hook.OnTeamChangedto bothIClientPlayerandIServerPlayer.ClientPlayerDataandServerPlayerDataso team property changes raiseOnTeamChanged.ClientPlayerDatausingSelfId.ClientPlayerData.Teamis also updated, makingIClientPlayer.OnTeamChangedwork for self as well as remote players.Why
The goal of the PR is to support four addon use cases cleanly: