AtlasSpigot 26.2 - build 19 (three optimisation patches)
Rebuilt jar with two more optimisation patches, bringing the total to three non-branding patches.
What's new
Entity#push — no Vector allocation · A Bukkit Vector was built on every push, before anything checked whether it would be read. Ordinary entity-vs-entity crowding takes the path where that Vector was constructed only to be unpacked straight back into three doubles. EntityPushedByEntityAttackEvent was fired unguarded too. push() runs for every entity shoved by another, every tick — one of the hotter allocation sites on a crowded server.
Entity#setAirSupply — no event object · An EntityAirChangeEvent was allocated before the valid check, so it was built even during worldgen where it is deliberately never fired. Runs per tick for anything drowning or refilling air, so mobs pathing through water hit it continuously.
Both follow the same rule as build 18's equipment patch: resolve listener presence, and do no Bukkit work that nothing will read. Behaviour is unchanged when a plugin is listening — the events fire exactly as before, cancels and rewrites included.
Worth saying: Paper already does this where it matters most — EntityCollideWithEntityEvent is guarded exactly this way. These are the spots it hadn't reached, not a disagreement with upstream.
Not measured
All three patches are strictly-fewer-allocations changes and provably equivalent, which is the only reason they ship unmeasured. No performance figures are claimed for any of them, and none is claimed to be large individually.
Config: unchanged from build 17
hopper.disable-move-event is on, so shop, sorting and economy plugins will not see hopper transfers — set it to false in config/paper-world-defaults.yml to restore. Spawner mobs have no AI, monsters despawn at 28/48, mob caps cut ~43%, simulation distance 3. This is not a vanilla-feeling server.
Verified
All nine source patches compile together. Boots in 12.19s reporting AtlasSpigot version 26.2-DEV-ver/26.2@e51867d, runs with zero exceptions or errors in the log, and shuts down clean. Still zero net/minecraft classes, so the Paperclip legal posture is unchanged.
Every patch is in source-patches/ with its reasoning.