I didn't realize it before, but it looks like there is at least one instance of YamlRegionFile per world, so synchronizing on the instance wouldn't necessarily help.
This prevents multiple invocations of the method from intersecting, which could potentially cause the .tmp file to be overwritten before being renamed, thus corrupting the region storage
* Optimized command usage for /rg list and /rg teleport:
* added a flag to the teleport command to teleport the actor to the center of the region
* added a flag to the list command to filter the regions for special ids
* added a flag to the list command to get regions intersecting your selection
* Fixed wrong pagination in RegionLister
* Allows claimed regions to inherit from a template region
* Replace template-when-claiming with set-parent-on-claim
* Make the set-parent-on-claim option check secure
* Add options to query region sets unsorted and without parents
* Fix member inheritance for non-player associables
* Add member inheritance for non-player associables
* Rename Option to QueryOption, remove functional definitions, bit of cleanup.
Co-authored-by: wizjany <wizjany@gmail.com>
I am not sure exactly if this is the source of the problem, but when i tried registering my handlers using ExitFlag.FACTORY as "after" like how the javadocs said it, it seemed that my handler was running before the ExitFlag handler which means mine will run even if ExitFlag returns false. I used null as after and it worked then. Maybe i understand the "after" incorrectly but in my mind my customHandler should run after the "after" not the other way around if that makes sense. Let me know if I didn't undertstand it correctly.
Sorry for my english!
* Add Timings for third-party session handlers.
These often cause WorldGuard to get blamed by timings.
* Add config option to turn off extra timings.
* Move relocation to the right build file.
* Move config to a map for potential future expansion.
* Calculate timing immediately per-factory.
Instead of on each handler creation.