- Fixed shutdown task scheduling race causing IllegalPluginAccessException during plugin disable.
- Added safer shutdown handling for autosave and batch save flows.
- Improved recurring task shutdown logic to prevent duplicate cancellation and re-entry issues.
- Fixed random/manual chat objectives failing to register in edge cases.
- Improved jump objective detection reliability.
- Fixed craft objective alias resolution for values like BANNER.
- Added smelt target validation to block invalid or recipe-less targets.
- Added multiline completion reward placeholder: <quest_rewards>.
- Unified completion messaging to prevent duplicate notifications.
- Hardened quest reward list rendering with null-safe handling and SIGILS support.
- Improved workstation placement denial message clarity for inventory context.
- Added anti-cheat placed-block tracking for objective progress validation.
- Prevented place-then-break farming exploits for supported objective types.
- Added config toggle: anti-cheat.enabled: true.
- Improved PlaceholderAPI expansion registration feedback and logging.
- Added safer placeholder request handling for player-prefixed and direct identifiers.
- Added external PlaceholderAPI pass-through support in message processing.
- Added loot-table source filtering support with allowed-loot-tables.
- Added default loot source examples for simple_dungeon, abandoned_mineshaft, buried_treasure, archaeology, and fishing.
- Added batch generation support to reduce repeated quest reload overhead.
- Updated generate command batch flow to use the shared batch generation API.
- Added canonical generated quest modes: persistent, temporary, and session.
- Maintained backward compatibility with legacy generated quest flags.
Comments ()