mirror of
https://github.com/PaperMC/Folia.git
synced 2024-11-25 12:35:23 +01:00
093b1e5394
The place/portal async function now track entities that have been removed from the world but have not teleported. When the server shuts down, these entities will have their passenger tree restored and re-added to the entity slices at the location they were teleporting to, or in the case of portals that did not run placeAsync yet, the location they entered the portal on. This should ensure that for regular teleports that the entity is placed at its correct target location, and for portalling to ensure that either the entity is placed at the portal entrace location (where they entered) or the portal destination. In any case, the entity is preserved in a location and will survive the shutdown. Additionally, move player saving until after the worlds save. This is to ensure that the save logic is performed only after all teleportations have completed. Fix some other misc issues as well: - Fix double nether portal creation by checking if a portal exists again before creating it, fixing a race condition where two entites would portal and neither would see that the other created a portal. - Make all remove ticket add an unknown ticket. In general this behavior is better since it means that unloads will only ever occur at the next tick, rather than during the tick logic. Thus, there will be no cases where a chunk is unloaded unexpectedly. - Do not use fastFloor for calculating chunk position from block position It is not going to return a good value outside of [-1024, 1024] - Always perform mid tick update for ticking regionised player chunk loader If no entities were loaded, no chunks were loaded, and nothing else - the logic would not have otherwise ran. This fixed some rare cases of chunks never loading for players after logging in.
36 lines
893 B
Plaintext
36 lines
893 B
Plaintext
Get done before testing:
|
|
- make scheduler load chunks better
|
|
|
|
Pre-Test: List of things not fully tested
|
|
- Task queue
|
|
- Teleportations
|
|
- Regioniser
|
|
|
|
Get done after test:
|
|
- global autosave queue
|
|
- game time / day time tick comparison (== is now invalid due to desync of global / region tick)
|
|
- scoreboards
|
|
- vanish api
|
|
- watchdog stuff
|
|
- Spectator teleporting / camera
|
|
- regenerateChunk, isChunkGenerated
|
|
- Conversable...
|
|
- sync load info
|
|
- net.minecraft.commands.Commands
|
|
- are the race conditions in the weather tick (advanceWeatherCycle) ok?
|
|
|
|
Delayed and hopefully will not forget:
|
|
- api for really a lot of shit
|
|
- needs: true async events (i.e fire then complete later)
|
|
- needs: region determination, craft scheduler per region, craft scheduler
|
|
per entity
|
|
- needs: world creation/unload (good god)
|
|
- needs: more???
|
|
- Projectile#getOwner ...
|
|
|
|
Ideas:
|
|
|
|
Issues:
|
|
|
|
To check:
|