Modify behavior when worlds are attempted to be loaded or unloaded while being ticked (Addresses #8300) #8310
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 PR changes two things:
This aligns Paper's behavior with Spigot's after SPIGOT-7089 was resolved, which fixed an error that occurred if worlds were loaded or unloaded while being ticked (Previously, Paper had fixed this by throwing IllegalStateExceptions: #7653 and #8081). With this PR, Spigot and Paper agree and allow worlds to be loaded/unloaded while being ticked.
To address the concerns of this comment, if the worlds are being ticked Paper will not unload a world immediately. Instead, the task that unloads the world will be packaged in a Runnable and stored in a list to be run immediately after the worlds are done being ticked.