Create chunk-corruption-preventor.pw.toml #657
Merged
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.
Description from curseforge:
Chunk Corruption Preventor is a bugfix mod that detects when a chunk corruption is about to happen, and code-injects with a "Safe Serialize" method, so that only the failing element of the chunk will be wiped rather than the entire chunk.
The logic goes like this:
The intention is to help server admins and reduce the annoyance of chunk corruptions for players.
The player will receive chat output so they know what happened, they can ping an admin with the details, and they still have the rest of their chunk to play with while they wait for the admin to get online
If only one block is causing the issue, then there is no need to wipe the whole chunk!
This mod does not cause additional issues, but of course it may not work every time. If the chunk is already going to be wiped, then the game may as well try again. The whole "Safe Serialize" code is wrapped in a bunch of try/catch statements, which is ok because it doesn't run very often, and it also means there is good logging and it won't effect the map thread.
There is also no chance of an infinite loop here. Once "Safe Serialize" has run once for a saving chunk, it will not run again during the same cycle.