Compatibility
Minecraft: Java Edition
Platforms
Creators
Details
Changelog
✨ New Features
✅ Offline Player Revive Support Admins can now run /lifesteal revive <player> on offline players! When they log in, they'll be automatically restored to Survival mode with configured hearts.
✅ Improved Heart Consumption Behavior Players now properly consume only 1 heart item at a time, regardless of stack size. If only one item remains, it’s cleanly removed from the inventory.
✅ Safe Parsing for Commands Commands like /withdraw <amount> and /lifesteal give <player> <amount> now safely handle bad inputs and non-integer values with proper error messages.
✅ Full Lore & Metadata Support Heart items now display clean lore, enchantments, and unique metadata for identification and stack management.
🛠️ Changes & Improvements
🧠 ItemMeta Null Checks added to prevent possible NPEs.
🧪 Players now start with 10 hearts by default, restored cleanly on join.
💾 Player health data is saved on quit and loaded on join, with clamping to respect max-hearts config.
❌ Removed
❌ Combat Logging Penalty Removed The system that deducted 1 heart for logging out (via punish-combat-logout) has been fully removed for cleaner, fairer gameplay. Players will no longer be punished for disconnecting unexpectedly or during PvP.
⚙️ Developer Notes
The combat log system can be replaced later with a proper combat tag system using events like EntityDamageByEntityEvent.
Admins can still revive players manually using /lifesteal revive, and support for hardcore-mode is intact.
💬 Commands Summary
/withdraw <amount> – Convert hearts into heart items (must keep at least 1).
/lifesteal reload – Reloads plugin configuration.
/lifesteal give <player> <amount> – Give heart items to any player.
/lifesteal revive <player> – Revive a player (online or offline) from spectator mode.
📁 Config Options (Sample) max-hearts: 20 hardcore-mode: true hardcore-respawn-hearts: 10 lose-hearts: true direct-transfer: true broadcast-drops: true drop-message: "&aA heart has been dropped after &e%player% &awas killed!" enabled-worlds:
- world
- world_nether