Major Cumulative Update: GUI Logic Fixes & Custom Language Configuration
Version 1.2.0.71 (2025-06-05)
New Features
Implemented GUI multi-language system.
Created GUILanguageManager class, dedicated to managing multi-language support for GUI interfaces.
Added lang_gui.yml (Chinese) and lang_gui_en.yml (English) configuration files.
Modified AbstractGUI base class, adding multi-language support methods and helper tools.
Successfully refactored 9 main GUI classes to support automatic loading of corresponding language files based on the lang setting in config.yml.
Includes 200+ GUI text configurations, covering all interface elements.
Improvements
Optimized GUI text management system.
All hardcoded Chinese messages in GUI are now read from configuration files.
Supports dynamic placeholder replacement, such as template names, player names, etc.
Implemented a language file fallback mechanism to ensure system stability.
Added convenient helper methods to simplify multi-language implementation in GUI classes.
Version 1.2.0.66 (2025-06-05)
Bug Fixes
Fixed an issue where GUI editing functionality was not synchronized with template configuration files.
Resolved an issue where the configuration file was not updated after modifying creation condition toggles in the GUI.
Added a template reload mechanism after all GUI save operations to ensure synchronization between memory and configuration files.
Fixed an issue where old configurations were still used when creating dungeon instances; now uses the latest configuration file content.
Involved modifications to 13 files: 9 GUI classes and 4 command classes.
Technical Improvements
Added reloadTemplate() calls after all saveTemplate() calls to ensure data consistency.
Optimized the real-time synchronization mechanism for template configurations, improving the reliability of configuration changes.
Followed a unified method principle, applying the same reload logic in all relevant locations.
Version 1.2.0.30 (2025-06-05)
New Features
Implemented a system for player state restoration upon reconnection to a dungeon after being offline.
Resolved state inconsistency issues when players reconnected after being offline within a dungeon.
Added handlePlayerReconnection() method to handle dungeon state checks when players reconnect.
Implemented an intelligent state restoration mechanism: automatically detects if the player is in a dungeon world and restores their state accordingly.
Added orphaned player handling: players in invalid/expired dungeon worlds are automatically teleported to a safe location.
Improvements
Enhanced PlayerListener.onPlayerJoin() event handling.
Delayed player state check by 1 tick to ensure the player is fully loaded before performing the check.
Added handling logic for various reconnection scenarios: state restoration, permission verification, orphan cleanup.
Extended DungeonManager class functionality.
Added findDungeonByWorldName() method to find corresponding dungeon instances by world name.
Changed setPlayerGameMode() method to public to support game mode setting during state restoration.
Improved dungeon security system.
Automatically verifies player permissions upon reconnection; players without permission will be safely removed.
Supports various permission verifications, including public dungeons, private dungeons, creators, etc.
Message System Updates
Added reconnection-related message configurations in messages.yml:
dungeon.reconnect.restored: Message for successful player state restoration.
dungeon.reconnect.rejoined: Message for player rejoining a dungeon.
dungeon.reconnect.orphaned: Message for player being removed from an invalid/expired dungeon.
Bug Fixes
Fixed state inconsistency issues when players reconnected after being offline within a dungeon.
Fixed incorrect player game mode after reconnection.
Fixed issues where players lacked valid dungeon entry permissions after reconnection.
Fixed an issue where orphaned players could remain stuck in deleted dungeon worlds.