promotional bannermobile promotional banner

Lifefruits Craft

Adds Life Fruits that permanently increase max health, craftable Lifefruit and Starfruit potions, and a new ore — inspired by Terraria's Life Fruit.

File Details

LifefruitsCraft-1.12.2-1.0.5.jar

  • R
  • May 25, 2026
  • 34.77 KB
  • 9
  • 1.12.2
  • Forge

File Name

LifefruitsCraft-1.12.2-1.0.5.jar

Supported Versions

  • 1.12.2

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:lifefruits-craft-1550755:8142380")
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

[1.0.5] - 2026-05-24
- Fixed Life Fruit not granting HP to players with high health from ScalingHealth level
  scaling: SHPlayerDataHandler.getMaxHealth() returns an internal difficulty-scaling cap
  (~40 HP), not the player's actual max health (~100+ HP). The force-heal condition
  "hpBefore < shMaxAfter" was always false for levelled players. Fixed by using
  player.getMaxHealth() (the real attribute value) for the force-heal target check.
  Force-heal now reliably fires for all players regardless of level-scaled health.
- Reworked retroactive heal (PlayerLoggedInEvent) from a one-shot boolean
  (LifefruitsCraft.RetroHealApplied, 1.0.4) to a persistent int counter
  (LifefruitsCraft.RetroHealedUses, 1.0.5). On every login the handler computes
  pendingUses = totalUses - healedUses and applies pendingUses × 1 HP. This catches
  uses 3 and 4 (which were consumed under 1.0.4's broken force-heal) in addition to
  any pre-1.0.3 uses.
- Migration: if the 1.0.4 boolean flag is present but the int counter is absent, the
  counter is initialised to min(uses, 2) so the first two uses are not double-healed.
- HP_PER_USE constant promoted from private to public static final so LifefruitsHandler
  can reference it without duplication.
- ItemLifeFruit feedback message now shows max health with proper heart display.
- Version: 1.0.4 → 1.0.5.

[1.0.4] - 2026-05-24
- Fixed Starfruit permanent health bonus broken since 1.0.0: LifefruitsHandler used the old
  wrong package name "scalinghealth.util.SHPlayerDataHandler" (missing trailing 's'),
  same bug as fixed in ItemLifeFruit in 1.0.2. Reflection was silently failing and the
  +3 permanent hearts from the first Starfruit potion were never actually applied.
  Fixed to "scalinghealth.utils.SHPlayerDataHandler".
- Added retroactive Life Fruit HP heal (PlayerLoggedInEvent): players who used Life Fruits
  before 1.0.3 may have had their current-HP heal blocked by RLCraft's LivingHealEvent
  cancellation. On the first login after 1.0.4, the missed HP (uses × 1.0 HP) is given
  back via player.setHealth(). A message is shown and a persisted NBT flag
  "LifefruitsCraft.RetroHealApplied" prevents the heal from repeating on subsequent logins.
  The flag is copied on death/respawn via PlayerEvent.Clone so it survives relog cycles.
- Version: 1.0.3 → 1.0.4.

[1.0.3] - 2026-05-24
- Fixed Life Fruit appearing not to grant HP when another mod (e.g. Tough As Nails /
  RLCraft hunger/temperature systems) cancels ScalingHealth's internal LivingHealEvent:
  max health was always correctly increased, but the current-HP heal was silently
  discarded. Added a force-heal fallback via player.setHealth() (which does NOT fire
  LivingHealEvent) so the player visibly gains +1 HP immediately in all cases.
- Added "Another mod blocked the heal" diagnostic log (INFO level) so the server log
  now shows when and for whom the fallback was used.
- Updated feedback message to display the player's new max health in hearts:
  e.g. "§2+½ heart (1/10 used) — Max: 10½ ❤", allowing easy in-game verification.
- incrementMaxHealth() now returns the new maxHP (float, from PlayerData) instead of
  a plain boolean, enabling accurate max-heart display without relying on the attribute
  value (which may be lazily recalculated by Minecraft on the next read).
- Version: 1.0.2 → 1.0.3.