Skip to content

Release v1.7.3

Choose a tag to compare

@endixons endixons released this 30 Dec 08:37
94394db

🚀 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 ParsingExceptionImpl caused by legacy codes in modern strings.
    • Implemented automatic italic decoration removal to ensure clean, readable fonts in all GUIs and messages.
  • Modernized StackBuilder (Paper module):
    • Fully migrated displayName and lore to use Component API.
    • Fixed deprecated StackBuilder.type(Material) method.
  • WindowUI Improvements:
    • Updated inventory creation to use Component titles, removing deprecation warnings and ensuring 1.21.4 compatibility.

🛡 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 ProjectileLaunchEvent handling to safely check shooter type, preventing ClassCastException from 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 PlayerDataSerializerUtil to use the new registry-based API compatible with Paper 1.21+.
  • SendSectorInfoTask: Replaced static instance usage with proper field-based paperSector instance.
  • General Code Cleanup: Applied various minor formatting fixes (e.g., knockBorder logic), cosmetic code improvements, and simplified internal logic.

🪵 Logging & Diagnostics

  • Structured Logging: Added LoggerUtil.warn(String, Throwable) and replaced all printStackTrace() calls with proper logging.
  • TPS Monitoring: Updated TpsUtil to log exceptions properly with a safe 20.0 TPS 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