New Features & Enhancements
Automated Configuration Updater (Auto-Updater)
- Implemented a robust auto-updating mechanism within ConfigUtils.java.
- No more manual config resets! Eliminates the need for server admins to manually regenerate or copy-paste configurations during plugin version updates.
- Whenever a configuration file (config.yml, messages.yml, or default dungeon templates) is loaded, the system silently compares the external file on the server with the pristine resource file located inside the plugin's .jar.
- Automatically injects any newly added configuration keys or default values into your local files without overwriting your customized values.
- Added an optional strict mode parameter (removeObsolete) capable of cleaning up and deleting outdated configuration keys. (Currently defaults to false to safely protect user-defined dynamic keys such as custom rewards and action entries).
- Logs an [Auto-Updater] message cleanly to the console whenever an injection occurs.
System & Action Notifications Integration
- Replaced hardcoded game.sendMessage() calls inside SpawnWaveAction, ReachLocationAction, and SmartBreakWallAction with the standard game.sendActionMessage(...).
- Dynamically linked all action broadcasts to their correct contextual categories (init, progress, complete).
- This ensures all notifications are now fully togglable directly from the action-notifications module inside config.yml.
Bug Fixes & Stability
DungeonGame Stability
- Added a safe null-check explicitly to the sendActionMessage logic. This gracefully handles any 3rd-party action instances that haven't fully registered a valid actionType, preventing unwanted NullPointerException crashes.
Editor & Map Config Structure Fixes
- Fixed example_dungeon.yml template structure: The LOOT_CHEST items configuration list was outdated and misleading (List instead of Map). Rewrote it to safely match the exact ConfigurationSection (SLOT: "DATA") schema exported naturally by the in-game GUI Editor.
- Fixed config.yml: Changed the action-defaults.loot_chest.items section from a broken array list [ ] to an empty map block {} to ensure correct parsing and avoid backend YAML casting errors.
- Default language to en (1.5.3.1)
- Fix NMS Warning incorrect version, it still java 21 and maybe support 26.1.1 (1.5.3.2)
