Blood Magic

Blood Magic

90M Downloads

[Dublication] Buckets fed in Blood Altar through Hopper

keraldi opened this issue ยท 3 comments

commented

Issue Description:

Buckets of LP can be dublicated by feeding multiple buckets into the Blood Altar with a Hopper.
Only works with (almost) full inventory (stack of LP buckets dropped on the ground, single buckets filled with LP went into the inventory upon taking out).

What happens:

Injected Buckets into the Blood Altar by putting multiple Buckets in a stack into the Hopper.
It needed the expected amount of LP to fill the buckets.
Upon taking them out, my inventory got filled up with unique Buckets of LP, a stack counting the amount of Buckets I initially put in dropped on the ground. Excess unique Buckets of LP that didn't fit in my inventory vanished.

What you expected to happen:

No dublication, excess Buckets drop on the ground.

Steps to reproduce:

  1. Place a Blood altar, attach a Hopper to it
  2. Fill the Hopper with multiple Buckets
  3. Fill the Buckets with LP
  4. Fill your inventory so that the amount of Buckets you put in won't fit in your inventory.
  5. Take the Buckets out
  6. Pick a random item from your inventory to free up space for the Buckets of LP that fell on the ground

Affected Versions (Do not use "latest"):

  • BloodMagic: 1.12.2-2.2.12-97
  • Minecraft: 1.12.2
  • Forge: 14.23.3.2679
commented

This affects all items created in the Blood Altar that don't stack, but whose source items stack if fed into the Blood Altar by a Hopper

Examples are:

  • Buckets -> Life Essence Bucket
  • Ender Pearl -> Teleposition Focus (Possibly even further upgrades as long as they are not taken out)
commented

I believe this may be a bug in Forge in a utility method we use here

https://github.com/MinecraftForge/MinecraftForge/blob/d09a8d98d7eefe9f2d1120f9d777873b5918b042/src/main/java/net/minecraftforge/items/ItemHandlerHelper.java#L189-L197

It adds stacks to a player's inventory, then if there's any left over, it's dropping the original stack instead of the remaining stack.

commented