Major Stability, Security, and Performance Improvements
Security & Stability
Protection Bypass Fix: Protection checks (ProtectionManager) are now executed before every block placement inside BlockPlacerTask and ReplaceTask, not just at the selection corners. This prevents griefing of protected regions located inside the selection area.
SQLite Thread-Safety: A ReentrantLock mechanism has been added to SQLiteDatabaseManager. This resolves database is locked errors during asynchronous operations.
Data Integrity & Undo System
NBT Support (Data Loss Fix): The undo system now stores BlockState instead of BlockData. This ensures that inventories (e.g., chests), signs, and spawner types are preserved during rollback.
Refund Exploit Fix: Items refunded during undo are no longer added to the player's inventory if the player is far away, preventing teleport-based duplication exploits.
Optimization: Dropped items are no longer spawned as individual entities when far away. Instead, they are grouped into stacks of 64 and dropped at the operation location to reduce server load.
UX Improvement: If the player is within 50 blocks, refunded items are directly added to the inventory for better performance and user experience.
Performance & Optimization
Reflection Caching: Hook methods in ProtectionManager (e.g., Towny, Lands integrations) have been optimized. Repeated Class.forName calls per block have been removed and cached during initialization.
Memory Leak Fix: UndoManager now uses a lightweight custom SimpleLocation class instead of Location. Additionally, histories of unloaded worlds are cleared via WorldListener, preventing RAM bloat.
Other
Smart Inventory Consumption: During building, valuable items (enchanted, renamed, or with lore) are no longer consumed from the player's inventory.
Async Safety: SelectionVisualizer no longer holds direct Player references. Instead, it accesses players via UUID dynamically, eliminating async access warnings in the console.
-
Fixed 8 different issues related to security, stability, performance, and data integrity.