Item Duplication on Chisel Breaking
Artanis opened this issue ยท 6 comments
When a Tinkers' Complement Chisel breaks, it duplicates items equal to the difference between it's remaining durability and the quantity of items that were being chiseled.
Expected behavior:
- Chisels items equal to it's remaining durability and puts the resulting items into the player's inventory.
- Drops the remaining unchiseled items in the item stack on the ground, OR keeps the remaining unchiseled items in the tool inventory.
Actual behaviour:
- Chisels items equal to it's remaining durability and puts the resulting items into the player's inventory.
- Drops the remaining unchiseled items on the ground.
- Keeps the remaining unchiseled items in the tool inventory.
Replication:
- Create a TComplement Chisel with minimal durability. For example, 2 durability with a wooden chisel head and a stone tool rod.
- Open the chisel UI and put a number of chiselable items greater than the tool's durability into the tool. In this instance, 3 or more items. Further steps will use a full stack of 64
<minecraft:diamond_block>
. - Chisel the Blocks of Diamond to any texture, including
<minecraft:diamond_block>
. For this demonstration,<minecraft:diamond_block>
is chosen. - 2 chiseled Blocks of Diamond appear in the player's inventory (2 diamond blocks).
- Collect 62 Blocks of Diamond from the ground (64 diamond blocks),
- Repair the chisel tool with a single wood plank or equivalent.
- Open the chisel UI and remove 62
<minecraft:diamond_block>
from the tool's inventory (126 diamond blocks).
Mod Version
Chisel MC1.12.2-1.0.1.44
Tinkers' Construct 112.2-2.13.0.171
Tinkers' Complement 1.12.2-0.4.2
Versions? This sound really similar to a bug that existed when you used an outdated Chisel or Tinkers Complement version.
Chisel MC1.12.2-1.0.1.44
Tinkers' Construct 112.2-2.13.0.171
Tinkers' Complement 1.12.2-0.4.2
These all look like they are the most recent releases for this version of Minecraft.
This is happening because the target
tag does not get cleared when a chisel breaks
Chisels onChiselBroken() method only sets the container slot to empty, but does not write the change to NBT, so the next time the container is opened it just loads the item from NBT