HashMapPalette uses an instance of CrudeIncrementalIntIdentityHashBiMap
internally. A Palette has a preset maximum size = 1 << bits.
CrudeIncrementalIntIdentityHashBiMap has an initial size but is
automatically resized. The CrudeIncrementalIntIdentityHashBiMap is created
with the maximum size in the constructor of HashMapPalette, with the aim
that it doesn't need to be resized anymore. However, there are two things
that I think Mojang hasn't considered here:
1) The CrudeIncrementalIntIdentityHashBiMap is resized, when its initial
size is reached and not the next time, when a further object is added.
2) HashMapPalette adds objects (unnecessarily) before checking if the
initial size of CrudeIncrementalIntIdentityHashBiMap is reached.
This means to actually avoid resize operations in
CrudeIncrementalIntIdentityHashBiMap, one has to add 2 to the initial size
or add 1 and check the size before adding objects. This commit implements
the second approach. Note that this isn't only an optimization but also
makes async reads of Palettes fail-safe. An async read while the
CrudeIncrementalIntIdentityHashBiMap is resized is fatal and can even lead
to corrupted data. This is also something that Anti-Xray is currently
relying on.
Upstream has released updates that appear 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:
9115281f SPIGOT-6832: Improve Player#getPing docs
CraftBukkit Changes:
fd3478bc7 #967: Store last lava contact location for events
Spigot Changes:
dbf49382 Rebuild patches
58cb9d26 #113: Use simulationDistance for entity activation range base
Upstream has released updates that appear to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing
CraftBukkit Changes:
4b5f9882 Fix when bundler directory is a symlink
6f3509d1 Release POIs when villagers are removed by plugins
Upstream has released updates that appear to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing
CraftBukkit Changes:
03b725233 SPIGOT-6823: Fix loading custom world in combination with superflat
359d0533a #970: Correct typo in README.md
110492932 Fix per-world worldborder command
Upstream has released updates that appear 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:
b46ac671 Update to Minecraft 1.18
CraftBukkit Changes:
bc14cb64 Update to Minecraft 1.18
Spigot Changes:
a5dea1cb Update to Minecraft 1.18
Upstream has released updates that appear 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:
ab6e73a2 Correct copied javadoc from previous commit
CraftBukkit Changes:
9fb3aa4c SPIGOT-6817: Revert back to old block state behaviour again
Upstream has released updates that appear 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:
810cb078 Add hideEntity / showEntity API
CraftBukkit Changes:
04f8e7e2 SPIGOT-6814: (Chunk) PersistentData is lost after restart
37fd1917 Add hideEntity / showEntity API
7e2214da Move checkstyle to slightly later compile phase
45c3f826 SPIGOT-6816: Fix ChunkSnapshot#getBiome
Spigot Changes:
b11f318f Rebuild patches
622b2310 SPIGOT-6811: Fix mob spawning mismatch
2b2a3d56 Rebuild patches
If a chunk had no entities or block entities, it would fail
to load the PDC. This adds an additional check to see if there is
PDC and then to load that if so.
See: https://hub.spigotmc.org/jira/browse/SPIGOT-6814
Upstream adds this check and didn't flip it since mojang flipped the
return boolean from previous versions. This will end up removed
from this patch when (if) upstream fixes this