Elemental Dragon Plugin 1.2.5
🐉 Elemental Dragon Plugin v1.2.5
Full Changelog: v1.2.0...v1.2.5
📝 Overview
This release brings major HUD improvements showing passive abilities, active buffs, debuffs, and ability countdowns. Also includes critical bug fixes for fragment behavior and emoji rendering issues, plus improved CI/CD with automated release workflow.
✨ New Features
HUD Improvements
Passive Ability Display
When a fragment is equipped, the HUD now shows its passive benefit:
- 🔥 Burning Fragment: "100% Fire Immunity"
- 💨 Agility Fragment: "30% Speed Boost"
- 🛡️ Immortal Fragment: "Resists Death"
- 👁 Corrupted Core: "See in Darkness"
Active Buff Display
When potion effects are active, they replace the passive description:
- Shows "✦ Fire Immunity" when immunity is active
- Shows "✦ Speed Boost" when speed is boosted
- Multiple active buffs displayed with " • " separator
Debuff Display (Victim's HUD)
When a player is affected by debuffs like Dread Gaze freeze, their HUD shows:
- "⚠ DEBUFFS ⚠" section header
- "👁 FROZEN (8s)" with reverse progress bar
- Countdown updates in real-time
Foe Frozen Countdown (Attacker's HUD)
When the attacker freezes someone with Dread Gaze (/corrupt 1), they see:
- "👁 Foe Frozen (9s)" showing how long their target remains frozen
- Helps attacker track when to time their next attack
Active Ability Countdown
Abilities with duration now show remaining time:
- "👁 /corrupt 1 (10s) ACTIVE (9s)" - counts down from 10 to 0
- Progress bar fills as ability duration progresses
🐛 Bug Fixes
Fragment System
/clear Command Handling
Fixed proper removal of fragment abilities when using Minecraft's /clear command:
- All fragments are unequipped (if still in inventory)
- All passive bonuses removed
- All active abilities cancelled
- All active states cleared (including READY TO STRIKE)
Fragment Destruction
Fixed bug where fragments could be destroyed through various means, leaving players in a broken state.
Drop Behavior
Fixed bug where dropping a non-equipped fragment would incorrectly unequip the current fragment.
Ability Implementation
Fixed various bugs in ability implementations:
- Dread Gaze metadata cleanup timing
- Life Devourer expiration handling
- Ability state transitions
Emoji Display
VS16 Variation Selector Removal
Fixed emoji rendering issues by removing VS16 (Variation Selector 16, U+FE0F) from all emoji:
⚠️ → ⚠ (warning)- ⚙️ → ⚙ (gear)
- ⚔️ → ⚔ (crossed swords)
- ⏱️ → ⏱ (hourglass)
- 🌩️ → 🌩 (cloud with lightning)
- ❄️ → ❄ (snowflake)
- 🛡️ → 🔰 (shield → shield emblem)
- And other emoji
Root Cause: Minecraft clients couldn't render emoji with VS16, displaying literal text like "snowflake[VS16]" instead of the emoji character.
Test Added: NoVS16EmojiTest scans all Java source files to prevent this issue from recurring.
🧪 Testing
Java 21 Compatibility
Fixed unit tests to work properly with Java 21:
- Updated mocking approach using Mockito 5.17.0
- Fixed test infrastructure issues
New Test Coverage
Added comprehensive unit tests for:
FragmentManagerBehaviorTest- fragment state managementWithdrawabilityCommandTest-/withdrawabilitycommand behaviorCooldownSubcommandTest- cooldown subcommandsPlayerResolverTest- player resolution logicEntityTargeterTest- entity targeting systemAchievementTest- achievement systemAbstractSubcommandTest- base subcommand behaviorGlobalCooldownFormatterTest- cooldown formattingCraftedCountManagerTest- crafted item countingCraftingManagerTest- crafting systemAbilityDefinitionTest- ability definitionsFragmentItemListenerTest- fragment item eventsFragmentHudManagerTest- fragment HUD displayPlayerPreferenceManagerTest- player preferencesElementalItemsTest- elemental item systemElementalPlayerTrackerTest- player tracking
GitHub Actions Fixes
Fixed warnings about missing test report files in workflow runs.
📚 Documentation
User Documentation Updates
/clear and /withdrawability
Comprehensive documentation of fragment unequipping methods:
Method 1: /withdrawability Command
/withdrawability
Unequips the currently equipped fragment and clears all associated abilities, cooldowns, and passive effects.
Method 2: Drop Fragment (Q key)
- Drop the fragment from your hotbar
- Automatically unequips and clears abilities
Method 3: /clear Command (Vanilla)
/clear
Minecraft's built-in clear command now properly handles fragment abilities.
Cooldown Persistence
Documented spam prevention mechanism:
- Cooldowns survive fragment unequip/equip cycles
- Only death clears cooldowns (fair respawn mechanics)
- Prevents cooldown reset exploits
New Documentation Files
docs/fragments-manual.md- Comprehensive fragment manual (780 lines)docs/archive/- Archived outdated implementation docs
Documentation Cleanup
Removed outdated documentation:
docs/dev/- Old client integration docsdocs/archive/- Historical implementation notesdocs/development/- PILAF development guides
🚀 CI/CD Improvements
Automated Release Workflow
New GitHub Actions workflow for automated releases (.github/workflows/release.yml):
Version Bumping Options:
patch- Increment patch version (x.y.z → x.y.(z+1))minor- Increment minor version (x.y.z → x.(y+1).0)major- Increment major version (x.y.z → (x+1).0.0)skip- Use current version without bumpingx.y.z- Use exact version specified
Automated Steps:
- Extract current version from
build.gradle - Calculate next version based on input
- Update
build.gradleandgradle.properties - Commit version bump
- Create and push git tag
- Build production JAR using
build.sh --production - Verify plugin.yml structure
- Create GitHub release with auto-generated notes
Python-Based Implementation:
- Uses Python 3.x for reliable version handling
os.environ['GITHUB_OUTPUT']for step outputs- Lambda functions for regex substitutions
- Updates both version files in sync
New Workflows
.github/workflows/links.yml- Link checking workflowDockerfile.tests- Docker support for testing
Infrastructure Improvements
start-server.sh- Enhanced server startup script (102 lines)stop-server.sh- Improved server shutdown script
🔄 Migration Notes
If you're upgrading from v1.2.0:
- No Breaking Changes - All existing functionality preserved
- New HUD Features - Work automatically with existing fragment saves
- Cooldowns Persist - Existing cooldown states maintained
- Re-install Plugin - Simply replace JAR file on your server
📦 Installation
# Download JAR from releases
# Place in your Paper server's plugins directory
cp ElementalDragon-1.2.5.jar /path/to/your/paper-server/plugins/
# Restart your Paper 1.21+ server
java -Xms2G -Xmx2G -jar paper-1.21.8-latest.jar nogui⚙️ Requirements
- Minecraft: Java Edition 1.21+
- Server Software: Paper 1.21.11-R0.1-SNAPSHOT
- Java: Version 21 or higher
- Memory: Minimum 2GB RAM recommended
🙏 Credits
Version: 1.2.5
Minecraft Version: 1.21+
Paper API: 1.21.11-R0.1-SNAPSHOT
Contributors: The Cavarest project