Skip to content

Releases: cavarest/elemental-dragon

Elemental Dragon v1.3.7

27 Jan 13:37

Choose a tag to compare

🎮 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 1 again 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 /equip command 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

21 Jan 08:50

Choose a tag to compare

Full Changelog: v1.3.5...v1.3.6

Full Changelog: v1.3.5...v1.3.6

Full Changelog: v1.3.5...v1.3.6

Elemental Dragon Plugin 1.3.5

21 Jan 08:10

Choose a tag to compare

Elemental Dragon Plugin 1.3.3

21 Jan 08:05

Choose a tag to compare

Elemental Dragon Plugin 1.3.2

21 Jan 06:16

Choose a tag to compare

Elemental Dragon Plugin 1.3.1

21 Jan 06:13

Choose a tag to compare

What's Changed

Full Changelog: v1.3.0...v1.3.1

v1.3.0: One-Fragment Limit & Ability Fixes

20 Jan 03:13

Choose a tag to compare

🎮 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 /withdrawability to 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 FragmentManagerOneFragmentLimitTest with 5 comprehensive test cases
  • Updated FragmentItemListenerTest for new API

Full Changelog: https://github.com/cavarest/elemental-dragon/blob/main/CHANGELOG.md

Elemental Dragon Plugin 1.2.5

17 Jan 09:47

Choose a tag to compare

🐉 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 management
  • WithdrawabilityCommandTest - /withdrawability command behavior
  • CooldownSubcommandTest - cooldown subcommands
  • PlayerResolverTest - player resolution logic
  • EntityTargeterTest - entity targeting system
  • AchievementTest - achievement system
  • AbstractSubcommandTest - base subcommand behavior
  • GlobalCooldownFormatterTest - cooldown formatting
  • CraftedCountManagerTest - crafted item counting
  • CraftingManagerTest - crafting system
  • AbilityDefinitionTest - ability definitions
  • FragmentItemListenerTest - fragment item events
  • FragmentHudManagerTest - fragment HUD display
  • PlayerPreferenceManagerTest - player preferences
  • ElementalItemsTest - elemental item system
  • ElementalPlayerTrackerTest - 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 docs
  • docs/archive/ - Historical implementation notes
  • docs/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 bumping
  • x.y.z - Use exact version specified

Automated Steps:

  1. Extract current version from build.gradle
  2. Calculate next version based on input
  3. Update build.gradle and gradle.properties
  4. Commit version bump
  5. Create and push git tag
  6. Build production JAR using build.sh --production
  7. Verify plugin.yml structure
  8. 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 workflow
  • Dockerfile.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:

  1. No Breaking Changes - All existing functionality preserved
  2. New HUD Features - Work automatically with existing fragment saves
  3. Cooldowns Persist - Existing cooldown states maintained
  4. 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

11 Jan 12:43

Choose a tag to compare

🎉 Elemental Dragon Plugin v1.2.0 Released!

📝 Changes in v1.2.0

v1.2.0 (2026-01-11)

Full Changelog

Merged pull requests:

  • Align abilities mechanics to original request #13 (ronaldtse)

v1.1.0 (2026-01-09)

Full Changelog

Closed issues:

  • Feature request: elemental powers #11
  • Rename command /ability 1 to /lightning 1 #10

Merged pull requests:

v1.0.2 (2025-12-27)

Full Changelog

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)

Full Changelog

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)

Full Changelog

v0.1.1-test (2025-12-24)

Full Changelog

v0.1.0 (2025-12-23)

Full Changelog

* This Changelog was automatically generated by github_changelog_generator


📥 Installation Instructions

For Server Administrators:

  1. Download the plugin JAR file below
  2. Place it in your Paper server's plugins/ directory
  3. Restart your Paper 1.21.8+ server
  4. Configure - No additional configuration needed!

For Players:

  • Get a Dragon Egg: /give @p minecraft:dragon_egg
  • Move to offhand: Press F key
  • 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

09 Jan 07:24

Choose a tag to compare

🎉 Elemental Dragon Plugin v1.1.0 Released!

📝 Changes in v1.1.0

v1.1.0 (2026-01-09)

Full Changelog

Closed issues:

  • Feature request: restrict players to possessing only one of specific custom items in inventory #11
  • Rename command /ability 1 to /lightning 1 #10

Merged pull requests:

v1.0.2 (2025-12-27)

Full Changelog

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)

Full Changelog

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)

Full Changelog

v0.1.1-test (2025-12-24)

Full Changelog

v0.1.0 (2025-12-23)

Full Changelog

* This Changelog was automatically generated by github_changelog_generator


📥 Installation Instructions

For Server Administrators:

  1. Download the plugin JAR file below
  2. Place it in your Paper server's plugins/ directory
  3. Restart your Paper 1.21.8+ server
  4. Configure - No additional configuration needed!

For Players:

  • Get a Dragon Egg: /give @p minecraft:dragon_egg
  • Move to offhand: Press F key
  • 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

Full Changelog: v1.0.2...v1.1.0