AtlasSpigot 26.2 - build 25 (13 optimisation patches)
Rebuilt jar — 13 optimisation patches, up from 10. This round found 27 new guarded sites, the most of any build so far.
EntityInsideBlockEvent — 24 sites
The biggest find. This line appears byte-identical in 24 generated block classes:
if (!new EntityInsideBlockEvent(entity.getBukkitEntity(), CraftBlock.at(level, pos)).callEvent()) { return; }Each allocates a CraftBlock plus an event, and entityInside runs per entity per tick for anything standing in a bubble column, cobweb, berry bush, fire, pressure plate, cactus, campfire, crop or portal. In water-heavy or farm-heavy areas that is continuous.
Because the line is emitted into two dozen generated classes, apply.py gained a bulk mode: a directory-wide replace with a minimum-hit assertion, so it fails loudly rather than silently half-applying if upstream adds or removes a block class.
EntityEffectTickEvent
Fires on every effect application for every entity carrying one — and building it meant a getBukkitLivingEntity() lookup plus a CraftPotionEffectType conversion. Already gated behind shouldApplyEffectTickThisTick(), so it's per application rather than literally every tick.
ServerTickStartEvent / ServerTickEndEvent
Two allocations every tick, for the life of the process.
These got a functional test, not just inspection. The bench plugin in this repo listens to ServerTickEndEvent — and it still collects a full 200-sample set against the patched jar. That proves the guard doesn't suppress the event when something is actually listening, which is exactly the failure mode that would otherwise be invisible until a plugin quietly stopped working.
Not measured
All 13 patches are strictly-fewer-allocations and provably equivalent. No performance figures are claimed — 26.2 was benchmarked and the result was too noisy to publish (results-26.2.txt).
Config: unchanged from build 24
hopper.disable-move-event is on, so shop, sorting and economy plugins will not see hopper transfers (set 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.
Verified
Boots in 11.21s reporting AtlasSpigot version 26.2-DEV-ver/26.2@e51867d, 200 entities spawned and ticked, zero exceptions or errors. Still zero net/minecraft classes.
Rebuild: ./gradlew applyAllPatches && python3 source-patches/apply.py . && ./gradlew :leaf-server:createPaperclipJar