LagXpert v1.3 - Changelog
We are excited to announce the release of LagXpert v1.3! This update brings a comprehensive overhaul of the plugin, focusing on
drastically improved performance,
enhanced stability,
more intuitive configuration, and
new alert control features for a smoother and less intrusive server administration experience.
✨ Key Improvements & New Features
- Massive Performance Overhaul:
- Block and entity counting logic across all modules (listeners, scheduled tasks, and commands) has been completely rewritten. Highly efficient methods, such as specific Tile Entity scanning and single-pass full scans for other blocks, are now used. This significantly reduces the plugin's impact on server performance, especially during chunk scanning and command execution like /chunkstatus and /lagxpert inspect. LagXpert is now lighter than ever!
- ️ New Alert Cooldown System:
- To prevent chat spam, an intelligent alert cooldown system has been implemented. Players will no longer receive the same specific alert for the same condition/location repeatedly within a short, configurable timeframe (see alerts.yml).
- ⚙️ Granular Alert Configuration (New alerts.yml):
- The alerts.yml file has been redesigned to offer much finer control over which specific types of alerts are active (e.g., limit-reached alerts vs. near-limit warnings, for each block/entity type). This allows server administrators to tailor notifications to their exact needs, complementing the master alert toggle in config.yml.
- /lagxpert inspect <x> <z> [world] Command Now Functional:
- The inspect subcommand has been fully implemented, allowing administrators with the lagxpert.admin permission to get a detailed and efficient breakdown of any loaded chunk's contents by specifying coordinates and an optional world.
- ️ Enhanced Java 11 Compatibility:
- The codebase has been refactored to ensure compatibility with Java 11. This broadens the range of server Java versions LagXpert can run on smoothly, which is especially important for servers still utilizing Minecraft 1.16.5.
- Improved Event API:
- The structure of custom events (LagEvent, ChunkOverloadEvent) has been corrected and improved, ensuring proper implementation of Bukkit's HandlerList for better integration with other plugins.
General Optimizations & Fixes
- Configuration Consistency:
- config.yml now acts as the central control panel for enabling or disabling main plugin modules (mobs, storage, redstone, alerts, auto-chunk-scan, item-cleaner).
- Individual YAML files (mobs.yml, storage.yml, redstone.yml, itemcleaner.yml, task.yml) now focus on the detailed settings for their respective modules.
- All configuration keys and paths have been aligned between YAML files and ConfigManager.java for clarity and to prevent loading errors.
- Improved ItemCleanerTask:
- The item cleaning task now handles its own warning cycle internally (if enabled), eliminating the need for a separate warning schedule and ensuring the warning always precedes the cleanup in each cycle.
- It now consistently pulls all its settings from ConfigManager, responding correctly to reloads.
- Message System (MessageManager & messages.yml):
- MessageManager is now correctly initialized by ConfigManager.
- The messages.yml file has been thoroughly reviewed: all missing message keys have been added, discrepancies corrected, and placeholders standardized. All default messages are now in English and fully customizable.
- Polished Commands:
- All commands (/lagxpert, /chunkstatus, /clearitems, /abyss) now consistently use MessageManager for all user-facing messages.
- Improved TabCompleter for /lagxpert and /clearitems, offering more accurate and permission-based suggestions.
- Corrected permission handling and argument parsing in various commands.
- Optimized Listeners:
- EntityListener, StorageListener, and RedstoneListener now use optimized counting methods and the new granular alert and cooldown logic.
- The limit logic in StorageListener has been reviewed for accuracy.
- RedstoneListener now correctly implements persistent signal control with a delayed task.
- Updated plugin.yml:
- Permission nodes have been expanded and detailed, especially for bypasses (lagxpert.bypass.*), covering all limitable elements.
- Added permission-message and aliases to command definitions for better Bukkit integration.
- Various Bug Fixes:
- Resolved multiple "Cannot resolve symbol" and "Cannot resolve method" errors that arose during refactoring.
- Fixed the "Duplicate class" issue related to LagXpertCommand.java.
- Ensured code compatibility with Java 11 by removing records and "pattern matching for instanceof" where necessary.
We hope you enjoy the stability, performance, and customization improvements in LagXpert v1.3. As always, your feedback and bug reports are welcome on our Discord or the plugin page!