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 aims to fix a the cascade chunkloading issue. Whenever a light wants to set a phatom light in a chunk that is not yet loaded (can happen when traveling throw the world), it automatically loads the chunk. If in the new newly loaded chunk is another light, this loads the next again, and the next and so on ...
This also fixes a two possible crashes whenever
WorldServer.loadChunkOnRequest
is set tofalse
like on my server. (Yes, it finally fixes my issues with Flood Lights / in combination with EIO Lights.)Last but not least, this PR moves a piceace of code to a method to de-duplicate it (from about 10 similar usages).
As from my tests, this doesn't break existing worlds or the usage of the lights. But of course, this should be tested by someone else (and/or on Zeta) too.
For the reviewers: This line of code is required to just get a static copy of the list as it get changed (sources get removed) while iterating it. There is no threading issue. Feel free to suggest any better way. I just wanted to not change the method signature of
void removeSource(x, y, z)
.