Release v1.7.3
🚀 EndSectors 1.7.3
Logging improvements, exploit fixes & Paper 1.21.4 compatibility (Adventure API)
🧾 Overview
This release focuses on full migration to Adventure API across Paper and Tools modules, enhancing the logging system, and fully updating the project for Paper 1.21.4.
💡 Why Adventure API?
We have completely moved away from legacy String-based text handling. This change was necessary to:
- Fix Font Issues: Resolved the "distorted/italic" font bug that occurred by default in Paper 1.21.4.
- Modern Color Support: Native support for MiniMessage and HEX/RGB gradients without "stripping" colors or causing
ParsingException. - Future Proofing: Following the latest Paper/Bukkit standards to ensure stability in future Minecraft updates.
The update improves stability, removes IDE/runtime warnings, and hardens the plugin against known and potential exploits across all project modules.
🔧 Technical Changes
🎨 UI & Text (Adventure API Migration - Paper & Tools)
- Refactored
ChatAdventureUtil(Tools module):- Rewrote parsing logic to safely handle mixed formats (MiniMessage, Legacy
§, and Ampersand&). - Fixed
ParsingExceptionImplcaused by legacy codes in modern strings. - Implemented automatic italic decoration removal to ensure clean, readable fonts in all GUIs and messages.
- Rewrote parsing logic to safely handle mixed formats (MiniMessage, Legacy
- Modernized
StackBuilder(Paper module):- Fully migrated
displayNameandloreto useComponentAPI. - Fixed deprecated
StackBuilder.type(Material)method.
- Fully migrated
- WindowUI Improvements:
- Updated inventory creation to use
Componenttitles, removing deprecation warnings and ensuring 1.21.4 compatibility.
- Updated inventory creation to use
🛡 Exploit Fixes & Protection (Paper module)
- Anti-Duplication: Added preventive protection against item duplication exploits involving dispensers, sticky mechanics, and shulker boxes.
- Shulker Protection: Added listener to prevent interacting with shulker boxes inside sector border distance (works silently).
- Projectile Fix: Corrected
ProjectileLaunchEventhandling to safely check shooter type, preventingClassCastExceptionfrom non-player entities.
🧪 Serialization, Logic & Cleanup
- Legal & Documentation: Added missing Non-Commercial License (2025) headers to all source files to protect intellectual property.
- Potion Effects: Refactored
PlayerDataSerializerUtilto use the new registry-based API compatible with Paper 1.21+. - SendSectorInfoTask: Replaced static instance usage with proper field-based
paperSectorinstance. - General Code Cleanup: Applied various minor formatting fixes (e.g.,
knockBorderlogic), cosmetic code improvements, and simplified internal logic.
🪵 Logging & Diagnostics
- Structured Logging: Added
LoggerUtil.warn(String, Throwable)and replaced allprintStackTrace()calls with proper logging. - TPS Monitoring: Updated
TpsUtilto log exceptions properly with a safe20.0TPS fallback.
⚙️ Build & Compatibility
- Updated Gradle to
paper-api:1.21.4-R0.1-SNAPSHOT. - Project fully compatible with Paper 1.21.4 and the latest Bukkit/Paper registry-based APIs.
📦 Requirements
- Paper: 1.21.4
- Java / JDK: 21
📥 Local Build
./gradlew clean build