Spottedleaf
348d5f3dca
i really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really love jmp
2022-06-07 19:25:49 -07:00
Spottedleaf
dc953ea414
i really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really love jmp
2022-06-07 18:31:24 -07:00
Spottedleaf
f8d0fdf127
i love jmp
2022-06-07 17:42:07 -07:00
Spottedleaf
e83c74a0a0
hate jmp and his gradle
2022-06-07 17:15:06 -07:00
Spottedleaf
4aa035fa95
Do not accept invalid client settings
2022-05-07 14:59:20 -07:00
Spottedleaf
af019e9d32
Only log for passenger / vehicle world mismatch
...
Exception thrown may corrupt passenger/vehicle state
2022-05-07 08:48:29 -07:00
Spottedleaf
a096540d94
Add per player chunk loading limits
...
Configurable under "settings.chunk-loading.player-max-chunk-load-rate",
defaults to -1. This commit also changes the chunk loading to be
distributed equally for all players, rather than distance based. This is
to ensure players flying around do not take priority over everyone else.
The exception to this new rule is the min-load-radius, which still has
priority over everything else.
2022-03-31 06:04:23 -07:00
Spottedleaf
cbdfcf8338
Use correct toX/Y/Z in player move packet handling
2022-03-14 12:28:02 -07:00
Spottedleaf
35cc32c4a1
Fix swamp hut cat generation deadlock
...
The worldgen thread will attempt to get structure references
via the world's getChunkAt method, which is fine if the gen is
not cancelled - but if the chunk was unloaded, the call will block
indefinitely. Instead of using the world state, we use the already
supplied generatoraccess which will always have the chunk available.
Missed patch from tuinity merge
2022-03-12 06:32:31 -08:00
Spottedleaf
ffe0d7b99c
Add more to the save fixes
...
- Set forceTicks to true, so that player packets are always
processed so that the main process queue can be drained
2022-03-05 17:36:57 -08:00
Spottedleaf
01b6bc66db
Fix save problems on shutdown
...
- Save level.dat first, in case the shutdown is killed later
- Force run minecraftserver tasks and the chunk source tasks
while waiting for the chunk system to empty, as there's simply
too much trash that could prevent them from executing during
the chunk source tick (i.e "time left in tick" logic).
2022-03-05 17:29:47 -08:00
Spottedleaf
c232bf0419
Add missing glow_item_frame walkers
...
Needs one for ItemStack and Entity. It looks like I missed
the entity one because Mojang defined it as being simple,
which it certainly isn't (they "missed" it too).
2022-03-04 20:57:59 -08:00
Spottedleaf
13a4b2f382
Fix unload stall
...
Also added required tickets that should not be removed during
shutdown
2022-02-28 18:33:20 -08:00
Spottedleaf
568435b5fa
Add DataConverter to StructureCheck, for structure lookups
...
Mojang added a partial conversion here to quickly check for
structures, which bypasses the chunk system. So we need a
hook here.
2022-02-25 08:46:35 -08:00
Spottedleaf
9489572907
Execute mid tick tasks during tile entity ticking
...
It was never done here in the past since the old TE management
system was barely functional, and could not handle chunk loading
remotely well
2022-02-22 14:42:00 -08:00
Spottedleaf
172adf699b
Put world into worldlist before initing the world
...
Some parts of legacy conversion will need the overworld
to get the legacy structure data storage
2022-02-22 14:28:34 -08:00
Spottedleaf
64011e201b
Add mid-tick task execution to block ticking
...
Dropped from the ticking block list rewrite
2022-02-22 14:24:28 -08:00
Spottedleaf
722983fbc7
1.18 misc performance dev branch ( #7368 )
...
- Port player chunk loader patch
Makes the chunk system act as it did in 1.17, no additional tickets (and thus logic) to make a chunk ticking.
Adds simulation distance API, deprecates old no-tick method.
- More collision optimisations
Ancient patch from tuinity that never could be pushed to master.
- Fix Optimise ArraySetSorted#removeIf patch
- Execute chunk tasks fairly for worlds while waiting for next tick
- Port Replace ticket level propagator
2022-02-18 09:44:46 -08:00
Spottedleaf
950afc93da
Use correct headerLocation for regionfile initialisation
...
If the regionfile cannot be recalculated (i.e entity/poi type),
then attempts to remove the invalid entry would blow up
2022-02-02 06:02:16 -08:00
Spottedleaf
9dd2c32156
Merge chunk task urgent executor thread into the worker queue
...
By keeping them separate, urgent tasks could not be executed
by the worker queue.
2022-01-07 15:08:34 -08:00
Spottedleaf
b8de21cf48
Fix incorrect old oversized chunk data merging
...
All legacy oversized chunks were created before the new
chunk format, so don't try to merge into the new format.
2022-01-07 13:49:39 -08:00
Spottedleaf
56420b0abd
Allow . in usernames
2022-01-01 11:50:44 -08:00
Spottedleaf
545d476be4
Validate usernames
2022-01-01 05:48:17 -08:00
Spottedleaf
c885b21024
Correctly parse last update for old chunks for regionfile recalc
...
It's required so that comparisons between two chunks can be
made
2021-12-27 13:35:09 -08:00
Spottedleaf
2ecc06a8fb
Defensively copy chunk data in upgradeChunkTag
...
The data provided is always from the regionfile thread, which
does not copy the data out. So if two separate calls need
the data, then there's going to be a problem.
2021-12-27 04:11:21 -08:00
Spottedleaf
a08630ed35
Only write chunk data to disk if it serializes without throwing
...
This ensures at least a valid version of the chunk exists
on disk, even if outdated
2021-12-19 09:15:22 -08:00
Spottedleaf
a5872264a3
Create sections for chunk conversion if non-existant
...
Required to add in the new biome sections
2021-12-18 01:04:00 -08:00
Spottedleaf
1deca8eab9
Add missing return when datafixers fail for chunk conversion
...
Caused the chunk to be later deserialized, which would
result in spamming unrelated errors (possibly) +
double chunk completion.
2021-12-17 06:55:16 -08:00
Spottedleaf
8671893fb5
Bounds check biomes length before using.
...
Missed the diff by Mojang that added this, apparently some
ancient code created zero-length biomes.
2021-12-17 06:38:18 -08:00
Spottedleaf
16d11b8180
Return 0 for light values if a dimenion does not have them
...
Fixes https://github.com/PaperMC/Starlight/issues/99
2021-12-08 22:01:02 -08:00
Spottedleaf
3bf392595d
Fix bad ticking checks for blocks
...
Caused blocks to tick outside of simulation distance
2021-12-08 22:00:45 -08:00
Spottedleaf
1dc66f14fb
Add Starlight
2021-11-27 02:42:09 -08:00
Spottedleaf
32f6f4a8cd
Async catch modifications to critical entity state
...
These used to be here from Spigot, but were dropped with 1.17.
Now in 1.17, this state is _even more_ critical than it was before,
so these must exist to catch stupid plugins.
2021-10-31 21:35:47 -07:00
Spottedleaf
0339e8a094
Do not overload I/O threads with chunk data while flush saving
...
If the chunk count is high, then the memory used by the
chunks adds up and could cause problems. By flushing
every so many chunks, the server will not become
stressed for memory. It will also not increase the total
time to save, as flush saving performs a full flush at
the end anyways.
2021-10-16 02:22:11 -07:00
Spottedleaf
9ba1f65d29
Fix off by one for determining server view distance
...
It was 1 greater than it should've been. lvar renaming
caused the field viewDistance to be read when it should've
been reading the watchDistance
2021-10-15 19:20:32 -07:00
Spottedleaf
55ca8ebefe
Null check isApplicable for CraftBlockEntityState#update
...
If the update call removed the TE, then isApplicable would
have NPE'd.
2021-10-12 13:35:29 -07:00
Spottedleaf
0981bf8e38
Discard out of bounds chunks during regionfile header recalc
...
The logic cannot even determine what local chunk they should be,
and out of bounds chunks can only occur from external modifications
to the regionfile.
If regionfile recalculation cannot occur, then do not attempt
to retry read actions.
Fixes https://github.com/PaperMC/Paper/issues/6718
2021-10-07 05:50:38 -07:00
Spottedleaf
36e77c4c63
Do not create nether portals that delete undestroyable blocks
...
Fixes https://github.com/PaperMC/Paper/issues/5773
2021-09-07 15:10:48 -07:00
Spottedleaf and Callum Seabrook
3e7769feae
Fixed layers from V2550 not being added to list ( #6541 )
...
Note from Spottedleaf:
Please note that this doesn't fix any problems using dataconverter
because dataconverter does not re-route world gen settings conversion.
Co-authored-by: Callum Seabrook <callum.seabrook@prevarinite.com >
2021-09-01 14:25:25 -07:00
Spottedleaf and Spottedleaf
25134061a8
Remove the old updatingChunks and visibleChunks fields ( #6535 )
...
Just in case they cause problems again.
Co-authored-by: Spottedleaf <Spottedleaf@users.noreply.github.com >
2021-08-31 19:33:14 -07:00
bc2890b955
Merge tuinity ( #6413 )
...
This PR contains all of Tuinity's patches. Very notable ones are:
- Highly optimised collisions
- Optimised entity lookups by bounding box (Mojang made regressions in 1.17, this brings it back to 1.16)
- Starlight https://github.com/PaperMC/Starlight
- Rewritten dataconverter system https://github.com/PaperMC/DataConverter
- Random block ticking optimisation (wrongly dropped from Paper 1.17)
- Chunk ticking optimisations
- Anything else I've forgotten in the 60 or so patches
If you are a previous Tuinity user, your config will not migrate. You must do it yourself. The config options have simply been moved into paper.yml, so it will be an easy migration. However, please note that the chunk loading options in tuinity.yml are NOT compatible with the options in paper.yml.
* Port tuinity, initial patchset
* Update gradle to 7.2
jmp said it fixes rebuildpatches not working for me. it fucking better
* Completely clean apply
* Remove tuinity config, add per player api patch
* Remove paper reobf mappings patch
* Properly update gradlew
* Force clean rebuild
* Mark fixups
Comments and ATs still need to be done
* grep -r "Tuinity"
* Fixup
* Ensure gameprofile lastaccess is written only under the state lock
* update URL for dataconverter
* Only clean rebuild tuinity patches
might fix merge conflicts
* Use UTF-8 for gradlew
* Clean rb patches again
* Convert block ids used as item ids
Neither the converters of pre 1.13 nor DFU handled these cases,
as by the time they were written the game at the time didn't
consider these ids valid - they would be air. Because of this,
some worlds have logspam since only DataConverter (not DFU or
legacy converters) will warn when an invalid id has been
seen.
While quite a few do need to now be considered as air, quite a lot
do not. So it makes sense to add conversion for these items, instead
of simply suppressing or ignoring the logs. I've now added id -> string conversion
for all block ids that could be used as items that existed in the game
before 1.7.10 (I have no interest in tracking down the
exact version block ids stopped working) that were on
https://minecraft-ids.grahamedgecombe.com/
Items that did not directly convert to new items will
be instead converted to air: stems, wheat crops, piston head,
tripwire wire block
* Fix LightPopulated parsing in V1466
The DFU code was checking if the number existed, not if it
didn't exist. I misread the original code.
* Always parse protochunk light sources unless it is marked as non-lit
Chunks not marked as lit will always go through the light engine,
so they should always have their block sources parsed.
* Update custom names to JSON for players
Missed this fix from CB, as it was inside
the DataFixers class.
I decided to double check all of the CB changes again:
DataFixers.java was the only area I missed, as I had inspected all
datafixer diffs and implemented them all into DataConverter. I also
checked Bootstrap.java again, and re-evaluated their changes. I had
previously done this, but determined that they were all bad.
The changes to make standing_sign block map to oak_sign block in
V1450 is bad, because that's not the item id V1450 accepts. Only
in 1.14 did oak_sign even exist, and as expected there is a converter
to rename all existing sign items/blocks.
The fix to register the portal block under id 1440 is useless, as
the flattenning logic will default to the lowest registered id - which
is the exact blockstate that CB registers into 1440. So it just
doesn't do anything.
The extra item ids in the id -> string converter are already added,
but I found this from EMC originally.
The change for the spawn egg id 23 -> Arrow is just wrong,
that id DOES correspond to TippedArrow, NOT Arrow. As
expected, the spawn egg already has a dedicated mapping for
Arrow, which is id 10 - which was Arrow's entity id.
I also ported a fix for the cooked_fished id update. This doesn't
really matter since there is already a dataconverter to fix this,
but the game didn't accept cooked_fished at the time. So I see
no harm.
* Review all converters and walkers
- Refactor V99 to have helper methods for defining entity/tile
entity types
- Automatically namespace all ids that should be namespaced.
While vanilla never saved non-namespaced data for things that
are namespaced, plugins/users might have.
- Synchronised the identity ensure map in HelperBlockFlatteningV1450
- Code style consistency
- Add missing log warning in V102 for ITEM_NAME type conversion
- Use getBoolean instead of getByte
- Use ConverterAbstractEntityRename for V143 TippedArrow -> Arrow
rename, as it will affect ENTITY_NAME type
- Always set isVillager to false in V502 for Zombie
- Register V808's converter under subversion 1 like DFU
- Register a breakpoint for V1.17.1. In the future, all final
versions of major releases will have a breakpoint so that
the work required to determine if a converter needs a breakpoint
is minimal
- Validate that a dataconverter is only registered for a version
that is registered
- ConverterFlattenTileEntity is actually ConverterFlattenEntity
It even registered the converters under TILE_ENTITY, instead of
ENTITY.
- Fix id comparison in V1492 STRUCTURE_FEATURE renamer
- Use ConverterAbstractStatsRename for V1510 stats renamer
At the time I had written that class, the abstract renamer didn't
exist.
- Ensure OwnerUUID is at least set to empty string in
V1904 if the ocelot is converted to a cat (this is
likely so that it retains a collar)
- Use generic read/write for Records in V1946
Records is actually a list, not a map. So reading map was
invalid.
* Always set light to zero when propagating decrease
This fixes an almost infinite loop where light values
would be spam queued on a very small subset on blocks.
This also likely fixes the memory issues people were
seeing.
* re-organize patches
* Apply and fix conflicts
* Revert some patches
getChunkAt retains chunks so that plugins don't spam loads
revert mc-4 fix will remain unless issues pop up
* Shuffle iterated chunks if per player is not enabled
Can help with some mob spawning stacking up at locations
* Make per player default, migrate all configs
* Adjust comments in fixups
* Rework config for player chunk loader
Old config is not compatible. Move all configs to be
under `settings` in paper.yml
The player chunk loader has been modified to
less aggressively load chunks, but to send
chunks at higher rates compared to tuinity. There are
new config entries to tune this behavior.
* Add back old constructor to CompressionEncoder/Decoder (fixes
Tuinity #358 )
* Raise chunk loading default limits
* Reduce worldgen thread workers for lower core count cpus
* Raise limits for chunk loading config
Also place it under `chunk-loading`
* Disable max chunk send rate by default
* Fix conflicts and rebuild patches
* Drop default send rate again
Appears to be still causing problems for no known reason
* Raise chunk send limits to 100 per player
While a low limit fixes ping issues for some people, most people
do not suffer from this issue and thus should not suffer from
an extremely slow load-in rate.
* Rebase part 1
Autosquash the fixups
* Move not implemented up
* Fixup mc-dev fixes
Missed this one
* Rebase per player viewdistance api into the original api patch
* Remove old light engine patch part 1
The prioritisation must be kept from it, so that part
has been rebased into the priority patch.
Part 2 will deal with rebasing all of the patches _after_
* Rebase remaining patches for old light patch removal
* Remove other mid tick patch
* Remove Optimize-PlayerChunkMap-memory-use-for-visibleChunks.patch
Replaced by `Do not copy visible chunks`
* Revert AT for Vec3i setX/Y/Z
The class is immutable. set should not be exposed
* Remove old IntegerUtil class
* Replace old CraftChunk#getEntities patch
* Remove import for SWMRNibbleArray in ChunkAccess
* Finished merge checklist
* Remove ensureTickThread impl in urgency patch
Co-authored-by: Spottedleaf <Spottedleaf@users.noreply.github.com >
Co-authored-by: Jason Penilla <11360596+jpenilla@users.noreply.github.com >
2021-08-31 04:02:11 -07:00
Spottedleaf and Spottedleaf
6522a6eed1
Ensure priority updates are determined by current level, not deferred level ( #6507 )
...
* Ensure priority updates are determined by current level, not deferred level
Deferral could cause an infinite loop to occur.
Also, re-add the light engine priority logic.
* Rebase
Co-authored-by: Spottedleaf <Spottedleaf@users.noreply.github.com >
2021-08-27 19:20:31 -07:00
Spottedleaf and Spottedleaf
882fe0543a
Log when the async catcher is tripped ( #6493 )
...
The chunk system can swallow the exception given it's all
built with completablefuture, so ensure it is at least printed.
Co-authored-by: Spottedleaf <Spottedleaf@users.noreply.github.com >
2021-08-25 20:35:35 -07:00
Spottedleaf
4355a3ac96
Readd chunk priority patch, including many chunk system fixes from tuinity ( #6488 )
2021-08-25 19:16:27 -07:00
Spottedleaf
4bfd5dbc06
Fix Codec log spam
...
Mojang did NOT add dataconverters for world gen configurations
that they CHANGED. So, the codec fails to parse old data.
This fixes two instances:
- IntProvider is new and Mojang did not account for old data.
Thankfully, only ColumnPlace needed to be special cased.
- TreeConfiguration had changes. Thankfully, they were
only renames for one value and thankfully defaults could
be provided for two new values (WITHOUT changing behavior).
2021-06-20 12:58:35 +01:00
Spottedleaf
1d0a9b43ec
Update Asynchronous chunk IO and loading for variable world height limits
2021-06-16 02:18:08 -07:00
Spottedleaf
e42c200583
wor
2021-06-12 21:25:07 -07:00
Spottedleaf
09721118a4
even even even even more work
2021-06-12 21:03:02 -07:00
Spottedleaf
6690975133
wowe
2021-06-12 19:16:10 -07:00
Spottedleaf
6d2c131449
even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even even
...
more work
2021-06-12 02:17:20 -07:00
Spottedleaf
1c0fdc2824
even even even even even even even even even even even
...
even even even even even even even even even even
even even even even even even even even even even
even even even even even even even even even even
even even even even even even even even even even
even even even even even even even even even even
even even even even even even even even even even
more work
2021-06-12 02:01:04 -07:00
Spottedleaf
0891c7ab48
even even even even even even even even even more changes
2021-06-12 00:24:28 -07:00
Spottedleaf
4257a725ae
even even even even even even even more work
2021-06-11 23:24:50 -07:00
Spottedleaf
4b66e6c02d
even even more progress
2021-06-11 23:02:49 -07:00
Spottedleaf
c6393c4571
even more progress
2021-06-11 22:20:08 -07:00
Spottedleaf
4edc9d91ac
some patches
2021-06-11 21:38:04 -07:00
Spottedleaf
e877697d29
Do not schedule poi task for each block write on chunk gen
...
Most of the time optional == optional1, so we shouldn't
schedule a task for each write.
2021-04-21 20:04:42 +01:00
Spottedleaf
0336df461a
Make sure to remove correct TE during TE tick
...
See Hydra, March 29th 2021.
2021-03-29 09:08:29 +02:00
Spottedleaf
d84c3d0036
[CI-SKIP] Removal from the MIT list ( #5345 )
...
Any future work I do will be under GPLv3. This doesn't affect current patches.
2021-03-11 16:36:30 -08:00
Spottedleaf
c5ee34df0e
Fix missing chunks on client (View distance issue)
2020-06-28 00:58:25 -04:00
Spottedleaf
9e1ccb01be
Hide sync chunk writes behind flag
2020-06-26 22:37:38 -07:00
Spottedleaf
ce8c91600b
Updated Upstream (Bukkit/CraftBukkit/Spigot)
...
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing
Bukkit Changes:
3284612a SPIGOT-5853: Add DragonBattle#generateEndPortal()
e4db04ae SPIGOT-5841: New map colours broken
CraftBukkit Changes:
d4243510 SPIGOT-5853: DragonBattle#getEndPortalLocation() throws NPE on new world
1601ec31 SPIGOT-5845: ChatColor.RESET does not work in ItemMeta to reset italics
4d92db6f CraftChatMessageTest does not need AbstractTestingBase
71045d3d SPIGOT-5828: Unlock worlds on unload
dbc347b9 SPIGOT-5841: New map colours broken
14053c70 SPIGOT-5847: BlockFadeEvent cannot be triggered asynchronously from another thread
Spigot Changes:
6f4ff1b6 SPIGOT-5851: ChatColor (HEX) doesn't appear correctly in the ActionBar
d94a518a SPIGOT-5848: PlayerSpawnLocationEvent throws NPE when setting a location of another world
2020-06-26 22:12:11 -07:00
Spottedleaf
a8624a2d1a
Re-Add per player mob spawning
2020-06-26 21:57:36 -07:00
Spottedleaf
0f7c022cbc
Merge branch 'ver/1.16' of https://github.com/stonar96/Paper into ver/1.16
2020-06-26 20:34:31 -07:00
Spottedleaf
faf7dda51c
fix async chunk loading disregardling light data
2020-06-26 20:05:12 -07:00
Spottedleaf
a4f75b1ae0
fix recursion for leashing an abstract horse
2020-06-26 15:54:39 -07:00
Spottedleaf
cd6b64113f
Fix the piston duplication option when it is on
2020-06-26 14:36:48 -07:00
Spottedleaf
9b3bb0cf51
Pass predicate from default get hard colliding entities method
2020-06-26 14:33:49 -07:00
Spottedleaf
6e59ab0eb5
Fix the entity knockback by entity patch
2020-06-26 14:31:38 -07:00
Spottedleaf
002d3ab1b5
Fix packed data reading in anti-xray
2020-06-26 14:11:08 -07:00
Spottedleaf
cfd598512a
even even even even even even more work
2020-06-25 18:53:21 -07:00
Spottedleaf
ec7bd6a7c6
even even even even more work
2020-06-25 16:38:24 -07:00
Spottedleaf
4aa7955818
even even more work
2020-06-25 06:11:48 -07:00
Spottedleaf
d30edc35eb
even more work
2020-06-25 05:04:34 -07:00
Spottedleaf
fbbf45ec42
more progress
2020-06-25 04:00:35 -07:00
Spottedleaf
7c419073e4
Fix not running level updates for light if no pre/post task
2020-06-22 21:17:28 -04:00
Spottedleaf
2005255c62
Fix enderdragon exp dupe
...
Properly track death stage when unloading/loading in the dragon
2020-06-20 15:04:50 -04:00
Spottedleaf
a993a5d1fd
Prevent position desync in teleporting during movement
...
Caused the server to revert to the player's overworld coordinates
after teleporting into the end.
Sidenote: The underlying issue is that the move call can teleport
entities and do other things like kill the entity. In the future,
to fix all exploits derieved from this usually unexpected
behaviour, we need to move all of this dangerous logic outside
of the move call and into an appropriate place in the tick method.
2020-06-20 14:59:49 -04:00
Spottedleaf
66039d1eb3
Fix sand not dying correctly
...
If the falling block dies during teleportation (entity#move), then we need
to detect that by placing a check after the move.
2020-06-20 14:58:35 -04:00
Spottedleaf
53b2b9f391
Fix carpet and rail duping by pistons under same TNT duping config
...
This renames the config from enable tnt duping to enable piston duping
Normally we would not have a config for rails and carpet duping, but
the fix for TNT is the same fix for rails and carpet, so they are
having to be covered under that same config.
2020-06-20 14:56:08 -04:00
Spottedleaf
06cf33bf4f
Fix more cases of Bedrock breaking
...
This is still covered under the setting to re-enable this.
2020-06-20 14:53:15 -04:00
Spottedleaf
aba7b389ab
Allow server startup for those poor people running <1G Xmx
...
Clamp logic for poolsize so we dont pass zero
2020-05-16 21:06:19 -07:00
Spottedleaf
ab609796e6
Fix cases where no-tick < tick view distance
2020-05-16 20:53:09 -07:00
Spottedleaf
459f6194e8
Reduce MutableInt and Vec3d allocations, use ArrayDeque
2020-05-16 22:05:14 -04:00
Spottedleaf
4e7644ce04
Handle CraftPlayer#setSpectatorTarget better
...
Use a proper teleport for teleporting to entities in different
worlds.
Validate that the target entity is valid and deny spectate
requests from frozen players.
Also, make sure the entity is spawned to the client before
sending the camera packet. If the entity isn't spawned clientside
when it receives the camera packet, then the client will not
spectate the target entity.
2020-05-14 18:05:00 -05:00
Spottedleaf
584c2fbe18
No-Tick view distance implementation - Closes #3196
...
Implements world view distance getters/setters
Per-Player is absent due to difficulty of maintaining
the diff required to make it happen.
2020-05-06 03:49:52 -04:00
Spottedleaf
fbaa9ae1f3
Stop copy-on-write operations for updating light data
...
Causes huge memory allocations + gc issues
2020-05-06 03:48:56 -04:00
Spottedleaf
7307189ab2
Optimize isOutsideRange to use distance maps
...
Use a distance map to find the players in range quickly
2020-05-06 03:48:18 -04:00
Spottedleaf
fbe8958237
Use distance map to optimise entity tracker / Misc Utils
...
Use the distance map to find candidate players for tracking.
This also ports a few utility changes from Tuinity
2020-05-06 03:44:47 -04:00
Spottedleaf
444dd5a0c6
Optimize Entity Ticking to Loaded Chunks only
...
We retain a list of loaded entities specifically for this usage
2020-05-06 03:43:11 -04:00
Spottedleaf
89e22765be
Improved oversized chunk data packet handling
...
Now target all TE data, except for TE's that do not have
update packets.
2020-05-01 23:18:33 -04:00
Spottedleaf
0e3875914c
Improve random ticking behaviour - Fixes #3181
2020-04-19 06:07:57 -07:00
Spottedleaf
dc66fe2c49
Make sure the chunk conversion task is executed immediately
...
Appending to the tail of the chunk tasks leaves a
window for the chunk to be moved to a
non-ticking status.
Additionally, use CB's callback executor so we
can ensure that we are not incorrectly
scheduling.
2020-04-18 08:41:02 -07:00
Spottedleaf
c1fdcae86a
Optimize entity list iteration requiring entities be in
...
loaded chunks
We retain a list of loaded entities specifically for this usage
2020-04-16 16:53:45 -07:00
Spottedleaf
e7f799903e
Fix incorect timing of mspt
...
Move oversleep and all task execution back into the timed area...
2020-04-15 18:48:07 -07:00
Spottedleaf
70131f31d3
Optimise entity hard collision checking
...
Very few entities actually hard collide, so store them in their own
entity slices and provide a special getEntites type call just for them.
This reduces entity collision checking impact (in my testing) by 25%
for crammed entities (shove 130 cows into an 8x6 area in one chunk).
Less crammed entities are likely to show significantly less benefit.
Effectively, this patch optimises crammed entity situations.
2020-04-16 00:40:47 -04:00
Spottedleaf
1b58ca2161
Don't run entity collision code if not needed
...
Will not run if max entity craming is disabled and
the max collisions per entity is less than or equal to 0
2020-04-16 00:40:34 -04:00
Spottedleaf
25d0fbed10
Optimise ArraySetSorted#removeIf
...
Remove iterator allocation and ensure the call is always O(n)
2020-04-15 18:24:39 -07:00
Spottedleaf
b4124adee3
Fix getChunkAtIfCachedImmediately ( #2915 )
2020-01-28 17:26:07 -08:00
Spottedleaf
6745971d4e
Performance patches prerequisite ( #2802 )
...
Prereq changes for the coming storm of performance patches.
Includes optimising incremental saving
2020-01-27 16:16:53 -08:00