Skip to content

Conversation

@ApacheTech
Copy link

@ApacheTech ApacheTech commented Jun 29, 2025

Overview

Having both the server, and the client use the same method to hook as an event listener, means that any Harmony patches that are only supposed to be run on one side, will run on both sides, even though only one side patched the method. The fix for this is to separate the logic into separate paths between the client, and the server. This allows for more granular stack traces, more granular harmony patching, and more maintainable code.

I've also added thread safety into the generation, and iteration of map layers. Using a snapshot of the list protects the process against mutation of the lists while the operation is in progress. i.e. if someone adds in new map layers, while they are being iterated over.

Finally, just a general code clean as an iterative improvement towards best practice.

No functionality has been changed within this PR.

Fix Log:

Fixed: Added thread safety to map layer generation.
Fixed: Client and Server sharing the same level finalisation handler in world map manager.
Refactor: Added code separation to world map manager level finalisation.
Dev: Added XML Documentation to POCO classes.
Dev: Added `.vs` folder to gitignore.

@ApacheTech ApacheTech closed this Jun 30, 2025
@ApacheTech ApacheTech force-pushed the issues/world-map-manager-fixes branch from ff7e654 to ab10fd2 Compare June 30, 2025 17:17
Fixed: Client and Server sharing the same level finalisation handler in world map manager.
Refactor: Added code separation to world map manager level finalisation.
Dev: Added XML Documentation to POCO classes.
Dev: Added `.vs` folder to gitignore.
@ApacheTech ApacheTech reopened this Jun 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant