dac80386b5
Build Delta / Build paperclip jar (push) Successful in 7m49s
0373806e2and0817a5706were pushed but never built, so the server jar was broken on main. Six compile errors, all in code that had never run: - ClientboundSoundPacket takes Holder<SoundEvent> in 1.21, not SoundEvent. - CraftWorld has no getServer(); the vanilla handle does. - Server has no paperConfigurations()/registryAccess() - Configurations is reachable through the console, and saveGlobalSection lives on Configurations (GlobalConfiguration is a ConfigurationPart, i.e. the data, not the writer). - ServerPlayer.server is private. DeltaSound pumped delayed packets through BukkitScheduler, which requires a live Plugin, and Delta as a core has none. It now uses GlobalRegionScheduler with a null plugin, which exists precisely for core tasks. Delays are counted in game ticks via Bukkit#getCurrentTick rather than System.nanoTime, so they no longer stretch under lag. The pump cancels itself once the queue drains. New DeltaDisplay holds the predictive-teleport policy (lead range, default, application) and /delta displaylead tunes it. Honest about its scope: Display#setTeleportDuration is already stock Bukkit, so Delta adds no new API to plugins and breaks no compatibility - it centralises the policy and reports it. The position shift itself is done by the plugin, per visual, along that visual's own trajectory. DeltaBuild now registers the existing features in the startup banner instead of printing "no custom features registered". The banner is emitted from a static initialiser before paper-global.yml is parsed, so the strings describe the mechanism and point at /delta status for live values rather than printing defaults as if they were the running configuration.