AstralEnvoys v1.2.0 — ChangelogNew Features
- Lucky Envoy — One random envoy per event spawns as a gold block with flame particles and a golden "✦ Lucky Envoy ✦" hologram. Has its own separate elite reward pool. Server-wide broadcast when claimed.
- Hot Zone — Each event, a random area gets highlighted with a beacon beam, a flame particle ring around the border, and a large bold "✦ HOT ZONE ✦ / DOUBLE REWARDS" hologram above the beacon. Envoys claimed inside the zone get their rewards multiplied (default 2x). Beacon spawns offset from envoys so they don't stack. Iron base replaces ground blocks and restores them on cleanup. Radius and multiplier are configurable.
- Rewards GUI — /ae rewards opens a chest GUI showing every possible drop with your personal streak-adjusted odds. Lucky envoy rewards shown separately. Sorted by rarity. Items can't be taken from the GUI.
- Leaderboard — /ae top [claims|streak|wins] shows the top players ranked by total claims, highest streak, or big wins. Medals for top 3 and your own rank at the bottom.
- Action Bar Tracker — During events, a live action bar shows a directional arrow and distance to the nearest unclaimed envoy. Color changes based on proximity (green/yellow/gray). Updates 4 times per second.
- Scheduled Events — Set exact drop times instead of interval-based (e.g. 12:00, 18:00, 22:00). Enable with envoys.schedule.enabled: true. Countdown warnings work with both modes.
- PlaceholderAPI — 12 placeholders for scoreboards and tab lists covering streak, claims, luck bonus, event status, and next event countdown. Auto-registers when PlaceholderAPI is detected.
Bug Fixes
- Holograms persisting after crash/restart — All armor stands (envoy, lucky envoy, hot zone) are now tagged with PersistentDataContainer and automatically removed on startup across all worlds.
- Lucky envoy gold block not cleaned up on crash — Recovery file now saves a lucky flag per envoy. Cleanup checks for both normal and lucky block materials.
- Lucky envoy block not removed on event end — endEvent() and cleanup() now check envoy.isLucky to use the correct block material when removing.
- Hot zone beacon stacking on envoy crate — Beacon now spawns 3-5 blocks offset from the nearest envoy so they never overlap.
- Hot zone iron blocks replacing terrain and leaving holes — Original blocks are saved before placement and restored on cleanup. A separate recovery file (hotzone-recovery.yml) ensures terrain is restored even after a crash.
- Hot zone particle ring not visible — Increased from 36 to 48 points, doubled particle count per point with slight spread, and increased tick rate from 0.75s to 0.5s.
- Hot zone hologram not cleaned up on crash — Tagged with hotzone_hologram PDC key and scanned on startup.
- Double-claim on right-click — Added main hand check to prevent the event firing twice.
- End timer not cancelling — Auto-end task now properly cancelled when events end early, preventing double endEvent() calls.
- Particle location mutation — Fixed loc.add() mutating the player's location object. Now uses loc.clone().add().
- Duplicate command instances — Executor and tab completer now share a single instance.
- Stale hologram cleanup scope — Startup scan now checks all worlds, not just the configured envoy world.
Changes
- Recovery file (active-envoys.yml) now written immediately on spawn and updated after every claim
- Hot zone beacon structure placed above ground with original blocks saved and restored
- Hot zone hologram displays "✦ HOT ZONE ✦" and "DOUBLE REWARDS" in bold gold text above the beacon
- Lucky envoy particles use flame + end rod combination distinct from regular envoys
- Added hotzone-recovery.yml for beacon block crash recovery
- New config sections: lucky-envoy, hot-zone, tracker, schedule, leaderboard
- New messages: envoy-lucky-win
- New commands: /ae rewards, /ae top
- Added PlaceholderAPI as optional soft dependency
