Visual Enhancements & New Placeholder
- Leaderboard Tag Support: Introduced a brand-new placeholder to display the stylized, colored clan tag instead of just the stripped plain name (_name) in leaderboard lists. %apex_clan_top:[criterion]:[rank]_tag% (e.g., %apex_clan_top:kill:1_tag%) allows top clans to showcase their custom colors and gradient styles directly in global ranks. ClipPlaceholder.java has been updated accordingly.
- Ally Menu Prefix Resolution: Fixed an issue where the arrow icon in the Allies section remained static green despite active_prefix being configured differently (e.g., &6» ). Corrected the configuration retrieval path within ClanAlliesMenu.java to properly fetch user-defined colors.
System & Interface Refinements
- Duplicate Invite Messages Fixed: Resolved a bug where inviting a player to a clan triggered the invitation message twice sequentially. Cleaned up redundant messaging code lines inside ClanInviteCommand.java.
- War Watch Menu Localization: Fixed a missing translation issue where the "Back" button in the spectator menu remained hardcoded in English across foreign language options. Implemented the clan.menu.war-watch.back string path and applied localized button texts to all 6 default language files (TR, ENG, RU, FR, ES, JP).
Bug Fixes: All duplicate notification glitches, configuration path mismatches, and multi-language menu omissions reported via Discord have been fully addressed in this release.
SQLite Lock-Up (SQLITE_BUSY) Resolution
- Lock Prevention: Resolved SQLite locking issues within member removal and banning methods in ClanDataStorageSQL. Code was refactored to fully close read queries before executing write transactions, preventing concurrent conflicts.
- Advanced PRAGMA Settings: Added PRAGMA foreign_keys = ON; and PRAGMA busy_timeout = 5000; configurations for SQLite. Foreign Key constraints are now enforced, and the driver will wait up to 5 seconds during busy locks rather than throwing immediate exceptions.
Cascade Deletion & Orphan Data Fixes
- Orphan Member Prevention: Fixed a bug where deleting a clan left members orphaned inside the database, preventing them from properly leaving or joining new clans due to outdated cache states.
- SQL Transaction Security: Clan deletion routines now wipe all interconnected sub-tables (clan_members, clan_allies, clan_rivals, clan_homes, clan_bans, member_permissions, member_history, clan_bank_logs, clan_metadata) within a single, atomic SQL Transaction.
Bug Fixes: All SQLite concurrency locks and post-deletion orphaned member glitches reported via Discord have been fully resolved in this release.
New Feature: Custom Colored & Gradient Clan Tags
- Advanced Tag Customization: Added the /clan tag <tag|clear|reset> command. Clan leaders can now fully customize their tags using MiniMessage formatting, allowing Hex colors, gradients, and rainbow effects.
- Validation Check: The system verifies the stripped text of the tag against the actual clan name, ensuring only visual colors/styles are applied without altering the identity.
- Universal Integration: Fully integrated with PlaceholderAPI (%apex_clan_tag%), clan chat, and ally chat. Dynamic Tab-complete suggestions are available for leaders.
Database Relocation & Universal SQL Translation
- Library Shading (Relocation): Shaded and relocated H2 and HikariCP libraries to prevent legacy database migration issues like ClassNotFoundException. Fixed H2 2.2+ keyword restrictions by appending ;NON_KEYWORDS=VALUE to the connection URL.
- Universal SQL Translator: SQLite queries are now dynamically translated to run flawlessly across H2, MySQL, MariaDB, and PostgreSQL. INSERT OR REPLACE automatically converts to REPLACE for MySQL/H2 and ON CONFLICT DO UPDATE for PostgreSQL.
- Crash Fixes: Resolved installation crashes caused by MySQL's lack of IF NOT EXISTS index syntax via a safe index creator. Fixed a crash during clan exits by replacing the two-parameter MAX(a, b) function with GREATEST(a, b).
Critical Bug Fixes & Refinements
- Ender Pearl & Friendly Fire: Fixed a UUID comparison bug that triggered the "You cannot attack clan members!" warning when a player took damage from their own Ender Pearl.
- Chat Lock Prevention: Players will no longer get stuck in a locked chat state during clan creation if the name is invalid or a database failure occurs. Added localized "iptal" (cancel) support for Turkish servers.
- Blacklist Wildcard Glitch: Fixed an issue where using a * (wildcard) pattern in the word blacklist unintentionally blocked the creation of all new clan names.
- Extended Placeholders: Added missing PlaceholderAPI tokens for Level, XP, Kills, Deaths, and KDR. Introduced a configurable no_clan_text option (Default: &c
) for players without a clan.
Bug Fixes: All SQL dialect crashes, chat locks, and placeholder conflicts reported via Discord have been fully resolved in this release.
Mob Kill Reward System
- Enhanced RPG Dynamics: Implemented a brand new ClanMobKillListener system that allows clan members to fund their clan bank or personal balance by hunting mobs.
- Anti-Exploit Protection: Added automated checks to prevent players from exploiting mob spawners to farm rewards unfairly.
- Advanced Filters & Level Caps: Introduced drop chances per mob type and minimum clan level requirements (min_clan_level) to lock high-tier mob rewards behind RPG progression.
- Flexible Destinations: Rewards can now be routed directly to the killing player's balance (PLAYER) or deposited into the shared CLAN_BANK.
Configuration Modularization & Premium Announcements
- New levels.yml Module: To keep the main configuration clean, all Level progression and Mob Reward configurations have been moved into a dedicated levels.yml file.
- Premium Localization Announcements: Standard system announcements have been migrated out of the main config into language files (tr.yml, eng.yml). Message layouts were completely redesigned with neon gradients and custom HEX colors for a modern look.
Hologram & Placeholder Color Fixes
- Hologram Color Resolution: Fixed an issue where hologram plugins displayed raw MiniMessage tags rather than rendering colors correctly. By defaulting settings.placeholders.use_minimessage to false, PlaceholderAPI now successfully falls back to legacy color codes (& / §) for universal hologram compatibility.
- Clan Tag Logic: Clarified that the clan name acts directly as the tag, and changes made via /clan color automatically cascade down to all placeholders.
Bug Fixes: All issues regarding placeholder color bleeding, hologram compatibility, and configuration clutter reported via Discord have been fully resolved in this build.
Multi-Backend Database Support
- YAML: Creates local YAML files for each clan. It is configuration-free and highly reliable for smaller servers.
- SQLite: Stores all clan data in a local SQLite database file (apexclan.db). Offers high performance without requiring external installation.
- H2: An embedded Java database similar to SQLite; operates exceptionally fast in MySQL compatibility mode (MODE=MySQL).
- MySQL / MariaDB / PostgreSQL: Connects to external databases via HikariCP connection pooling. SQL queries are dynamically translated across dialects (handling differences like AUTOINCREMENT or INSERT OR IGNORE via the adaptQuery(...) method).
- MongoDB: Connects to a MongoDB database, storing each clan's data as a single document within the clans collection.
- Redis: Utilizes JedisPool to maintain clan data in-memory under the apexclan:clan:<clan_name> key, delivering ultra-high access speeds.
Visual & Interface Enhancements
- Head Skin/Texture Loading: Fixed player head items in menus to resolve and load true GameProfile textures via reflection. This resolves the blank/Steve skin issue on offline mode servers and Geyser/Bedrock clients. Also fixed createCustomHead to successfully apply base64 custom textures on modern Minecraft versions.
- Announcement Empty Space: Removed extra leading and trailing newlines (\n) from chat announcements during clan creation, deletion, joining, and leaving across all database backends.
- Localizable Status Labels: Joint/participation types (OPEN, PASSWORD, INVITE_ONLY) have been mapped to keys in TR.yml / ENG.yml for full localization. Fixed "Enabled" and "Disabled" PvP status labels by resolving a path mismatch and adding a robust lookup fallback.
System & Mechanics Fixes
- Clan Chest Item Interaction: Fixed the bug preventing players from storing items in the clan chest by excluding ClanChestHolder from the global click canceller and updating ClanChestClickListener to allow placing items on empty slots.
- Settings Button Click Error: Wired the fully initialized ClanSettingsMenu directly into the ClanCommandManager so that accessing settings via the /clan settings command correctly registers the click handler for the clan messages button.
- Language & Database Fallbacks: Updated TR.yml default join/leave messages to match the English defaults as requested. Fixed the YAML database fallback mechanism so it correctly displays localized default messages rather than hardcoding English defaults.
Bug Fixes: All issues regarding chest interactions, skin textures, and interface clicks reported via Discord have been fully resolved in this release.
System & Localization Enhancements
- Tab-Complete Adjustments: Fixed minor glitches within the command suggestion system (Tab-Completer) for a more stable autocomplete experience.
- Language File Polish: Resolved minor typos and formatting inconsistencies detected across the language files (YAML).
- General Stability: Patched several minor background bugs to optimize overall system performance and reliability.
Bug Fixes: All minor technical issues and translation bugs reported via Discord have been fully resolved in this release.
Subcommand Alias & Tab Optimization
- Dynamic Hiding: When a custom alias is defined for a subcommand in plugin.yml (e.g., types: [tür]), the original English command is automatically hidden from TAB suggestions, displaying only the defined alias.
- Code Cleanup: Removed legacy, hardcoded aliases from ClanTabCompletor. Suggestions are now fully dynamic and handled strictly via plugin.yml, eliminating duplicate and incorrect autocomplete prompts.
Update Checker & Logic Fixes
- Decoupled Language Dependency: Removed the YamlLangManager dependency from the Updater and PlayerJoinEventHandler classes. Update notifications are now properly streamlined.
- Version Logic Correction: Fixed a logic bug where the update checker triggered false positives if the server ran a version newer than Spigot (e.g., dev builds), which previously resulted in negative version differences. The system now only triggers if a newer version is officially available on Spigot.
Bug Fixes: All autocomplete bugs and version checker glitches reported via Discord have been fully resolved in this release.
Modern Visual Infrastructure (MiniMessage & RGB)
- Centralized Formatting: All system messages and GUI components have been migrated to the ChatUtils engine. Full support for MiniMessage, Hex, and RGB (gradients, rainbow, etc.) is now available plugin-wide.
- GUI Standardization: Titles and lores for all menus (Market, History, Settings, etc.) are now automatically processed for consistent high-quality rendering.
- Enhanced Lore Support: Added multi-line formatting (formatLore) for dynamic and rich menu descriptions.
Smart Command & Name Resolution
- Stripped Name Recognition: Commands like /clan join, stats, ally, and rival now recognize clan names regardless of color codes. Input names are correctly matched to their original database entries even without color prefixes.
- Advanced API: Implemented getClanByStrippedName to eliminate command failures caused by hidden formatting codes.
Localization & Fixes
- Zero Hardcoded Strings: All remaining hardcoded text in ClanChestWipeMenu and other modules has been moved to language files.
- Dynamic Placeholders: Added new support for variables like %page% in chest management messages.
- Bug Fixes: Resolved invite acceptance/denial mismatches and fixed formatting issues that caused color bleeding in certain GUIs.
Bug Fixes: All technical reports and visual glitches reported via Discord have been fully resolved in this architectural update.
