Upstream has released updates that appear to apply and compile correctly
Leaves Changes:
LeavesMC/Leaves@0fcb32c [ci skip] update contributing and readme (#381)
Upstream has released updates that appear to apply and compile correctly
Gale Changes:
Dreeam-qwq/Gale@2f4ceb5 Update & fix Halloween predict calculation
Purpur Changes:
PurpurMC/Purpur@803bf62
Final 1.21.1 Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly
Pufferfish Changes:
pufferfish-gg/Pufferfish@95ef348
Make iterator counting in IteratorSafeOrderedReferenceSet thread-safe for async mob spawning (#109)
* Fix terminal color on Windows
Windows doesn't have environment variables TERM and COLORTERM by default, but we assuming that it supports the `truecolor` for terminal.
* Add back revert to original java console on Java 22
Cache the result of half of canHoldFluid logic, since there is a state#is in this method,
it uses map contains to do iteration to check whether a block has a specific block tag key,
which the contains iteration call is very expensive if called everytime
Also, I simplified the condition logic in the original method to be more readable.
It is actually useless since the result is cached, just makes it look better.
In the test, it can improve ~30% performance in ~1577000 times of canHoldFluid calls (~159ms -> ~111ms)
* Add faster random generator for Entity random
* Option for replace worldgen random with L64X128MixRandomSource & Cleanup
* Allocate 1 thread for AsyncLocator by default
* Rename to worldgen
* Add config option for backed random generator
* Add SplittableGenerator check
* Cache random generator
* Revert cache
Caching RNGs will cause some issues during worldgen
* Set to final & cleanup
* LevelChunkMixin
* Filter null values
* Use Xoroshiro128PlusPlus by default
* Benchmark results
* Revert changes
* Better smooth teleport api
* Set seed to 0
Should have special treatment to ArmorStand, since Paper introduced the configurable
ArmorStand no-tick, and still gives it ability to update equipment changes.
Thus added a bypass condition in LivingEntity#collectEquipmentChanges, able to update
ArmorStand equipment changes even if it is no tick.
The java internal implementation of Math#min / max is faster, due to the `@IntrinsicCandidate`, enables the JIT compiler to use native method for more efficient performance.
**Only for** reference: (Added asterisk marks to avoid people who can't see)
| Benchmark | Mode | Cnt | Score | Error | Units |
|----------------------|-------|-----|-----------|----------|--------|
| clampInline | thrpt | 5 | 37046.833 | ±454.413 | ops/ms |
| clampInternal | thrpt | 5 | 37355.122 | ±362.992 | ops/ms |