Releases: cavarest/elemental-dragon
Elemental Dragon v1.3.7
🎮 For Players
⚔️ Combat Improvements (Issue #28 Balance Changes)
Fire Fragment - Dragon's Wrath (/fire 1)
- 💥 Armor-Piercing Damage: Now deals 4 hearts damage regardless of armor
Agility Fragment - Draconic Surge (/agile 1)
- ✨ Toggle Behavior: Type
/agile 1again while dashing to halt immediately - ⚔️ Collision Damage: Deals 3 hearts damage to entities you hit during dash (ignores armor)
Lightning Ability (/lightning 1)
- 🎒 Inventory-Only Requirement: Dragon egg no longer needs to be in offhand! As long as it's anywhere in your inventory, you have access to the ability
Agility Fragment - Wing Burst (/agile 2)
- 💨 Improved Velocity: Knockback increased to 20 blocks (more reliable)
🛡️ Bug Fixes
- Fixed
/equipcommand allowing admins to bypass the one-fragment limit - Fixed Wing Burst velocity too low due to friction
- Fixed HUD not updating on inventory slot changes
🔧 For Server Operators
🏗️ Internal Improvements
- Consolidated duplicate event listeners into single FragmentItemListener
- Modernized Bukkit/Paper API usage
- Added DRY helper methods for inventory checking (ElementalItems class)
- Enhanced HUD system with better event handling (PlayerInventorySlotChangeEvent)
🧪 Testing Framework
- Added Pilaf integration test suite (17 test scenarios)
- Added world profile system for development testing
📊 Test Coverage
- Unit Tests: 783 tests passing
- Integration Tests: 17 Pilaf scenarios passing
Full Changelog: v1.3.6...v1.3.7
Elemental Dragon v1.3.7
Elemental Dragon Plugin 1.3.5
Full Changelog: v1.3.4...v1.3.5
Elemental Dragon Plugin 1.3.3
Full Changelog: v1.3.2...v1.3.3
Elemental Dragon Plugin 1.3.2
Full Changelog: v1.3.1...v1.3.2
Elemental Dragon Plugin 1.3.1
What's Changed
- Keep abilities equipped when organizing inventory by @ronaldtse in #24
- fix: persistence of elemental ability on player join/quit, fixes #23 by @ronaldtse in #25
- Fix release workflows by @ronaldtse in #26
Full Changelog: v1.3.0...v1.3.1
v1.3.0: One-Fragment Limit & Ability Fixes
🎮 For Players (Gameplay Changes)
⚠️ Important: One-Fragment Limit
- You can now only carry ONE fragment type at a time!
- If you have a Burning Fragment, you cannot pick up or equip any other fragment (Agility, Immortal, Corrupted Core)
- To switch fragments, you must DROP your current fragment first
- Use
/withdrawabilityto unequip your current fragment without dropping it
🔥 Fire Fragment Fixes
- Dragon's Wrath (
/fire 1) now deals consistent damage- Always deals exactly 3 hearts of damage
- Damage ignores armor (as originally intended)
👁 Corrupted Core Fixes
- Dread Gaze (
/corrupt 1) duration changed to 4 seconds (was 10 seconds) - Frozen targets now properly cannot move, eat, or use inventory
🔧 For Server Operators
🛡️ One-Fragment Limit Implementation
- Comprehensive fragment checking across inventory, equipped, and cursor
- Players can no longer bypass limit by:
- Picking up fragments while holding another on cursor
- Clicking equipped fragment while standing on another
- Using equip commands with fragments in containers
🔧 Bug Fixes
- BurningFragment: Simplified Dragon's Wrath damage calculation
- CorruptedCoreFragment:
- Added debuff metadata for tracking frozen players
- Implemented persistent freeze using Bukkit teleportation (anti-cheat compatible)
- Fixed freeze duration to 4 seconds
🧪 Testing
- Added
FragmentManagerOneFragmentLimitTestwith 5 comprehensive test cases - Updated
FragmentItemListenerTestfor new API
Full Changelog: https://github.com/cavarest/elemental-dragon/blob/main/CHANGELOG.md
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
🔗 Links
Elemental Dragon Plugin v1.2.0
🎉 Elemental Dragon Plugin v1.2.0 Released!
📝 Changes in v1.2.0
v1.2.0 (2026-01-11)
Merged pull requests:
v1.1.0 (2026-01-09)
Closed issues:
Merged pull requests:
- feat: implement new elemental dragon featuresF #12 (ronaldtse)
- Migrate to Gradle from Maven #9 (ronaldtse)
v1.0.2 (2025-12-27)
Implemented enhancements:
- Purple lightning damage always hits 2 hearts per strike ignoring armor strength #6
Merged pull requests:
- Implement proper cooldown and autocomplete #8 (ronaldtse)
- Make lighning ignore armor for health reduction #7 (ronaldtse)
v1.0.1 (2025-12-25)
Fixed bugs:
- "lightning ready" message should not show when the player does not have the dragon egg (at offhand) #1
Merged pull requests:
- Fix local testing issues #5 (ronaldtse)
- Attempt to fix integration test workflow #4 (ronaldtse)
- Add workflow_dispatch to release workflow for automated tagging #3 (Copilot)
- Show "Lightning ready" message only when player has dragon egg on offhand #2 (ronaldtse)
v1.0.0 (2025-12-24)
v0.1.1-test (2025-12-24)
v0.1.0 (2025-12-23)
* This Changelog was automatically generated by github_changelog_generator
📥 Installation Instructions
For Server Administrators:
- Download the plugin JAR file below
- Place it in your Paper server's
plugins/directory - Restart your Paper 1.21.8+ server
- Configure - No additional configuration needed!
For Players:
- Get a Dragon Egg:
/give @p minecraft:dragon_egg - Move to offhand: Press
Fkey - Use ability:
/ability 1
⚡ Features
- 3 Sequential Lightning Strikes with 0.5s intervals
- Purple Visual Effects and thunder sounds
- Smart Targeting - finds closest entity in view
- 60-Second Cooldown prevents spam (with smart behavior)
- 4.5 Hearts Total Damage (1.5 per strike)
- HUD Display with real-time cooldown status
- Cooldown Management: Death clears, item-independent, session-persistent
📊 Build Information
- Plugin Version: 1.2.0
-
JAR File:
$(basename "$ (find build/libs -name "elemental-dragon-*.jar" | head -1)") -
File Size:
$(du -h "$ (find build/libs -name "elemental-dragon-*.jar" | head -1)" | cut -f1) - Build Date: $(date -u +"%Y-%m-%d %H:%M:%S UTC")
-
Git Commit:
d0fa2594ded3b43916afd67ecd9c5edaf4f87956 - Paper Version: 1.21.8
- Java Version: 21+
- Build System: Gradle
What's Changed
- Align abilities mechanics to original request by @ronaldtse in #13
Full Changelog: v1.1.0...v1.2.0
Elemental Dragon Plugin v1.1.0
🎉 Elemental Dragon Plugin v1.1.0 Released!
📝 Changes in v1.1.0
v1.1.0 (2026-01-09)
Closed issues:
- Feature request: restrict players to possessing only one of specific custom items in inventory #11
- Rename command
/ability 1to/lightning 1#10
Merged pull requests:
- feat: implement new elemental dragon featuresF #12 (ronaldtse)
- Migrate to Gradle from Maven #9 (ronaldtse)
v1.0.2 (2025-12-27)
Implemented enhancements:
- Purple lightning damage always hits 2 hearts per strike ignoring armor strength #6
Merged pull requests:
- Implement proper cooldown and autocomplete #8 (ronaldtse)
- Make lighning ignore armor for health reduction #7 (ronaldtse)
v1.0.1 (2025-12-25)
Fixed bugs:
- "lightning ready" message should not show when the player does not have the dragon egg (at offhand) #1
Merged pull requests:
- Fix local testing issues #5 (ronaldtse)
- Attempt to fix integration test workflow #4 (ronaldtse)
- Add workflow_dispatch to release workflow for automated tagging #3 (Copilot)
- Show "Lightning ready" message only when player has dragon egg on offhand #2 (ronaldtse)
v1.0.0 (2025-12-24)
v0.1.1-test (2025-12-24)
v0.1.0 (2025-12-23)
* This Changelog was automatically generated by github_changelog_generator
📥 Installation Instructions
For Server Administrators:
- Download the plugin JAR file below
- Place it in your Paper server's
plugins/directory - Restart your Paper 1.21.8+ server
- Configure - No additional configuration needed!
For Players:
- Get a Dragon Egg:
/give @p minecraft:dragon_egg - Move to offhand: Press
Fkey - Use ability:
/ability 1
⚡ Features
- 3 Sequential Lightning Strikes with 0.5s intervals
- Purple Visual Effects and thunder sounds
- Smart Targeting - finds closest entity in view
- 60-Second Cooldown prevents spam (with smart behavior)
- 4.5 Hearts Total Damage (1.5 per strike)
- HUD Display with real-time cooldown status
- Cooldown Management: Death clears, item-independent, session-persistent
📊 Build Information
- Plugin Version: 1.1.0
-
JAR File:
$(basename "$ (find build/libs -name "elemental-dragon-*.jar" | head -1)") -
File Size:
$(du -h "$ (find build/libs -name "elemental-dragon-*.jar" | head -1)" | cut -f1) - Build Date: $(date -u +"%Y-%m-%d %H:%M:%S UTC")
-
Git Commit:
a946319217d3feef6be18d322b6861335c04a779 - Paper Version: 1.21.8
- Java Version: 21+
- Build System: Gradle
What's Changed
- Migrate to Gradle from Maven by @ronaldtse in #9
- feat: implement new elemental dragon featuresF by @ronaldtse in #12
Full Changelog: v1.0.2...v1.1.0