mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-28 03:48:01 +01:00
fc5ae5be82
CB used the dirty flag to construct the chunk unload event, but then sets mustNotSave to the inverted value of the event after calling the event without considering that the chunk may actually be brought up to loaded status again later. Then, CB overrides the isUnsaved method of LevelChunk to additionally use mustNotSave. Thus, if the chunk is not marked dirty when unloading, the mustNotSave value will be set to true. Then, once the chunk is reloaded and edited the dirty flag will be set. However, when unloading the chunk finally, the isUnsaved method will return false due to mustNotSave being true. Thus, the chunk will never be saved. To fix these issues, no longer make mustNotSave override isUnsaved and always set the save flag for the chunk unload event. This issue started popping up recently due to the recent change to mark chunks as not dirty after saving them, which increased the chance of the save issue occurring in the first place. |
||
---|---|---|
.. | ||
api | ||
removed | ||
server |