
CladeWelcome
A lightweight and customizable welcome plugin focused on performance, stability, and simplicity.
Список изменений
📦 CladeWelcome v0.4.0.0.a-RELEASE
🚀 Features
-
Supported: 1.20.x, 1.21.x
-
Multi-Language Architecture: Designed a modular localization system with native support for 10 languages (en, ru, uz, de, es, tr, fr, pl, pt, it). Built-in automatic generation of language files in the lang/ directory.
-
Dynamic Welcome Mechanics: Implemented comprehensive welcome triggers across key client UI components: Chat, Title/Subtitle, Actionbar, and BossBar.
-
Smart Content Randomization: Added support for string lists within localization files, enabling random welcome message rotation on each player join event.
-
First-Join Tracking: Integrated a dedicated first-join trigger featuring customizable visual effects (Firework) and unique community-wide welcome notifications.
-
Info Panel & Analytics: Implemented a customizable multi-line dashboard displaying real-time session statistics (Rank, Ping, Server Time, Online Count).
🔧 Refactoring & Code Quality
-
Adventure API Integration: Fully migrated text rendering to the modern Adventure framework. Standardized native HEX-color parsing and gradient formatting, eliminating legacy Bukkit color code dependencies.
-
Robust Localization Fallback: Overhauled the internal normalize() method. If an invalid or corrupted language pack is detected, the plugin isolates the issue and seamlessly falls back to the master en.yml profile.
-
String Processing Optimization: Segmented the LangManager#getRaw() logic to differentiate between single-line entries and multi-line lists. String arrays are now reliably transformed into clean structural blocks using String.join().
🐛 Bug Fixes
-
Compilation & Entity Lifecycle: Resolved a critical compilation failure triggered by invalid entity-hiding method signatures within the spawnPrivateFirework logic. Firework lifecycle hooks now strictly adhere to safe Bukkit API standards.
-
Task Management: Fixed a potential memory leak during runtime plugin reloads. Active BossBar visibility tasks are now explicitly terminated via Bukkit.getScheduler().cancelTasks().
🔌 Dependencies
- PlaceholderAPI Support: Added an optional soft-dependency hook. When PAPI is detected at runtime, external placeholders are parsed dynamically across all configured text interfaces.
