# Lectern - v1.2.1 ## Custom Skybox, Toast Lifecycle, Spear Gating ### API UPDATES - **ISkyboxManager** — new. `showSkybox/removeSkybox/clearSkyboxes`. OptiFine-style 3:2 cube atlas with daytime fade window, blend mode, axis rotation. - **IUIManager.removeToast** — explicit toast removal by id. - **Toast** — record reshaped: `id`, `x/y` + alignment anchors, `bannerTexture` + `bodyTexture` overrides. Resending an id updates in place; far moves ease, close moves snap. - **ImpactFrame** — record dropped; `triggerImpactFrame(player)` is arg-free. ### PLUGIN UPDATES - **Custom Skybox effect** — server-driven OptiFine-style cube skybox. Fades by daytime ticks, rotates with the celestial bodies. - **Toast lifecycle** — multi-toast by id with pop-in/out, position interpolation, alignment anchors. Anchored top-center by default. - **Impact Frame rework** — single-fire 200ms freeze. Captures framebuffer, force-glows entities, runs a grayscale + quantized-contrast shader for the flat manga look. - **Spear gating** — `spear_usage=false` blocks all four entry points: right-click charge, left-click stab, left-click block hit, piercing-weapon lunge. Detects via `#minecraft:spears` tag. - **/lectern packet** — subcommands for `toast`, `impact_frame`, `explosion`, `skybox`. ### PLUGIN FIXES - **`/lectern version` showed `${VERSION}`** — moved to a Maven-filtered resource loaded at static init. - **Explosion shockwave one-sided** — flat ring now renders both faces. - **Debug log noise** — dropped pre-handshake warns, per-effect setActive prints, and dev-only stdout spam. ### INTERNAL UPDATES - Bumped **Lectern-API** + **Lectern-Impl** to `1.2.1`.